Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions flow/src/org/labkey/flow/controllers/run/RunController.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.Logger;
Expand Down Expand Up @@ -54,6 +55,7 @@
import org.labkey.api.util.FileNameUniquifier;
import org.labkey.api.util.FileUtil;
import org.labkey.api.util.GUID;
import org.labkey.api.util.LabKeyProcessBuilder;
import org.labkey.api.util.PageFlowUtil;
import org.labkey.api.util.Pair;
import org.labkey.api.util.StringUtilsLabKey;
Expand Down Expand Up @@ -92,7 +94,6 @@
import org.springframework.validation.Errors;
import org.springframework.web.servlet.ModelAndView;

import jakarta.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
Expand Down Expand Up @@ -844,7 +845,7 @@ public void run()
env.put("exportFormat", _exportToScriptFormat);
List<String> params = parse(_exportToScriptCommandLine, env);

ProcessBuilder pb = new ProcessBuilder(params);
LabKeyProcessBuilder pb = new LabKeyProcessBuilder(params);
info("Executing script: " + StringUtils.join(pb.command(), " "));

try
Expand Down
3 changes: 2 additions & 1 deletion ms2/src/org/labkey/ms2/pipeline/Sqt2PinTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import org.labkey.api.pipeline.cmd.TaskPath;
import org.labkey.api.pipeline.file.AbstractFileAnalysisJob;
import org.labkey.api.util.FileType;
import org.labkey.api.util.LabKeyProcessBuilder;
import org.labkey.api.writer.PrintWriters;
import org.labkey.vfs.FileLike;

Expand Down Expand Up @@ -108,7 +109,7 @@ public RecordedActionSet run() throws PipelineJobException
args.add(targetListFile.getName());
args.add(decoyListFile.getName());

ProcessBuilder pb = new ProcessBuilder(args);
LabKeyProcessBuilder pb = new LabKeyProcessBuilder(args);
pb.directory(_wd.getDir().toNioPathForRead().toFile());

job.runSubProcess(pb, _wd.getDir());
Expand Down
7 changes: 4 additions & 3 deletions ms2/src/org/labkey/ms2/pipeline/TPPTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@
*/
package org.labkey.ms2.pipeline;

import org.jetbrains.annotations.NotNull;
import org.junit.Assert;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jmock.Mockery;
import org.jmock.lib.legacy.ClassImposteriser;
import org.junit.Assert;
import org.junit.Test;
import org.labkey.api.exp.PropertyType;
import org.labkey.api.pipeline.AbstractTaskFactory;
Expand All @@ -34,6 +34,7 @@
import org.labkey.api.pipeline.WorkDirectory;
import org.labkey.api.pipeline.WorkDirectoryTask;
import org.labkey.api.util.FileType;
import org.labkey.api.util.LabKeyProcessBuilder;
import org.labkey.api.util.NetworkDrive;
import org.labkey.api.util.Pair;
import org.labkey.api.util.PepXMLFileType;
Expand Down Expand Up @@ -448,7 +449,7 @@ public RecordedActionSet run() throws PipelineJobException
for (FileLike fileInput : inputWorkFiles)
interactCmd.add(_wd.getRelativePath(fileInput));

