Search in sources :

Example 21 with TaskIterator

use of org.cytoscape.work.TaskIterator in project EnrichmentMapApp by BaderLab.

the class PAKnownSignatureCommandTask method run.

@Override
public void run(TaskMonitor taskMonitor) throws Exception {
    if (gmtFile == null || !gmtFile.canRead())
        throw new IllegalArgumentException("Signature GMT file name not valid");
    CyNetwork selectedNetwork;
    CyNetworkView selectedView;
    if (network == null) {
        selectedNetwork = applicationManager.getCurrentNetwork();
        selectedView = applicationManager.getCurrentNetworkView();
        if (selectedNetwork == null || selectedView == null) {
            throw new IllegalArgumentException("Current network not available.");
        }
    } else {
        selectedNetwork = network;
        Collection<CyNetworkView> networkViews = networkViewManager.getNetworkViews(network);
        if (networkViews == null || networkViews.isEmpty()) {
            throw new IllegalArgumentException("No network view for: " + network);
        }
        selectedView = networkViews.iterator().next();
    }
    EnrichmentMap map = emManager.getEnrichmentMap(selectedNetwork.getSUID());
    if (map == null)
        throw new IllegalArgumentException("Network is not an Enrichment Map.");
    loadGeneSets(map);
    PostAnalysisFilterType filter = PostAnalysisFilterType.valueOf(filterType.getSelectedValue());
    UniverseType universe = UniverseType.valueOf(hypergeomUniverseType.getSelectedValue());
    PostAnalysisParameters.Builder builder = new PostAnalysisParameters.Builder();
    builder.setAttributePrefix(map.getParams().getAttributePrefix());
    builder.setSignatureGMTFileName(gmtFile.getAbsolutePath());
    builder.setLoadedGMTGeneSets(signatureGenesets);
    builder.addSelectedGeneSetNames(selectedGenesetNames);
    builder.setUniverseType(universe);
    builder.setUserDefinedUniverseSize(userDefinedUniverseSize);
    builder.setRankTestParameters(new PostAnalysisFilterParameters(filter, cutoff));
    builder.setName(name);
    if (isBatch()) {
        // run in batch mode
        builder.setDataSetName(null);
    } else {
        if (map.getDataSet(dataSetName) == null) {
            throw new IllegalArgumentException("Data set name not valid: '" + dataSetName + "'");
        }
        builder.setDataSetName(dataSetName);
    }
    // Mann-Whitney requires ranks
    if (filter.isMannWhitney()) {
        processMannWhitneyArgs(map, builder);
    }
    TaskFactory taskFactory = taskFactoryFactory.create(selectedView, builder.build());
    TaskIterator taskIterator = new TaskIterator();
    taskIterator.append(taskFactory.createTaskIterator());
    Task updatePanelTask = new AbstractTask() {

        @Override
        public void run(TaskMonitor taskMonitor) {
            controlPanelMediatorProvider.get().updateDataSetList(selectedView);
            selectedView.updateView();
        }
    };
    taskIterator.append(updatePanelTask);
    insertTasksAfterCurrentTask(taskIterator);
}
Also used : Task(org.cytoscape.work.Task) AbstractTask(org.cytoscape.work.AbstractTask) UniverseType(org.baderlab.csplugins.enrichmentmap.model.PostAnalysisParameters.UniverseType) AbstractTask(org.cytoscape.work.AbstractTask) PostAnalysisFilterType(org.baderlab.csplugins.enrichmentmap.model.PostAnalysisFilterType) PostAnalysisFilterParameters(org.baderlab.csplugins.enrichmentmap.model.PostAnalysisFilterParameters) CyNetwork(org.cytoscape.model.CyNetwork) EnrichmentMap(org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap) PostAnalysisParameters(org.baderlab.csplugins.enrichmentmap.model.PostAnalysisParameters) TaskIterator(org.cytoscape.work.TaskIterator) TaskMonitor(org.cytoscape.work.TaskMonitor) CreateDiseaseSignatureTaskFactory(org.baderlab.csplugins.enrichmentmap.task.postanalysis.CreateDiseaseSignatureTaskFactory) TaskFactory(org.cytoscape.work.TaskFactory) CyNetworkView(org.cytoscape.view.model.CyNetworkView)

Example 22 with TaskIterator

use of org.cytoscape.work.TaskIterator in project EnrichmentMapApp by BaderLab.

the class ResolverCommandTask method run.

