void copyPslXaToTab(char *pslFile, char *tabFile) /* copy a single PSL XA to the tab file */ { struct xAli *xa; char *row[23]; struct lineFile *lf = lineFileOpen(pslFile, TRUE); struct pipeline *pl = NULL; FILE *tabFh = NULL; if (noSort) tabFh = mustOpen(tabFile, "w"); else { if (pslCreateOpts & PSL_WITH_BIN) pl = pipelineOpen(outPipeBin, pipelineWrite, tabFile, NULL); else pl = pipelineOpen(outPipeNoBin, pipelineWrite, tabFile, NULL); tabFh = pipelineFile(pl); } while (lineFileRow(lf, row)) { xa = xAliLoad(row); if (pslCreateOpts & PSL_WITH_BIN) fprintf(tabFh, "%u\t", hFindBin(xa->tStart, xa->tEnd)); xAliTabOut(xa, tabFh); xAliFree(&xa); } lineFileClose(&lf); if (noSort) carefulClose(&tabFh); else { pipelineWait(pl); pipelineFree(&pl); } }
void copyPslToTab(char *pslFile, char *tabFile) /* copy a single PSL to the tab file */ { struct psl *psl; struct lineFile *lf = pslFileOpen(pslFile); struct pipeline *pl = NULL; FILE *tabFh = NULL; if (noSort) tabFh = mustOpen(tabFile, "w"); else { if (pslCreateOpts & PSL_WITH_BIN) pl = pipelineOpen(outPipeBin, pipelineWrite, tabFile, NULL); else pl = pipelineOpen(outPipeNoBin, pipelineWrite, tabFile, NULL); tabFh = pipelineFile(pl); } while ((psl = pslNext(lf)) != NULL) { if (pslCreateOpts & PSL_WITH_BIN) fprintf(tabFh, "%u\t", hFindBin(psl->tStart, psl->tEnd)); pslTabOut(psl, tabFh); pslFree(&psl); } lineFileClose(&lf); if (noSort) carefulClose(&tabFh); else { pipelineWait(pl); pipelineFree(&pl); } }
void processFrameFiles(char *tabFile, int numFramesFiles, char **framesFiles) /* combine and sort input files, adding bin column and write top tabFile */ { /* sort by chrom location, accounting for bin column */ static char *cmd[] = {"sort", "-k", "2,2", "-k", "3,3n", NULL}; int i; struct pipeline *pl = pipelineOpen1(cmd, pipelineWrite, tabFile, NULL); FILE *sortFh = pipelineFile(pl); for (i = 0; i < numFramesFiles; i++) processFrameFile(sortFh, framesFiles[i]); pipelineWait(pl); }
// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- int main (int argc, char* argv[]) { QString pipelineFile("@DREAM3D_PIPELINE_FILE@"); // Instantiate the QCoreApplication that we need to get the current path and load plugins. QCoreApplication app(argc, argv); QCoreApplication::setOrganizationName("BlueQuartz Software"); QCoreApplication::setOrganizationDomain("bluequartz.net"); QCoreApplication::setApplicationName("PipelineRunnerTest"); // We need to change our working directory into the "DREAM3D_Data" directory because all the pipelines use relative paths QDir dataDir = QDir(getDream3dDataDir()); #ifdef _MSC_VER _chdir(dataDir.absolutePath().toLatin1().constData()); #else chdir(dataDir.absolutePath().toLatin1().constData()); #endif // Register all the filters including trying to load those from Plugins FilterManager* fm = FilterManager::Instance(); DREAM3DPluginLoader::LoadPluginFilters(fm); // Send progress messages from PipelineBuilder to this object for display QMetaObjectUtilities::RegisterMetaTypes(); int err = 0; // Read in the contents of the PipelineList file which contains all the Pipelines that we want // to execute QString contents; { // Read the Source File QFileInfo fi(getPipelineListFile()); QFile source(getPipelineListFile()); source.open(QFile::ReadOnly); contents = source.readAll(); source.close(); } // Split the file into tokens using the newline character QStringList list = contents.split(QRegExp("\\n")); QStringListIterator sourceLines(list); // Iterate over all the entries in the file and process each pipeline. Note that the order of the // pipelines will probably matter while (sourceLines.hasNext()) { QString pipelineFile = sourceLines.next(); pipelineFile = pipelineFile.trimmed(); if(pipelineFile.isEmpty()) { continue; } try { QFileInfo fi(pipelineFile); pipelineFile = AdjustOutputDirectory(pipelineFile); DREAM3D::unittest::CurrentMethod = fi.fileName().toStdString(); DREAM3D::unittest::numTests++; ExecutePipeline(pipelineFile); TestPassed(fi.fileName().toStdString()); DREAM3D::unittest::CurrentMethod = ""; } catch (TestException& e) { TestFailed(DREAM3D::unittest::CurrentMethod); std::cout << e.what() << std::endl; err = EXIT_FAILURE; } } return err; }