ProcessBuilder builder = new ProcessBuilder(interactCmd);
LabKeyProcessBuilder builder = new LabKeyProcessBuilder(interactCmd);
// Add the TPP directory to the PATH so that xinteract can find it
if (null != xinteractFile.getParentFile() && xinteractFile.getParentFile().exists())
{
Expand Down
10 changes: 5 additions & 5 deletions ms2/src/org/labkey/ms2/pipeline/comet/CometSearchTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.labkey.api.pipeline.RecordedActionSet;
import org.labkey.api.pipeline.WorkDirectory;
import org.labkey.api.util.FileType;
import org.labkey.api.util.LabKeyProcessBuilder;
import org.labkey.ms2.pipeline.AbstractMS2SearchPipelineJob;
import org.labkey.ms2.pipeline.AbstractMS2SearchTask;
import org.labkey.ms2.pipeline.TPPTask;
Expand All @@ -33,7 +34,6 @@

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
Expand All @@ -47,23 +47,23 @@ public class CometSearchTask extends AbstractMS2SearchTask<CometSearchTask.Facto

private static final String COMET_ACTION_NAME = "Comet Search";

public static class Factory extends AbstractSequestSearchTaskFactory
public static class Factory extends AbstractSequestSearchTaskFactory<Factory>
{
public Factory()
{
super(CometSearchTask.class);
}

@Override
public PipelineJob.Task createTask(PipelineJob job)
public CometSearchTask createTask(PipelineJob job)
{
return new CometSearchTask(this, job);
}

@Override
public List<String> getProtocolActionNames()
{
return Arrays.asList(COMET_ACTION_NAME);
return List.of(COMET_ACTION_NAME);
}
}

Expand Down Expand Up @@ -110,7 +110,7 @@ public RecordedActionSet run() throws PipelineJobException
String cometPath = PipelineJobService.get().getExecutablePath("comet", null, "comet", null, getJob().getLogger());
args.add(cometPath);
args.add(localMzXML.getName());
ProcessBuilder processBuilder = new ProcessBuilder(args);
LabKeyProcessBuilder processBuilder = new LabKeyProcessBuilder(args);
getJob().runSubProcess(processBuilder, _wd.getDir());


Expand Down
5 changes: 3 additions & 2 deletions ms2/src/org/labkey/ms2/pipeline/mascot/MascotSearchTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.labkey.api.pipeline.WorkDirectory;
import org.labkey.api.util.FileType;
import org.labkey.api.util.FileUtil;
import org.labkey.api.util.LabKeyProcessBuilder;
import org.labkey.api.util.NetworkDrive;
import org.labkey.api.util.PepXMLFileType;
import org.labkey.ms2.MS2RunType;
Expand Down Expand Up @@ -219,7 +220,7 @@ public RecordedActionSet run() throws PipelineJobException
argsM2S.add("-P" + paramMinPeakCount);
argsM2S.add(fileWorkSpectra.toNioPathForRead().toFile().getAbsolutePath());

getJob().runSubProcess(new ProcessBuilder(argsM2S), _wd.getDir());
getJob().runSubProcess(new LabKeyProcessBuilder(argsM2S), _wd.getDir());

// 1. perform Mascot search
getJob().header("mascot client output");
Expand Down Expand Up @@ -354,7 +355,7 @@ else if (exceptionClass.contains("java.io.filenotfoundexception"))
// will fail to access protein associated information in mascot run
//,"-shortid"
};
getJob().runSubProcess(new ProcessBuilder(args), _wd.getDir());
getJob().runSubProcess(new LabKeyProcessBuilder(args), _wd.getDir());

PepXMLFileType pepxft = new PepXMLFileType(true); // "true" == accept .xml as valid extension for older converters
FileLike fileOutputPepXML = _wd.newFile(pepxft);
Expand Down
19 changes: 10 additions & 9 deletions ms2/src/org/labkey/ms2/pipeline/sequest/SequestSearchTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,15 @@
import org.labkey.api.util.FileType;
import org.labkey.api.util.FileUtil;
import org.labkey.api.util.GUID;
import org.labkey.api.util.LabKeyProcessBuilder;
import org.labkey.api.util.Path;
import org.labkey.api.util.StringUtilsLabKey;
import org.labkey.api.writer.PrintWriters;
import org.labkey.ms2.pipeline.AbstractMS2SearchPipelineJob;
import org.labkey.ms2.pipeline.AbstractMS2SearchProtocol;
import org.labkey.ms2.pipeline.AbstractMS2SearchTask;
import org.labkey.ms2.pipeline.TPPTask;
import org.labkey.ms2.pipeline.ParameterNames;
import org.labkey.ms2.pipeline.TPPTask;
import org.labkey.vfs.FileLike;
import org.labkey.vfs.FileSystemLike;

Expand Down Expand Up @@ -88,15 +89,15 @@ public static FileLike getNativeOutputFile(FileLike dirAnalysis, String baseName
return AbstractMS2SearchPipelineJob.getPepXMLConvertFile(dirAnalysis,baseName,gzSupport);
}