@Override
public void run(TaskMonitor taskMonitor) throws Exception {
    logger.info("Running EnrichmentMap Data Set Resolver Task");
    // Scan root folder (note: throws exception if no data sets were found)
    ResolverTask resolverTask = new ResolverTask(rootFolder);
    // blocks
    taskManager.execute(new TaskIterator(resolverTask));
    List<DataSetParameters> dataSets = resolverTask.getDataSetResults();
    logger.info("resolved " + dataSets.size() + " data sets");
    dataSets.forEach(params -> logger.info(params.toString()));
    // Overwrite all the expression files if the common file has been provided
    if (commonExpressionFile != null) {
        if (!commonExpressionFile.canRead()) {
            throw new IllegalArgumentException("Cannot read commonExpressionFile: " + commonExpressionFile);
        }
        for (DataSetParameters dsp : dataSets) {
            dsp.getFiles().setExpressionFileName(commonExpressionFile.getAbsolutePath());
        }
    }
    // Overwrite all the gmt files if a common file has been provided
    if (commonGMTFile != null) {
        if (!commonGMTFile.canRead()) {
            throw new IllegalArgumentException("Cannot read commonGMTFile: " + commonGMTFile);
        }
        for (DataSetParameters dsp : dataSets) {
            dsp.getFiles().setGMTFileName(commonGMTFile.getAbsolutePath());
        }
    }
    // Create Enrichment Map
    String prefix = legacySupport.getNextAttributePrefix();
    SimilarityMetric sm = SimilarityMetric.valueOf(similarityMetric.getSelectedValue());
    NESFilter nesf = NESFilter.valueOf(nesFilter.getSelectedValue());
    String info = String.format("prefix:%s, pvalue:%f, qvalue:%f, nesFilter:%s, minExperiments:%d, similarityMetric:%s, similarityCutoff:%f, combinedConstant:%f", prefix, pvalue, qvalue, nesf, minExperiments, sm, similarityCutoff, combinedConstant);
    logger.info(info);
    EMCreationParameters params = new EMCreationParameters(prefix, pvalue, qvalue, nesf, Optional.ofNullable(minExperiments), sm, similarityCutoff, combinedConstant);
    params.setCreateDistinctEdges(distinctEdges);
    CreateEnrichmentMapTaskFactory taskFactory = taskFactoryFactory.create(params, dataSets);
    TaskIterator tasks = taskFactory.createTaskIterator();
    taskManager.execute(tasks);
    logger.info("Done.");
}
Also used : EMCreationParameters(org.baderlab.csplugins.enrichmentmap.model.EMCreationParameters) TaskIterator(org.cytoscape.work.TaskIterator) CreateEnrichmentMapTaskFactory(org.baderlab.csplugins.enrichmentmap.task.CreateEnrichmentMapTaskFactory) DataSetParameters(org.baderlab.csplugins.enrichmentmap.resolver.DataSetParameters) SimilarityMetric(org.baderlab.csplugins.enrichmentmap.model.EMCreationParameters.SimilarityMetric) NESFilter(org.baderlab.csplugins.enrichmentmap.model.EnrichmentResultFilterParams.NESFilter) ResolverTask(org.baderlab.csplugins.enrichmentmap.resolver.ResolverTask)

Example 23 with TaskIterator

use of org.cytoscape.work.TaskIterator in project EnrichmentMapApp by BaderLab.

the class Protocol1Test method testProtocol1.

@Test
public void testProtocol1() throws Exception {
    EMBuildCommandTask task = injector.getInstance(EMBuildCommandTask.class);
    File enrichmentFile = TestUtils.createTempFile(PATH, "gprofiler_results_mesenonly_ordered_computedinR.txt");
    assertTrue(enrichmentFile.exists());
    task.analysisType.setSelectedValue(EnrichmentMapParameters.method_generic);
    task.coeffecients.setSelectedValue(EnrichmentMapParameters.SM_JACCARD);
    task.enrichmentsDataset1 = enrichmentFile;
    task.pvalue = 1.0;
    task.qvalue = 0.00001;
    task.similaritycutoff = 0.25;
    SerialTestTaskManager taskManager = new SerialTestTaskManager();
    taskManager.execute(new TaskIterator(task));
    // Assert the network was created
    CyNetwork generatedNetwork = assertAndGetOnlyNetwork();
    CyNetwork expectedNetwork = importNetworkFromFile(PATH, "protocol_1_expected.xgmml");
    Set<String> columnsToIgnore = ImmutableSet.of("EM1_ENR_SET", "EM1_ENRICHMENT_SET", "EM1_Data Set");
    assertNetworksEqual(expectedNetwork, generatedNetwork, columnsToIgnore);
}
Also used : SerialTestTaskManager(org.baderlab.csplugins.enrichmentmap.integration.SerialTestTaskManager) TaskIterator(org.cytoscape.work.TaskIterator) CyNetwork(org.cytoscape.model.CyNetwork) EMBuildCommandTask(org.baderlab.csplugins.enrichmentmap.commands.EMBuildCommandTask) File(java.io.File) BaseIntegrationTest(org.baderlab.csplugins.enrichmentmap.integration.BaseIntegrationTest) Test(org.junit.Test)

Aggregations

TaskIterator (org.cytoscape.work.TaskIterator)23 File (java.io.File)7 FinishStatus (org.cytoscape.work.FinishStatus)7 ObservableTask (org.cytoscape.work.ObservableTask)7 TaskObserver (org.cytoscape.work.TaskObserver)7 DataSetParameters (org.baderlab.csplugins.enrichmentmap.resolver.DataSetParameters)5 EMDataSet (org.baderlab.csplugins.enrichmentmap.model.EMDataSet)4 EnrichmentMap (org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap)4 CyNetwork (org.cytoscape.model.CyNetwork)4 AbstractTask (org.cytoscape.work.AbstractTask)4 ResolverTask (org.baderlab.csplugins.enrichmentmap.resolver.ResolverTask)3 CreateEnrichmentMapTaskFactory (org.baderlab.csplugins.enrichmentmap.task.CreateEnrichmentMapTaskFactory)3 TaskMonitor (org.cytoscape.work.TaskMonitor)3 ArrayList (java.util.ArrayList)2 List (java.util.List)2 Map (java.util.Map)2 Optional (java.util.Optional)2 JButton (javax.swing.JButton)2 JList (javax.swing.JList)2 SerialTestTaskManager (org.baderlab.csplugins.enrichmentmap.SerialTestTaskManager)2