use of org.baderlab.csplugins.enrichmentmap.model.EMCreationParameters in project EnrichmentMapApp by BaderLab.
the class MasterDetailDialogPage method finish.
@Override
public void finish() {
if (!validateInput())
return;
String prefix = legacySupport.getNextAttributePrefix();
SimilarityMetric similarityMetric = cutoffPanel.getSimilarityMetric();
double pvalue = cutoffPanel.getPValue();
double qvalue = cutoffPanel.getQValue();
NESFilter nesFilter = cutoffPanel.getNESFilter();
double cutoff = cutoffPanel.getCutoff();
double combined = cutoffPanel.getCombinedConstant();
Optional<Integer> minExperiments = cutoffPanel.getMinimumExperiments();
EMCreationParameters params = new EMCreationParameters(prefix, pvalue, qvalue, nesFilter, minExperiments, similarityMetric, cutoff, combined);
params.setCreateDistinctEdges(distinctEdgesCheckbox.isSelected());
List<DataSetParameters> dataSets = dataSetListModel.toList().stream().map(DataSetListItem::getDetailPanel).map(DetailPanel::createDataSetParameters).filter(x -> x != null).collect(Collectors.toList());
// Overwrite all the expression files if the common file has been provided
String exprPath = commonPanel.getExpressionFile();
if (!isNullOrEmpty(exprPath)) {
for (DataSetParameters dsp : dataSets) {
dsp.getFiles().setExpressionFileName(exprPath);
}
}
// Overwrite all the gmt files if a common file has been provided
String gmtPath = commonPanel.getGmtFile();
if (!isNullOrEmpty(gmtPath)) {
for (DataSetParameters dsp : dataSets) {
dsp.getFiles().setGMTFileName(gmtPath);
}
}
CreateEnrichmentMapTaskFactory taskFactory = taskFactoryFactory.create(params, dataSets);
TaskIterator tasks = taskFactory.createTaskIterator();
// Close this dialog after the progress dialog finishes normally
tasks.append(new AbstractTask() {
public void run(TaskMonitor taskMonitor) {
callback.close();
}
});
dialogTaskManager.execute(tasks);
}
use of org.baderlab.csplugins.enrichmentmap.model.EMCreationParameters in project EnrichmentMapApp by BaderLab.
the class LegendPanel method update.
/**
* Update parameters panel based on given enrichment map parameters
* @param chartType
*/
void update(EMStyleOptions options, Collection<EMDataSet> filteredDataSets) {
this.options = options;
CyNetworkView networkView = options != null ? options.getNetworkView() : null;
removeAll();
EnrichmentMap map = networkView != null ? emManager.getEnrichmentMap(networkView.getModel().getSUID()) : null;
EMCreationParameters params = map != null ? map.getParams() : null;
if (params == null) {
JLabel infoLabel = new JLabel("No EnrichmentMap View selected");
infoLabel.setEnabled(false);
infoLabel.setForeground(UIManager.getColor("Label.disabledForeground"));
infoLabel.setHorizontalAlignment(JLabel.CENTER);
infoLabel.setVerticalAlignment(JLabel.CENTER);
infoLabel.setBorder(new EmptyBorder(120, 40, 120, 40));
add(infoLabel, BorderLayout.CENTER);
} else {
nodeLegendPanel = null;
nodeColorPanel = null;
nodeShapePanel = null;
nodeChartPanel = null;
edgeLegendPanel = null;
edgeColorPanel = null;
updateNodeColorPanel(filteredDataSets, map);
updateNodeShapePanel(map);
updateNodeChartPanel(filteredDataSets, map);
updateEdgeColorPanel(map);
JPanel panel = new JPanel();
final GroupLayout layout = new GroupLayout(panel);
panel.setLayout(layout);
layout.setAutoCreateContainerGaps(true);
layout.setAutoCreateGaps(true);
layout.setHorizontalGroup(layout.createParallelGroup(Alignment.CENTER, true).addComponent(getNodeLegendPanel(), DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE).addComponent(getEdgeLegendPanel(), DEFAULT_SIZE, DEFAULT_SIZE, Short.MAX_VALUE));
layout.setVerticalGroup(layout.createSequentialGroup().addComponent(getNodeLegendPanel(), PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE).addComponent(getEdgeLegendPanel(), PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE));
JScrollPane scrollPane = new JScrollPane(panel);
add(scrollPane, BorderLayout.CENTER);
}
revalidate();
}
use of org.baderlab.csplugins.enrichmentmap.model.EMCreationParameters in project EnrichmentMapApp by BaderLab.
the class CreationParametersPanel method getInfoText.
/**
* Get the files and parameters corresponding to the current enrichment map
*/
private String getInfoText() {
EMCreationParameters params = map.getParams();
StringWriter writer = new StringWriter();
new Html(writer) {
{
bind("bold", "font-weight: bold;");
bind("code", "font-family: Courier,monospaced;");
html().body().style("font-family: Helvetica,Arial,sans-serif; font-size: 1em;");
ol();
addTitle("Cut-Off Values");
ul();
addCutOffItem("P-value", params.getPvalue());
addCutOffItem("FDR Q-value", params.getQvalue());
if (params.getSimilarityMetric() == SimilarityMetric.JACCARD)
addCutOffItem("Jaccard", params.getSimilarityCutoff(), "Jaccard Index");
else if (params.getSimilarityMetric() == SimilarityMetric.OVERLAP)
addCutOffItem("Overlap", params.getSimilarityCutoff(), "Overlap Index");
else if (params.getSimilarityMetric() == SimilarityMetric.COMBINED)
addCutOffItem("Jaccard Overlap Combined", params.getSimilarityCutoff(), "Jaccard Overlap Combined Index (k constant = " + params.getCombinedConstant() + ")");
end();
addTitle("Data Sets");
ol();
for (EMDataSet ds : map.getDataSetList()) addDataSet(ds);
end();
end();
endAll();
done();
}
Html addTitle(String s) {
return li().style("${bold} font-size: 1.1em;").text(s + ": ").end();
}
Html addCutOffItem(String k, Object v) {
return addCutOffItem(k, v, null);
}
Html addCutOffItem(String k, Object v, String test) {
li().b().text(k + ": ").end().span().style("${code}").text("" + v).end();
if (test != null)
br().span().style("${padding}").text("Test used: ").i().text(test).end().end();
return end();
}
Html addDataSet(EMDataSet ds) {
li().b().text(ds.getName()).end();
ul();
li().text("Gene Sets File: ").span().style("${code}").text(shortenPathname(ds.getDataSetFiles().getGMTFileName())).end().end();
String ef1 = ds.getDataSetFiles().getEnrichmentFileName1();
String ef2 = ds.getDataSetFiles().getEnrichmentFileName2();
if (ef1 != null || ef2 != null) {
li().text("Data Files:");
if (ef1 != null)
br().span().style("${code}").raw(INDENT).text(shortenPathname(ef1)).end();
if (ef2 != null)
br().span().style("${code}").raw(INDENT).text(shortenPathname(ef2)).end();
end();
}
if (ds.getDataSetFiles().getExpressionFileName() != null) {
li().text("Expression File: ").span().style("${code}").text(shortenPathname(ds.getDataSetFiles().getExpressionFileName())).end().end();
}
if (ds.getDataSetFiles().getGseaHtmlReportFile() != null) {
li().text("GSEA Report: ").span().style("${code}").text(shortenPathname(ds.getDataSetFiles().getGseaHtmlReportFile())).end().end();
}
end();
return end();
}
};
return writer.getBuffer().toString();
}
use of org.baderlab.csplugins.enrichmentmap.model.EMCreationParameters in project EnrichmentMapApp by BaderLab.
the class EMGseaCommandTask method buildEnrichmentMap.
private void buildEnrichmentMap() {
//set all files as extracted from the edb directory
List<DataSetParameters> dataSets = new ArrayList<>(2);
DataSetFiles files1 = initializeFiles(edbdir, expressionfile);
dataSets.add(new DataSetParameters(LegacySupport.DATASET1, Method.GSEA, files1));
//only add second dataset if there is a second edb directory.
if (edbdir2 != null && !edbdir2.equalsIgnoreCase("")) {
DataSetFiles files2 = initializeFiles(edbdir2, expressionfile2);
dataSets.add(new DataSetParameters(LegacySupport.DATASET2, Method.GSEA, files2));
}
SimilarityMetric metric = EnrichmentMapParameters.stringToSimilarityMetric(similaritymetric.getSelectedValue());
String prefix = legacySupport.getNextAttributePrefix();
EMCreationParameters creationParams = new EMCreationParameters(prefix, pvalue, qvalue, NESFilter.ALL, Optional.empty(), metric, overlap, combinedconstant);
CreateEnrichmentMapTaskFactory taskFactory = taskFactoryFactory.create(creationParams, dataSets);
insertTasksAfterCurrentTask(taskFactory.createTaskIterator());
}
use of org.baderlab.csplugins.enrichmentmap.model.EMCreationParameters 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.");
}
Aggregations