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);
}
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.");
}
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);
}
Aggregations