Skip to content

Commit d8e4752

Browse files
committed
Primers are required for CellRangerVDJWrapper
1 parent a57d9a3 commit d8e4752

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

singlecell/src/org/labkey/singlecell/run/CellRangerVDJWrapper.java

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ public VDJProvider()
8181
ToolParameterDescriptor.create(INNER_ENRICHMENT_PRIMERS, "Inner Enrichment Primers", "An option comma-separated list of the inner primers used for TCR enrichment. These will be used for trimming.", "textarea", new JSONObject(){{
8282
put("height", 100);
8383
put("width", 400);
84+
put("allowBlank", false);
8485
}}, null)
8586
), null, "https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger", true, false, false, ALIGNMENT_MODE.MERGE_THEN_ALIGN);
8687
}
@@ -311,29 +312,31 @@ public AlignmentStep.AlignmentOutput performAlignment(Readset rs, List<File> inp
311312
File indexDir = AlignerIndexUtil.getIndexDir(referenceGenome, getIndexCachedDirName(getPipelineCtx().getJob()));
312313

313314
String primers = StringUtils.trimToNull(getProvider().getParameterByName(INNER_ENRICHMENT_PRIMERS).extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), String.class, null));
314-
File primerFile = new File(outputDirectory, "primers.txt");
315-
if (primers != null)
315+
if (primers == null)
316316
{
317-
primers = primers.replaceAll("\\s+", ",");
318-
primers = primers.replaceAll(",+", ",");
317+
throw new PipelineJobException("Enrichment primers are required");
318+
}
319319

320-
try (PrintWriter writer = PrintWriters.getPrintWriter(primerFile))
321-
{
322-
Arrays.stream(primers.split(",")).forEach(x -> {
323-
x = StringUtils.trimToNull(x);
324-
if (x != null)
325-
{
326-
writer.println(x);
327-
}
328-
});
329-
}
330-
catch (IOException e)
331-
{
332-
throw new PipelineJobException(e);
333-
}
320+
File primerFile = new File(outputDirectory, "primers.txt");
321+
primers = primers.replaceAll("\\s+", ",");
322+
primers = primers.replaceAll(",+", ",");
334323

335-
output.addIntermediateFile(primerFile);
324+
try (PrintWriter writer = PrintWriters.getPrintWriter(primerFile))
325+
{
326+
Arrays.stream(primers.split(",")).forEach(x -> {
327+
x = StringUtils.trimToNull(x);
328+
if (x != null)
329+
{
330+
writer.println(x);
331+
}
332+
});
336333
}
334+
catch (IOException e)
335+
{
336+
throw new PipelineJobException(e);
337+
}
338+
339+
output.addIntermediateFile(primerFile);
337340

338341
Integer maxThreads = SequencePipelineService.get().getMaxThreads(getPipelineCtx().getLogger());
339342
if (maxThreads != null)
@@ -359,10 +362,7 @@ public AlignmentStep.AlignmentOutput performAlignment(Readset rs, List<File> inp
359362
{
360363
writer.println("[vdj]");
361364
writer.println("reference," + indexDir.getPath());
362-
if (primers != null)
363-
{
364-
writer.println("inner-enrichment-primers," + primerFile);
365-
}
365+
writer.println("inner-enrichment-primers," + primerFile);
366366
writer.println("");
367367
writer.println("[libraries]");
368368
writer.println("fastq_id,fastqs,lanes,feature_types,subsample_rate");

0 commit comments

Comments
 (0)