Skip to content

Commit 4181009

Browse files
committed
Add step to add study metadata to seurat objects
1 parent f22dc0d commit 4181009

File tree

3 files changed

+77
-0
lines changed

3 files changed

+77
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
if (!file.exists('/homeDir/.netrc')) {
2+
print(list.files('/homeDir'))
3+
stop('Unable to find file: /homeDir/.netrc')
4+
}
5+
6+
invisible(Rlabkey::labkey.setCurlOptions(NETRC_FILE = '/homeDir/.netrc'))
7+
Rdiscvr::SetLabKeyDefaults(baseUrl = serverBaseUrl, defaultFolder = defaultLabKeyFolder)
8+
9+
for (datasetId in names(seuratObjects)) {
10+
printName(datasetId)
11+
seuratObj <- readSeuratRDS(seuratObjects[[datasetId]])
12+
13+
if (studyName == 'PC475') {
14+
seuratObj <- Rdiscvr::ApplyPC475Metadata(seuratObj, errorIfUnknownIdsFound = errorIfUnknownIdsFound)
15+
} else if (studyName == 'TB') {
16+
seuratObj <- Rdiscvr::ApplyTBMetadata(seuratObj, errorIfUnknownIdsFound = errorIfUnknownIdsFound)
17+
} else if (studyName == 'Malaria') {
18+
seuratObj <- Rdiscvr::ApplyMalariaMetadata(seuratObj, errorIfUnknownIdsFound = errorIfUnknownIdsFound)
19+
} else {
20+
stop(paste0('Unknown study: ', studyName))
21+
}
22+
23+
saveData(seuratObj, datasetId)
24+
25+
# Cleanup
26+
rm(seuratObj)
27+
gc()
28+
}

singlecell/src/org/labkey/singlecell/SingleCellModule.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ public static void registerPipelineSteps()
229229
SequencePipelineService.get().registerPipelineStep(new RunEscape.Provider());
230230
SequencePipelineService.get().registerPipelineStep(new RunCsCore.Provider());
231231
SequencePipelineService.get().registerPipelineStep(new CustomGSEA.Provider());
232+
SequencePipelineService.get().registerPipelineStep(new StudyMetadata.Provider());
232233

233234
SequenceAnalysisService.get().registerReadsetListener(new SingleCellReadsetListener());
234235
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package org.labkey.singlecell.pipeline.singlecell;
2+
3+
import org.json.JSONObject;
4+
import org.labkey.api.sequenceanalysis.pipeline.AbstractPipelineStepProvider;
5+
import org.labkey.api.sequenceanalysis.pipeline.PipelineContext;
6+
import org.labkey.api.singlecell.pipeline.SeuratToolParameter;
7+
import org.labkey.api.singlecell.pipeline.SingleCellStep;
8+
9+
import java.util.Arrays;
10+
import java.util.List;
11+
12+
public class StudyMetadata extends AbstractRDiscvrStep
13+
{
14+
public StudyMetadata(PipelineContext ctx, StudyMetadata.Provider provider)
15+
{
16+
super(provider, ctx);
17+
}
18+
19+
public static class Provider extends AbstractPipelineStepProvider<SingleCellStep>
20+
{
21+
public Provider()
22+
{
23+
super("StudyMetadata", "Append Study Metadata", "RDiscvr", "This uses Rdiscvr to append study-specific metadata.", Arrays.asList(
24+
SeuratToolParameter.create("testsToUse", "Tests To Use", "The set of tests to perform.", "ldk-simplecombo", new JSONObject()
25+
{{
26+
put("multiSelect", false);
27+
put("allowBlank", false);
28+
put("storeValues", "PC475;TB;Malaria");
29+
put("delimiter", ";");
30+
}}, null, null, false, false),
31+
SeuratToolParameter.create("errorIfUnknownIdsFound", "Error If Unknown Ids Found", "If true, the job will fail if the seurat object contains ID not present in the metadata", "checkbox", null, true)
32+
), null, null);
33+
}
34+
35+
@Override
36+
public StudyMetadata create(PipelineContext ctx)
37+
{
38+
return new StudyMetadata(ctx, this);
39+
}
40+
}
41+
42+
@Override
43+
public String getFileSuffix()
44+
{
45+
return "study";
46+
}
47+
}
48+

0 commit comments

Comments
 (0)