Skip to content

Commit 488d268

Browse files
committed
Merge discvr-25.3 to develop
2 parents b9eb550 + 6a3389a commit 488d268

File tree

10 files changed

+1202
-101
lines changed

10 files changed

+1202
-101
lines changed

SequenceAnalysis/src/org/labkey/sequenceanalysis/run/analysis/SawfishAnalysis.java

Lines changed: 3 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -49,37 +49,16 @@ public Output performAnalysisPerSampleRemote(Readset rs, File inputBam, Referenc
4949
{
5050
AnalysisOutputImpl output = new AnalysisOutputImpl();
5151

52-
File inputFile = inputBam;
53-
if (SequenceUtil.FILETYPE.cram.getFileType().isType(inputFile))
54-
{
55-
CramToBam samtoolsRunner = new CramToBam(getPipelineCtx().getLogger());
56-
File bam = new File(getPipelineCtx().getWorkingDirectory(), inputFile.getName().replaceAll(".cram$", ".bam"));
57-
File bamIdx = new File(bam.getPath() + ".bai");
58-
if (!bamIdx.exists())
59-
{
60-
samtoolsRunner.convert(inputFile, bam, referenceGenome.getWorkingFastaFile(), SequencePipelineService.get().getMaxThreads(getPipelineCtx().getLogger()));
61-
new SamtoolsIndexer(getPipelineCtx().getLogger()).execute(bam);
62-
}
63-
else
64-
{
65-
getPipelineCtx().getLogger().debug("BAM index exists, will not re-convert CRAM");
66-
}
67-
68-
inputFile = bam;
69-
70-
output.addIntermediateFile(bam);
71-
output.addIntermediateFile(bamIdx);
72-
}
73-
7452
List<String> args = new ArrayList<>();
7553
args.add(getExe().getPath());
7654
args.add("discover");
7755

7856
args.add("--bam");
79-
args.add(inputFile.getPath());
57+
args.add(inputBam.getPath());
8058

59+
// NOTE: sawfish stores the absolute path of the FASTA in the output JSON, so dont rely on working copies:
8160
args.add("--ref");
82-
args.add(referenceGenome.getWorkingFastaFile().getPath());
61+
args.add(referenceGenome.getSourceFastaFile().getPath());
8362

8463
File svOutDir = new File(outputDir, "sawfish");
8564
args.add("--output-dir");
@@ -123,41 +102,4 @@ private File getExe()
123102
{
124103
return SequencePipelineService.get().getExeForPackage("SAWFISHPATH", "sawfish");
125104
}
126-
127-
private static class CramToBam extends SamtoolsRunner
128-
{
129-
public CramToBam(Logger log)
130-
{
131-
super(log);
132-
}
133-
134-
public void convert(File inputCram, File outputBam, File fasta, @Nullable Integer threads) throws PipelineJobException
135-
{
136-
getLogger().info("Converting CRAM to BAM");
137-
138-
execute(getParams(inputCram, outputBam, fasta, threads));
139-
}
140-
141-
private List<String> getParams(File inputCram, File outputBam, File fasta, @Nullable Integer threads)
142-
{
143-
List<String> params = new ArrayList<>();
144-
params.add(getSamtoolsPath().getPath());
145-
params.add("view");
146-
params.add("-b");
147-
params.add("-T");
148-
params.add(fasta.getPath());
149-
params.add("-o");
150-
params.add(outputBam.getPath());
151-
152-
if (threads != null)
153-
{
154-
params.add("-@");
155-
params.add(String.valueOf(threads));
156-
}
157-
158-
params.add(inputCram.getPath());
159-
160-
return params;
161-
}
162-
}
163105
}

SequenceAnalysis/src/org/labkey/sequenceanalysis/run/analysis/SawfishJointCallingHandler.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,6 @@ private File runSawfishCall(JobContext ctx, List<File> inputs, ReferenceGenome g
120120
args.add(String.valueOf(maxThreads));
121121
}
122122

123-
args.add("--ref");
124-
args.add(genome.getWorkingFastaFile().getPath());
125-
126123
for (File sample : inputs)
127124
{
128125
args.add("--sample");
@@ -177,7 +174,7 @@ private File runSawfishCall(JobContext ctx, List<File> inputs, ReferenceGenome g
177174

178175
private File getExe()
179176
{
180-
return SequencePipelineService.get().getExeForPackage("PBSVPATH", "pbsv");
177+
return SequencePipelineService.get().getExeForPackage("SAWFISHPATH", "sawfish");
181178
}
182179
}
183180
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package org.labkey.sequenceanalysis.run.util;
2+
3+
import org.apache.logging.log4j.Logger;
4+
import org.jetbrains.annotations.Nullable;
5+
import org.labkey.api.pipeline.PipelineJobException;
6+
import org.labkey.api.sequenceanalysis.pipeline.SamtoolsRunner;
7+
8+
import java.io.File;
9+
import java.util.ArrayList;
10+
import java.util.List;
11+
12+
public class CramToBamWrapper extends SamtoolsRunner
13+
{
14+
public CramToBamWrapper(Logger log)
15+
{
16+
super(log);
17+
}
18+
19+
public void convert(File inputCram, File outputBam, File fasta, @Nullable Integer threads) throws PipelineJobException
20+
{
21+
getLogger().info("Converting CRAM to BAM");
22+
23+
execute(getParams(inputCram, outputBam, fasta, threads));
24+
}
25+
26+
private List<String> getParams(File inputCram, File outputBam, File fasta, @Nullable Integer threads)
27+
{
28+
List<String> params = new ArrayList<>();
29+
params.add(getSamtoolsPath().getPath());
30+
params.add("view");
31+
params.add("-b");
32+
params.add("-T");
33+
params.add(fasta.getPath());
34+
params.add("-o");
35+
params.add(outputBam.getPath());
36+
37+
if (threads != null)
38+
{
39+
params.add("-@");
40+
params.add(String.valueOf(threads));
41+
}
42+
43+
params.add(inputCram.getPath());
44+
45+
return params;
46+
}
47+
}

0 commit comments

Comments
 (0)