int main(int argc, char **argv) { AjPFile outfile = NULL; AjBool full = AJFALSE; AjPStr tmpstr = NULL; embInit("embossversion", argc, argv); full = ajAcdGetBoolean("full"); outfile = ajAcdGetOutfile("outfile"); if (!full) { ajFmtPrintF(outfile,"%s\n", VERSION); } else { tmpstr = ajStrNewRes(128); ajStrAssignS(&tmpstr, ajNamValuePackage()); if (!ajStrGetLen(tmpstr)) ajStrAssignC(&tmpstr, "(unknown)"); ajFmtPrintF(outfile, "PackageName: %S\n", tmpstr); ajStrAssignS(&tmpstr, ajNamValueVersion()); if (!ajStrGetLen(tmpstr)) ajStrAssignC(&tmpstr, "(unknown)"); ajFmtPrintF(outfile, "LibraryVersion: %S\n", tmpstr); ajStrAssignS(&tmpstr, ajNamValueSystem()); if (!ajStrGetLen(tmpstr)) ajStrAssignC(&tmpstr, "(unknown)"); ajFmtPrintF(outfile, "System: %S\n", tmpstr); ajStrAssignS(&tmpstr, ajNamValueInstalldir()); if (!ajStrGetLen(tmpstr)) ajStrAssignC(&tmpstr, "(unknown)"); ajFmtPrintF(outfile, "InstallDirectory: %S\n", tmpstr); ajStrAssignS(&tmpstr, ajNamValueRootdir()); if (!ajStrGetLen(tmpstr)) ajStrAssignC(&tmpstr, "(unknown)"); ajFmtPrintF(outfile, "RootDirectory: %S\n", tmpstr); ajStrAssignS(&tmpstr, ajNamValueBasedir()); if (!ajStrGetLen(tmpstr)) ajStrAssignC(&tmpstr, "(unknown)"); ajFmtPrintF(outfile, "BaseDirectory: %S\n", tmpstr); if (!ajNamGetValueC("acdroot", &tmpstr)) ajStrAssignC(&tmpstr, "(default)"); ajFmtPrintF(outfile, "Emboss_AcdRoot: %S\n", tmpstr); if (!ajNamGetValueC("data", &tmpstr)) ajStrAssignC(&tmpstr, "(default)"); ajFmtPrintF(outfile, "Emboss_Data: %S\n", tmpstr); if (!ajNamGetValueC("filter", &tmpstr)) ajStrAssignC(&tmpstr, "(default)"); ajFmtPrintF(outfile, "Emboss_Filter: %S\n", tmpstr); if (!ajNamGetValueC("format", &tmpstr)) ajStrAssignC(&tmpstr, "(default)"); ajFmtPrintF(outfile, "Emboss_Format: %S\n", tmpstr); if (!ajNamGetValueC("graphics", &tmpstr)) ajStrAssignC(&tmpstr, "(default)"); ajFmtPrintF(outfile, "Emboss_Graphics: %S\n", tmpstr); if (!ajNamGetValueC("httpversion", &tmpstr)) ajStrAssignC(&tmpstr, "(default)"); ajFmtPrintF(outfile, "Emboss_HttpVersion: %S\n", tmpstr); if (!ajNamGetValueC("language", &tmpstr)) ajStrAssignC(&tmpstr, "(default)"); ajFmtPrintF(outfile, "Emboss_Language: %S\n", tmpstr); if (!ajNamGetValueC("options", &tmpstr)) ajStrAssignC(&tmpstr, "(default)"); ajFmtPrintF(outfile, "Emboss_Options: %S\n", tmpstr); if (!ajNamGetValueC("outdirectory", &tmpstr)) ajStrAssignC(&tmpstr, "(default)"); ajFmtPrintF(outfile, "Emboss_OutDirectory: %S\n", tmpstr); if (!ajNamGetValueC("outfeatformat", &tmpstr)) ajStrAssignC(&tmpstr, "(default)"); ajFmtPrintF(outfile, "Emboss_OutFeatFormat: %S\n", tmpstr); if (!ajNamGetValueC("outformat", &tmpstr)) ajStrAssignC(&tmpstr, "(default)"); ajFmtPrintF(outfile, "Emboss_OutFormat: %S\n", tmpstr); if (!ajNamGetValueC("proxy", &tmpstr)) ajStrAssignC(&tmpstr, "(default)"); ajFmtPrintF(outfile, "Emboss_Proxy: %S\n", tmpstr); if (!ajNamGetValueC("stdout", &tmpstr)) ajStrAssignC(&tmpstr, "(default)"); ajFmtPrintF(outfile, "Emboss_Stdout: %S\n", tmpstr); if (!ajNamGetValueC("warnrange", &tmpstr)) ajStrAssignC(&tmpstr, "(default)"); ajFmtPrintF(outfile, "Emboss_WarnRange: %S\n", tmpstr); } ajFileClose(&outfile); embExit(); return 0; }
static AjBool assemoutWriteNextSam(AjPOutfile outfile, const AjPAssem assem) { AjPFile outf = ajOutfileGetFile(outfile); AjPAssemContig c = NULL; AjPAssemRead r = NULL; AjPAssemTag t = NULL; AjPAssemContig* contigs = NULL; AjIList j = NULL; AjPStr argstr = NULL; const AjPStr headertext = NULL; ajint n = 0; ajulong i = 0UL; AjBool ret = ajTrue; if(!outf || !assem) return ajFalse; ajDebug("assemoutWriteSam: # of contigs = %d\n", n); if(!assem->Hasdata) { ajFmtPrintF(outf, "@HD\tVN:1.3\tSO:%s\n", ajAssemGetSortorderC(assem)); /* Program record */ argstr = ajStrNewS(ajUtilGetCmdline()); ajStrExchangeKK(&argstr, '\n', ' '); ajFmtPrintF(outf, "@PG\tID:%S\tVN:%S\tCL:%S\n", ajUtilGetProgram(), ajNamValueVersion(), argstr); ajStrDel(&argstr); if(ajListGetLength(assem->ContigsOrder)) ajListToarray(assem->ContigsOrder, (void***)&contigs); else ajTableToarrayValues(assem->Contigs, (void***)&contigs); while (contigs[i]) /* contigs */ { c = contigs[i++]; if(!ajStrMatchC(c->Name, "*")) { ajFmtPrintF(outf, "@SQ\tSN:%S\tLN:%d", c->Name, c->Length); if(c->URI) ajFmtPrintF(outf, "\tUR:%S", c->URI); if(c->MD5) ajFmtPrintF(outf, "\tM5:%S", c->MD5); if(c->Species) ajFmtPrintF(outf, "\tSP:%S", c->Species); ajFmtPrintF(outf, "\n"); j = ajListIterNewread(c->Tags); while (!ajListIterDone(j)) { t = ajListIterGet(j); ajFmtPrintF(outf, "@CO\t%S %u %u %S\n", t->Name, t->x1, t->y1, t->Comment); } ajListIterDel(&j); } } headertext = assemSAMGetReadgroupHeaderlines(assem); if(headertext) ajFmtPrintF(outf,"%S", headertext); AJFREE(contigs); if(!assem->BamHeader) return ajTrue; } /* data */ j = ajListIterNewread(assem->Reads); if(ajListGetLength(assem->ContigsOrder)) i = ajListToarray(assem->ContigsOrder, (void***)&contigs); else i = ajTableToarrayValues(assem->Contigs, (void***)&contigs); while (!ajListIterDone(j)) /* reads */ { r = ajListIterGet(j); assemoutWriteSamAlignment(outf, r, contigs, (ajuint) i); } ajListIterDel(&j); AJFREE(contigs); return ret; }