use of org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap 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.baderlab.csplugins.enrichmentmap.model.EnrichmentMap in project EnrichmentMapApp by BaderLab.
the class ModelSerializer method deserialize.
public static EnrichmentMap deserialize(String json) {
Type immutableIntSetType = new TypeToken<ImmutableSet<Integer>>() {
}.getType();
Gson gson = new GsonBuilder().registerTypeAdapter(BiMap.class, new BiMapAdapter()).registerTypeHierarchyAdapter(Path.class, new PathAdapter()).registerTypeAdapter(EnrichmentResult.class, new EnrichmentResultAdapter()).registerTypeAdapter(immutableIntSetType, new ImmutableIntSetAdapter()).create();
try {
EnrichmentMap map = gson.fromJson(json, EnrichmentMap.class);
for (EMDataSet dataset : map.getDataSetList()) {
dataset.setParent(map);
}
return map;
} catch (JsonParseException e) {
logger.error(e.getMessage(), e);
return null;
}
}
use of org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap in project EnrichmentMapApp by BaderLab.
the class SessionModelIO method saveModel.
public void saveModel() {
if (debug)
System.out.println("SessionModelListener.saveModel()");
CyTable table = getOrCreatePrivateModelTable();
clearTable(table);
int[] id = { 0 };
Map<Long, EnrichmentMap> maps = emManager.getAllEnrichmentMaps();
maps.forEach((suid, em) -> {
CyNetwork network = networkManager.getNetwork(suid);
if (network != null) {
// MKTODO big error if its null
String json = ModelSerializer.serialize(em);
CyRow row = table.getRow(id[0]);
COL_NETWORK_ID.set(row, suid);
COL_EM_JSON.set(row, json);
id[0]++;
}
});
}
use of org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap in project EnrichmentMapApp by BaderLab.
the class SessionModelIO method restoreModelFromTables.
private boolean restoreModelFromTables(CySession session) {
boolean sessionHasEM = false;
CyTable table = getPrivateTable();
if (table != null) {
for (CyRow row : table.getAllRows()) {
Long suid = COL_NETWORK_ID.get(row);
String json = COL_EM_JSON.get(row);
if (suid != null && json != null) {
CyNetwork network = networkManager.getNetwork(suid);
if (network != null) {
EnrichmentMap em = ModelSerializer.deserialize(json);
if (em != null) {
em.setServiceRegistrar(serviceRegistrar);
em.setNetworkID(network.getSUID());
updateSuids(em, session);
emManager.registerEnrichmentMap(em);
sessionHasEM = true;
}
}
}
}
}
return sessionHasEM;
}
use of org.baderlab.csplugins.enrichmentmap.model.EnrichmentMap in project EnrichmentMapApp by BaderLab.
the class LegacySessionLoadTest method test_2_LoadTwoDataSetWithPostAnalysisLegacySession.
@Test
@SessionFile("em_session_2.2_twodataset_pa.cys")
public void test_2_LoadTwoDataSetWithPostAnalysisLegacySession() {
EnrichmentMap map = getEnrichmentMap();
assertEquals(2, map.getDataSetCount());
assertEquals(11445, map.getAllGenes().size());
CyNetwork network = networkManager.getNetwork(map.getNetworkID());
Map<String, CyEdge> edges = TestUtils.getEdges(network);
assertEquals(15, edges.size());
assertTrue(edges.containsKey("PA_TOP8_MIDDLE8_BOTTOM8 (sig_set1) BOTTOM8_PLUS100"));
assertTrue(edges.containsKey("PA_TOP8_MIDDLE8_BOTTOM8 (sig_set1) TOP8_PLUS100"));
assertTrue(edges.containsKey("PA_TOP8_MIDDLE8_BOTTOM8 (sig_set1) MIDDLE8_PLUS100"));
}
Aggregations