void GetFileListWorkerFactory::init() { QList<PortDescriptor*> portDescs; { QMap<Descriptor, DataTypePtr> outTypeMap; outTypeMap[BaseSlots::URL_SLOT()] = BaseTypes::STRING_TYPE(); outTypeMap[BaseSlots::DATASET_SLOT()] = BaseTypes::STRING_TYPE(); DataTypePtr outTypeSet(new MapDataType(BasePorts::OUT_TEXT_PORT_ID(), outTypeMap)); portDescs << new PortDescriptor(Descriptor(OUT_PORT_ID, GetFileListWorker::tr("Output URL"), GetFileListWorker::tr("Paths read by the element.")), outTypeSet, false, true); } QList<Attribute*> attrs; { Descriptor inUrl(URL_ATTR, GetFileListWorker::tr("Input URL"), GetFileListWorker::tr("Input URL")); attrs << new URLAttribute(BaseAttributes::URL_IN_ATTRIBUTE(), BaseTypes::URL_DATASETS_TYPE(), true); } Descriptor protoDesc(GetFileListWorkerFactory::ACTOR_ID, GetFileListWorker::tr("File List"), GetFileListWorker::tr("Produces URL(s) to files from specified folders.")); ActorPrototype *proto = new IntegralBusActorPrototype(protoDesc, portDescs, attrs); proto->setEditor(new DelegateEditor(QMap<QString, PropertyDelegate*>())); proto->setPrompter(new GetFileListPrompter()); proto->setValidator(new DatasetValidator()); if(AppContext::isGUIMode()) { proto->setIcon( GUIUtils::createRoundIcon(QColor(85,85,255), 22)); } WorkflowEnv::getProtoRegistry()->registerProto(BaseActorCategories::CATEGORY_DATASRC(), proto); WorkflowEnv::getDomainRegistry()->getById(LocalDomainFactory::ID)->registerEntry(new GetFileListWorkerFactory()); }
/******************************* * Alignment2SequenceWorkerFactory *******************************/ void Alignment2SequenceWorkerFactory::init() { // ports description QList<PortDescriptor*> portDescs; { QMap<Descriptor, DataTypePtr> inM; inM[BaseSlots::MULTIPLE_ALIGNMENT_SLOT()] = BaseTypes::MULTIPLE_ALIGNMENT_TYPE(); DataTypePtr inSet(new MapDataType(ALN_2_SEQUENCE_IN_TYPE_ID, inM)); Descriptor inPortDesc(BasePorts::IN_MSA_PORT_ID(), Alignment2SequenceWorker::tr("Input alignment"), Alignment2SequenceWorker::tr("A alignment which will be split into sequences")); portDescs << new PortDescriptor(inPortDesc, inSet, true); QMap<Descriptor, DataTypePtr> outM; outM[BaseSlots::DNA_SEQUENCE_SLOT()] = BaseTypes::DNA_SEQUENCE_TYPE(); DataTypePtr outSet(new MapDataType(ALN_2_SEQUENCE_OUT_TYPE_ID, outM)); Descriptor outPortDesc(BasePorts::OUT_SEQ_PORT_ID(), Alignment2SequenceWorker::tr("Output sequences"), Alignment2SequenceWorker::tr("Converted sequences")); portDescs << new PortDescriptor(outPortDesc, outSet, false); } QList<Attribute*> attrs; Descriptor protoDesc(Alignment2SequenceWorkerFactory::ACTOR_ID, Alignment2SequenceWorker::tr("Split Alignment into Sequences"), Alignment2SequenceWorker::tr("Splits input alignment into sequences")); ActorPrototype * proto = new IntegralBusActorPrototype(protoDesc, portDescs, attrs); proto->setPrompter(new Alignment2SequencePrompter()); WorkflowEnv::getProtoRegistry()->registerProto(BaseActorCategories::CATEGORY_ALIGNMENT(), proto); WorkflowEnv::getDomainRegistry()->getById( LocalDomainFactory::ID )->registerEntry( new Alignment2SequenceWorkerFactory() ); }
void ConservationPlotWorkerFactory::init() { //init data path U2DataPath* dataPath = NULL; U2DataPathRegistry* dpr = AppContext::getDataPathRegistry(); if (dpr){ U2DataPath* dp = dpr->getDataPathByName(CONSERVATION_DATA_NAME); if (dp && dp->isValid()){ dataPath = dp; } } QList<PortDescriptor*> portDescs; //in port QMap<Descriptor, DataTypePtr> inTypeMap; Descriptor treatDesc(ANNOT_SLOT_ID, ConservationPlotWorker::tr("Input regions"), ConservationPlotWorker::tr("Regions (centered at peak summits for better performance).")); inTypeMap[treatDesc] = BaseTypes::ANNOTATION_TABLE_LIST_TYPE(); Descriptor inPortDesc(IN_PORT_DESCR, ConservationPlotWorker::tr("conservation_plot data"), ConservationPlotWorker::tr("Regions to plot the PhastCons scores profiles.")); DataTypePtr inTypeSet(new MapDataType(IN_TYPE_ID, inTypeMap)); portDescs << new PortDescriptor(inPortDesc, inTypeSet, true); QList<Attribute*> attrs; { Descriptor outFile(OUTPUT_FILE, ConservationPlotWorker::tr("Output file"), ConservationPlotWorker::tr("File to store phastcons results (BMP).")); Descriptor titleDescr(TITLE, ConservationPlotWorker::tr("Title"), ConservationPlotWorker::tr("Title of the figure (--title).")); Descriptor labelDescr(LABEL, ConservationPlotWorker::tr("Label"), ConservationPlotWorker::tr("Label of data in the figure (--bed-label).")); Descriptor assemblyVersion(ASSEMBLY_VER, ConservationPlotWorker::tr("Assembly version"), ConservationPlotWorker::tr("The directory to store phastcons scores (--phasdb).")); Descriptor windowSizeDescr(WINDOW_S, ConservationPlotWorker::tr("Window width"), ConservationPlotWorker::tr("Window width centered at middle of regions (-w).")); Descriptor heightDescr(HEIGHT, ConservationPlotWorker::tr("Height"), ConservationPlotWorker::tr("Height of plot (--height).")); Descriptor widthDescr(WIDTH, ConservationPlotWorker::tr("Width"), ConservationPlotWorker::tr("Width of plot (--width).")); attrs << new Attribute(outFile, BaseTypes::STRING_TYPE(), true, QVariant("")); attrs << new Attribute(titleDescr, BaseTypes::STRING_TYPE(), true, QVariant("Average Phastcons around the Center of Sites")); attrs << new Attribute(labelDescr, BaseTypes::STRING_TYPE(), true, QVariant("Conservation_at_peak_summits")); Attribute* assemblyVerAttr = NULL; if (dataPath){ const QList<QString>& dataNames = dataPath->getDataNames(); if (!dataNames.isEmpty()){ assemblyVerAttr = new Attribute(assemblyVersion, BaseTypes::STRING_TYPE(), true, dataPath->getPathByName(dataNames.first())); }else{ assemblyVerAttr = new Attribute(assemblyVersion, BaseTypes::STRING_TYPE(), true); } }else{ assemblyVerAttr = new Attribute(assemblyVersion, BaseTypes::STRING_TYPE(), true); } attrs << assemblyVerAttr; attrs << new Attribute(windowSizeDescr, BaseTypes::NUM_TYPE(), false, QVariant(1000)); attrs << new Attribute(heightDescr, BaseTypes::NUM_TYPE(), false, QVariant(1000)); attrs << new Attribute(widthDescr, BaseTypes::NUM_TYPE(), false, QVariant(1000)); } QMap<QString, PropertyDelegate*> delegates; { delegates[OUTPUT_FILE] = new URLDelegate(DialogUtils::prepareFileFilter(ConservationPlotWorker::tr("Conservation plot file"), QStringList("bmp"), true), "", false, false); { QVariantMap vm; vm["minimum"] = QVariant(0); vm["maximum"] = INT_MAX; vm["singleStep"] = QVariant(1000); delegates[WINDOW_S] = new SpinBoxDelegate(vm); delegates[HEIGHT] = new SpinBoxDelegate(vm); delegates[WIDTH] = new SpinBoxDelegate(vm); } { QVariantMap vm; if (dataPath){ vm = dataPath->getDataItemsVariantMap(); } delegates[ASSEMBLY_VER] = new ConservationPlotComboBoxWithUrlsDelegate(vm, true); } } Descriptor protoDesc(ConservationPlotWorkerFactory::ACTOR_ID, ConservationPlotWorker::tr("Build Conservation Plot"), ConservationPlotWorker::tr("Plots the PhastCons scores profiles.")); ActorPrototype *proto = new IntegralBusActorPrototype(protoDesc, portDescs, attrs); proto->setPrompter(new ConservationPlotPrompter()); proto->setEditor(new DelegateEditor(delegates)); proto->addExternalTool(ET_CONSERVATION_PLOT); WorkflowEnv::getProtoRegistry()->registerProto(BaseActorCategories::CATEGORY_CHIP_SEQ(), proto); WorkflowEnv::getDomainRegistry()->getById(LocalDomainFactory::ID)->registerEntry(new ConservationPlotWorkerFactory()); }