Skip to content

Commit 30b9b6e

Browse files
committed
Support additional search primers in Tag-PCR
1 parent 2777802 commit 30b9b6e

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

SequenceAnalysis/src/org/labkey/sequenceanalysis/run/preprocessing/TagPcrSummaryStep.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ public TagPcrSummaryStep(PipelineStepProvider provider, PipelineContext ctx)
6363

6464
private static final String OUTPUT_GENBANK = "outputGenbank";
6565
private static final String DESIGN_PRIMERS = "designPrimers";
66+
private static final String BACKBONE_SEARCH = "backboneSearch";
6667

6768
public static class Provider extends AbstractAnalysisStepProvider<TagPcrSummaryStep>
6869
{
@@ -91,7 +92,11 @@ public Provider()
9192
}}, 3),
9293
ToolParameterDescriptor.createCommandLineParam(CommandLineParam.createSwitch("--include-sa"), "include-sa", "Include Supplemental Alignments", "If checked, alignments with the SA supplemental alignment tag will be parsed, and these alignments inspected.", "checkbox", new JSONObject(){{
9394

94-
}}, false)
95+
}}, false),
96+
ToolParameterDescriptor.create(BACKBONE_SEARCH, "Backbone Search Strings", "An optional comma-separated list of search strings to use to mark vector backbone.", "textarea", new JSONObject(){{
97+
put("height", 100);
98+
put("width", 400);
99+
}}, null)
95100
), null, null);
96101
}
97102

@@ -150,6 +155,7 @@ public Output performAnalysisPerSampleRemote(Readset rs, File inputBam, Referenc
150155

151156
boolean designPrimers = getProvider().getParameterByName(DESIGN_PRIMERS).extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), Boolean.class, true);
152157
boolean outputGenbank = getProvider().getParameterByName(OUTPUT_GENBANK).extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), Boolean.class, true);
158+
String backboneSearch = StringUtils.trimToNull(getProvider().getParameterByName(BACKBONE_SEARCH).extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), String.class, null));
153159

154160
String basename = SequenceAnalysisService.get().getUnzippedBaseName(inputBam.getName());
155161
File siteTable = new File(outputDir, basename + ".sites.txt");
@@ -167,7 +173,16 @@ public Output performAnalysisPerSampleRemote(Readset rs, File inputBam, Referenc
167173
}
168174
File metrics = getMetricsFile(inputBam, outputDir);
169175

170-
getWrapper().execute(inputBam, referenceGenome.getWorkingFastaFile(), siteTable, primerTable, genbank, metrics, blastDbs.get(referenceGenome.getGenomeId()), getClientCommandArgs());
176+
List<String> extraArgs = new ArrayList<>(getClientCommandArgs());
177+
178+
if (backboneSearch != null) {
179+
Arrays.stream(backboneSearch.split(",")).forEach(s -> {
180+
extraArgs.add("-bs");
181+
extraArgs.add(s);
182+
});
183+
}
184+
185+
getWrapper().execute(inputBam, referenceGenome.getWorkingFastaFile(), siteTable, primerTable, genbank, metrics, blastDbs.get(referenceGenome.getGenomeId()), extraArgs);
171186

172187
if (siteTable.exists())
173188
{

0 commit comments

Comments
 (0)