public static class Factory extends AbstractSequestSearchTaskFactory
public static class Factory extends AbstractSequestSearchTaskFactory<Factory>
{
public Factory()
{
super(SequestSearchTask.class);
}

@Override
public PipelineJob.Task createTask(PipelineJob job)
public SequestSearchTask createTask(PipelineJob job)
{
return new SequestSearchTask(this, job);
}
Expand Down Expand Up @@ -221,7 +222,7 @@ private List<FileLike> getFASTAOrIndexFiles(List<RecordedAction> actions) throws
args.add(makeDBExecutable.getAbsolutePath());
args.add("-O" + indexFileBase);
args.add("-P" + fileWorkParams.toNioPathForRead().toFile().getAbsolutePath());
ProcessBuilder pb = new ProcessBuilder(args);
LabKeyProcessBuilder pb = new LabKeyProcessBuilder(args);

// In order to find sort.exe, use the Sequest directory as the working directory
File dir = makeDBExecutable.getParentFile();
Expand Down Expand Up @@ -303,7 +304,7 @@ public RecordedActionSet run() throws PipelineJobException
sequestArgs.add("-F" + dirOutputDta.toNioPathForRead().toFile().getAbsolutePath());
// Trailing argument that makes Sequest not barf
sequestArgs.add("x");
ProcessBuilder sequestPB = new ProcessBuilder(sequestArgs);
LabKeyProcessBuilder sequestPB = new LabKeyProcessBuilder(sequestArgs);
FileLike sequestLogFileWork = SEQUEST_LOG_FILE_TYPE.getFile(_wd.getDir(), getJob().getBaseName());
_wd.newFile(sequestLogFileWork.getName());
boolean copySequestLogFile = true;
Expand All @@ -330,7 +331,7 @@ public RecordedActionSet run() throws PipelineJobException
out2XMLArgs.add("1");
out2XmlParams.getParam("-E").setValue(enzyme);
out2XMLArgs.addAll(convertParams(out2XmlParams.getParams(), params));
ProcessBuilder out2XMLPB = new ProcessBuilder(out2XMLArgs);
LabKeyProcessBuilder out2XMLPB = new LabKeyProcessBuilder(out2XMLArgs);
out2XMLPB.environment().put("WEBSERVER_ROOT", StringUtils.trimToEmpty(new File(out2XMLPath).getParent()));
getJob().runSubProcess(out2XMLPB, _wd.getDir());

Expand Down Expand Up @@ -491,7 +492,7 @@ private void convertToDTA(Map<String, String> params, FileLike dirOutputDta, Fil

actions.add(action);

getJob().runSubProcess(new ProcessBuilder(mzXML2SearchArgs), _wd.getDir());
getJob().runSubProcess(new LabKeyProcessBuilder(mzXML2SearchArgs), _wd.getDir());
}

private FileLike writeDtaList(FileLike dirOutputDta) throws IOException
Expand Down Expand Up @@ -546,13 +547,13 @@ public void testOut2XmlAll() throws SequestParamsException
assertEquals(Collections.<String>emptyList(), convertParams(out2XmlParams.getParams(), Collections.singletonMap("out2xml, all", "0")));
assertEquals(Collections.<String>emptyList(), convertParams(out2XmlParams.getParams(), Collections.singletonMap("out2xml, all", "")));

assertEquals(Arrays.asList("-all"), convertParams(out2XmlParams.getParams(), Collections.singletonMap("out2xml, all", "1")));
assertEquals(List.of("-all"), convertParams(out2XmlParams.getParams(), Collections.singletonMap("out2xml, all", "1")));
}

@Test
public void testOut2XmlEnzyme() throws SequestParamsException
{
assertEquals(Arrays.asList("-EtestEnzyme"), convertParams(new Out2XmlParams().getParams(), Collections.singletonMap("out2xml, enzyme", "testEnzyme")));
assertEquals(List.of("-EtestEnzyme"), convertParams(new Out2XmlParams().getParams(), Collections.singletonMap("out2xml, enzyme", "testEnzyme")));
assertEquals(Collections.<String>emptyList(), convertParams(new Out2XmlParams().getParams(), Collections.singletonMap("out2xml, enzyme", "")));
}
}
Expand Down
21 changes: 6 additions & 15 deletions ms2/src/org/labkey/ms2/pipeline/tandem/XTandemSearchTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.labkey.api.pipeline.RecordedActionSet;
import org.labkey.api.pipeline.WorkDirectory;
import org.labkey.api.util.FileType;
import org.labkey.api.util.LabKeyProcessBuilder;
import org.labkey.api.util.NetworkDrive;
import org.labkey.api.writer.PrintWriters;
import org.labkey.ms2.pipeline.AbstractMS2SearchPipelineJob;
Expand Down Expand Up @@ -143,15 +144,15 @@ public RecordedActionSet run() throws PipelineJobException

