Skip to content

Commit 396e8d7

Browse files
Create experiment wrapper for TargetedMS run (#480)
1 parent 690b326 commit 396e8d7

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

nextflow/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,8 @@ dependencies {
1212

1313
BuildUtils.addLabKeyDependency(project: project, config: "modules", depProjectPath: BuildUtils.getPlatformModuleProjectPath(project.gradle, "experiment"), depProjectConfig: "published", depExtension: "module")
1414
BuildUtils.addLabKeyDependency(project: project, config: "modules", depProjectPath: BuildUtils.getPlatformModuleProjectPath(project.gradle, "pipeline"), depProjectConfig: "published", depExtension: "module")
15+
16+
BuildUtils.addLabKeyDependency(project: project, config: "implementation", depProjectPath: ":server:modules:targetedms", depProjectConfig: "apiJarFile")
17+
BuildUtils.addLabKeyDependency(project: project, config: "jspImplementation", depProjectPath: ":server:modules:targetedms", depProjectConfig: "apiJarFile")
18+
BuildUtils.addLabKeyDependency(project: project, config: "modules", depProjectPath: ":server:modules:targetedms", depProjectConfig: "published", depExtension: "module")
1519
}

nextflow/src/org/labkey/nextflow/pipeline/NextFlowRunTask.java

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@
22

33
import org.apache.logging.log4j.Logger;
44
import org.jetbrains.annotations.NotNull;
5+
import org.labkey.api.exp.XarFormatException;
56
import org.labkey.api.pipeline.AbstractTaskFactory;
67
import org.labkey.api.pipeline.AbstractTaskFactorySettings;
78
import org.labkey.api.pipeline.PipelineJob;
89
import org.labkey.api.pipeline.PipelineJobException;
10+
import org.labkey.api.pipeline.PipelineValidationException;
911
import org.labkey.api.pipeline.RecordedAction;
1012
import org.labkey.api.pipeline.RecordedActionSet;
1113
import org.labkey.api.pipeline.WorkDirectoryTask;
1214
import org.labkey.api.security.SecurityManager;
15+
import org.labkey.api.targetedms.TargetedMSService;
1316
import org.labkey.api.util.FileType;
1417
import org.labkey.nextflow.NextFlowConfiguration;
1518
import org.labkey.nextflow.NextFlowManager;
@@ -79,8 +82,8 @@ public NextFlowRunTask(Factory factory, PipelineJob job)
7982
{
8083
action.addInput(inputFile.toFile(), SPECTRA_INPUT_ROLE);
8184
}
82-
addOutputs(action, getJob().getLogFilePath().getParent().resolve("reports"));
83-
addOutputs(action, getJob().getLogFilePath().getParent().resolve("results"));
85+
addOutputs(action, getJob().getLogFilePath().getParent().resolve("reports"), log);
86+
addOutputs(action, getJob().getLogFilePath().getParent().resolve("results"), log);
8487
return new RecordedActionSet(action);
8588
}
8689
catch (IOException e)
@@ -96,19 +99,32 @@ public NextFlowRunTask(Factory factory, PipelineJob job)
9699
}
97100
}
98101

99-
private void addOutputs(RecordedAction action, Path path) throws IOException
102+
private void addOutputs(RecordedAction action, Path path, Logger log) throws IOException
100103
{
101104
if (Files.isRegularFile(path))
102105
{
103106
action.addOutput(path.toFile(), "Output", false);
107+
if (path.toString().toLowerCase().endsWith(".sky.zip"))
108+
{
109+
try
110+
{
111+
log.info("Queueing import for {}", path);
112+
// Make sure that the TargetedMS runs get wrapped with their experiment run counterparts
113+
TargetedMSService.get().importSkylineDocument(getJob().getInfo(), path);
114+
}
115+
catch (XarFormatException | PipelineValidationException e)
116+
{
117+
log.error("Error queuing import of Skyline document", e);
118+
}
119+
}
104120
}
105121
else if (Files.isDirectory(path))
106122
{
107123
try (Stream<Path> listing = Files.list(path))
108124
{
109125
for (Path child : listing.toList())
110126
{
111-
addOutputs(action, child);
127+
addOutputs(action, child, log);
112128
}
113129
}
114130
}

0 commit comments

Comments
 (0)