Task * MergeFastqWorker::tick() { while (inputUrlPort->hasMessage()) { const QString url = takeUrl(); CHECK(!url.isEmpty(), NULL); inputUrls.append(url); } if (!inputUrlPort->isEnded()) { return NULL; } if(!inputUrls.isEmpty()){ const QString outputDir = FileAndDirectoryUtils::createWorkingDir(inputUrls.first(), getValue<int>(OUT_MODE_ID), getValue<QString>(CUSTOM_DIR_ID), context->workingDir()); BaseNGSSetting setting; setting.outDir = outputDir; setting.outName = getTargetName(inputUrls.first(), outputDir); setting.inputUrl = inputUrls.first(); setting.customParameters = getCustomParameters(); setting.listeners = createLogListeners(); Task *t = getTask(setting); connect(new TaskSignalMapper(t), SIGNAL(si_taskFinished(Task*)), SLOT(sl_taskFinished(Task*))); inputUrls.clear();; return t; } if (inputUrlPort->isEnded()) { setDone(); outputUrlPort->setEnded(); } return NULL; }
Task * SortBamWorker::tick() { if (inputUrlPort->hasMessage()) { const QString url = takeUrl(); CHECK(!url.isEmpty(), NULL); const QString detectedFormat = FileAndDirectoryUtils::detectFormat(url); if(detectedFormat.isEmpty()){ coreLog.info(tr("Unknown file format: ") + url); return NULL; } if(detectedFormat == BaseDocumentFormats::BAM){ const QString outputDir = FileAndDirectoryUtils::createWorkingDir(url, getValue<int>(OUT_MODE_ID), getValue<QString>(CUSTOM_DIR_ID), context->workingDir()); BamSortSetting setting; setting.outDir = outputDir; setting.outName = getTargetName(url, outputDir); setting.inputUrl = url; setting.index = getValue<bool>(INDEX_ID); Task *t = new SamtoolsSortTask(setting); connect(new TaskSignalMapper(t), SIGNAL(si_taskFinished(Task*)), SLOT(sl_taskFinished(Task*))); return t; } } if (inputUrlPort->isEnded()) { setDone(); outputUrlPort->setEnded(); } return NULL; }
Task * RmdupBamWorker::tick() { if (inputUrlPort->hasMessage()) { const QString url = takeUrl(); CHECK(!url.isEmpty(), NULL); const QString detectedFormat = FileAndDirectoryUtils::detectFormat(url); if(detectedFormat.isEmpty()){ coreLog.info(tr("Unknown file format: ") + url); return NULL; } if(detectedFormat == BaseDocumentFormats::BAM){ const QString outputDir = FileAndDirectoryUtils::createWorkingDir(url, getValue<int>(OUT_MODE_ID), getValue<QString>(CUSTOM_DIR_ID), context->workingDir()); BamRmdupSetting setting; setting.outDir = outputDir; setting.outName = getTargetName(url, outputDir); setting.inputUrl = url; setting.removeSingleEnd = getValue<bool>(REMOVE_SINGLE_END_ID); setting.treatReads = getValue<bool>(TREAT_READS_ID); SamtoolsRmdupTask *t = new SamtoolsRmdupTask(setting); t->addListeners(createLogListeners()); connect(new TaskSignalMapper(t), SIGNAL(si_taskFinished(Task*)), SLOT(sl_taskFinished(Task*))); return t; } } if (inputUrlPort->isEnded()) { setDone(); outputUrlPort->setEnded(); } return NULL; }
Task * SnpEffWorker::tick() { if (inputUrlPort->hasMessage()) { const QString url = takeUrl(); CHECK(!url.isEmpty(), NULL); QString outputDir = FileAndDirectoryUtils::createWorkingDir(url, getValue<int>(OUT_MODE_ID), getValue<QString>(CUSTOM_DIR_ID), context->workingDir()); U2OpStatusImpl os; outputDir = GUrlUtils::createDirectory(outputDir + SnpEffWorker::BASE_SNPEFF_SUBDIR, "_", os); SnpEffSetting setting; setting.inputUrl = url; setting.outDir = outputDir; setting.inFormat = getValue<QString>(INPUT_FORMAT); setting.outFormat = getValue<QString>(OUTPUT_FORMAT); setting.genome = getValue<QString>(GENOME); setting.updownLength = getValue<QString>(UPDOWN_LENGTH); setting.canon = getValue<bool>(CANON); setting.hgvs = getValue<bool>(HGVS); setting.lof = getValue<bool>(LOF); setting.motif = getValue<bool>(MOTIF); SnpEffTask *t = new SnpEffTask (setting); connect(new TaskSignalMapper(t), SIGNAL(si_taskFinished(Task*)), SLOT(sl_taskFinished(Task*))); QList<ExternalToolListener *> listeners = createLogListeners(); listeners[0]->setLogProcessor(new SnpEffLogProcessor(monitor(), getActorId())); t->addListeners(listeners); return t; } if (inputUrlPort->isEnded()) { setDone(); outputUrlPort->setEnded(); } return NULL; }