Skip to content

Commit 670a3fd

Browse files
committed
Capture CS-Core output
1 parent 94331b0 commit 670a3fd

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

singlecell/resources/chunks/RunCsCore.R

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ for (datasetId in names(seuratObjects)) {
22
printName(datasetId)
33
seuratObj <- readSeuratRDS(seuratObjects[[datasetId]])
44

5-
seuratObj <- CellMembrane::RunCsCore(seuratObj, saveFile = 'cscoreResults.rds')
5+
outFile <- paste0(outputPrefix, '.', makeLegalFileName(datasetId), '.markers.txt')
6+
module_list <- CellMembrane::RunCsCore(seuratObj, saveFile = paste0(outFile, '.cscore.rds'))
7+
saveRDS(module_list, paste0(outFile, '.cscore.wgcna.rds'))
68

79
saveData(seuratObj, datasetId)
810

singlecell/src/org/labkey/singlecell/pipeline/singlecell/RunCsCore.java

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package org.labkey.singlecell.pipeline.singlecell;
22

3-
import org.json.JSONObject;
3+
import org.labkey.api.pipeline.PipelineJobException;
44
import org.labkey.api.sequenceanalysis.pipeline.AbstractPipelineStepProvider;
55
import org.labkey.api.sequenceanalysis.pipeline.PipelineContext;
6-
import org.labkey.api.singlecell.pipeline.SeuratToolParameter;
6+
import org.labkey.api.sequenceanalysis.pipeline.SequenceOutputHandler;
77
import org.labkey.api.singlecell.pipeline.SingleCellStep;
88

9-
import java.util.Arrays;
9+
import java.io.File;
1010
import java.util.Collections;
11+
import java.util.List;
1112

1213
public class RunCsCore extends AbstractCellMembraneStep
1314
{
@@ -30,9 +31,37 @@ public RunCsCore create(PipelineContext ctx)
3031
}
3132
}
3233

34+
@Override
35+
public boolean createsSeuratObjects()
36+
{
37+
return false;
38+
}
39+
3340
@Override
3441
public String getFileSuffix()
3542
{
3643
return "cscore";
3744
}
45+
46+
@Override
47+
public Output execute(SequenceOutputHandler.JobContext ctx, List<SeuratObjectWrapper> inputObjects, String outputPrefix) throws PipelineJobException
48+
{
49+
Output output = super.execute(ctx, inputObjects, outputPrefix);
50+
51+
// Add the RDS files:
52+
File[] outputs = ctx.getOutputDir().listFiles(f -> f.isDirectory() && f.getName().endsWith(".cscore.wgcna.rds"));
53+
if (outputs == null || outputs.length == 0)
54+
{
55+
return output;
56+
}
57+
58+
for (File rds : outputs)
59+
{
60+
String sn = rds.getName().replaceAll(".cscore.wgcna.rds", "");
61+
62+
output.addSequenceOutput(rds, "CS-CORE: " + sn, "CS-CORE Results", inputObjects.get(0).getReadsetId(), null, ctx.getSequenceSupport().getCachedGenomes().iterator().next().getGenomeId(), null);
63+
}
64+
65+
return output;
66+
}
3867
}

0 commit comments

Comments
 (0)