// Avoid re-running an X! Tandem search, if the .xtan.xml already exists.
// Several labs soft-link or copy .xtan.xml files to reduce processing time.
ProcessBuilder xTandemPB = null;
LabKeyProcessBuilder xTandemPB = null;
FileLike fileOutputXML = getNativeFileType(support.getGZPreference()).newFile(support.getAnalysisDirectory(), baseName);
FileLike fileWorkOutputXML = null;
FileLike fileJobTandemXML = null;
boolean searchComplete = NetworkDrive.exists(fileOutputXML);

FileLike fileMzXML = _factory.findInputFile(getJobSupport());
FileLike fileInputSpectra;
try (WorkDirectory.CopyingResource lock = _wd.ensureCopyingLock())
try (WorkDirectory.CopyingResource _ = _wd.ensureCopyingLock())
{
fileInputSpectra = _wd.inputFile(fileMzXML, false);
if (searchComplete)
Expand Down Expand Up @@ -186,7 +187,7 @@ public RecordedActionSet run() throws PipelineJobException
// Try it again without the file extension
exePath = PipelineJobService.get().getExecutablePath("tandem", null, "xtandem", ver, getJob().getLogger());
}
xTandemPB = new ProcessBuilder(exePath, INPUT_XML);
xTandemPB = new LabKeyProcessBuilder(exePath, INPUT_XML);

getJob().runSubProcess(xTandemPB, _wd.getDir());

Expand All @@ -202,15 +203,15 @@ public RecordedActionSet run() throws PipelineJobException

String ver = TPPTask.getTPPVersion(getJob());
String exePath = PipelineJobService.get().getExecutablePath("Tandem2XML", null, "tpp", ver, getJob().getLogger());
ProcessBuilder tandem2XmlPB = new ProcessBuilder(exePath,
LabKeyProcessBuilder tandem2XmlPB = new LabKeyProcessBuilder(exePath,
_wd.getRelativePath(fileWorkOutputXML),
fileWorkPepXMLRaw.getName());
getJob().runSubProcess(tandem2XmlPB,
_wd.getDir());

// Move final outputs to analysis directory.
FileLike filePepXMLRaw;
try (WorkDirectory.CopyingResource lock = _wd.ensureCopyingLock())
try (WorkDirectory.CopyingResource _ = _wd.ensureCopyingLock())
{
if (!searchComplete)
fileOutputXML = _wd.outputFile(fileWorkOutputXML);
Expand Down Expand Up @@ -270,16 +271,6 @@ public void writeRunParameters(String pathSpectra, FileLike fileParameters, File
// specify them again.
params.remove("list path, default parameters");

// CONSIDER: If we remove these, they will not end up in the pepXML file.
// ... which is a bad thing, since we currently rely on "pipeline, import spectra"
// to keep from loading all spectra into the database.
/* for (String key : params.keySet().toArray(new String[params.size()]))
{
if (key.startsWith("pipeline"))
params.remove(key);
}
*/

try
{
getJobSupport().createParamParser().writeFromMap(params, fileParameters);
Expand Down
6 changes: 3 additions & 3 deletions ms2/src/org/labkey/ms2/pipeline/tandem/XTandemToXMLTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.labkey.api.pipeline.WorkDirectory;
import org.labkey.api.pipeline.file.FileAnalysisJobSupport;
import org.labkey.api.util.FileType;
import org.labkey.api.util.LabKeyProcessBuilder;
import org.labkey.api.util.NetworkDrive;
import org.labkey.ms2.pipeline.AbstractMS2SearchPipelineJob;
import org.labkey.ms2.pipeline.AbstractMS2SearchTask;
Expand All @@ -34,7 +35,6 @@

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
Expand Down Expand Up @@ -70,7 +70,7 @@ public boolean isJobComplete(PipelineJob job)
@Override
public List<String> getProtocolActionNames()
{
return Arrays.asList(XTandemSearchTask.TANDEM2_XML_ACTION_NAME);
return List.of(XTandemSearchTask.TANDEM2_XML_ACTION_NAME);
}

@Override
Expand Down Expand Up @@ -108,7 +108,7 @@ public RecordedActionSet run() throws PipelineJobException

String ver = TPPTask.getTPPVersion(getJob());
String exePath = PipelineJobService.get().getExecutablePath("Tandem2XML", null, "tpp", ver, getJob().getLogger());
ProcessBuilder tandem2XmlPB = new ProcessBuilder(exePath,
LabKeyProcessBuilder tandem2XmlPB = new LabKeyProcessBuilder(exePath,
_wd.getRelativePath(fileWorkOutputXML),
fileWorkPepXMLRaw.getName());
getJob().runSubProcess(tandem2XmlPB,
Expand Down
Loading