Skip to content

Commit dbc055e

Browse files
authored
Merge pull request #112 from martinghunt/varcall_no_trim_option
Varcall no trim option
2 parents b9af44b + 6db18d2 commit dbc055e

File tree

4 files changed

+49
-30
lines changed

4 files changed

+49
-30
lines changed

python/clockwork/tasks/variant_call_one_sample.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,5 @@ def run(options):
2222
cortex_mem_height=options.mem_height,
2323
debug=options.debug,
2424
keep_bam=options.keep_bam,
25+
trim_reads=not options.no_trim,
2526
)

python/clockwork/tests/var_call_one_sample_pipeline_test.py

Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -35,35 +35,42 @@ def test_run(self):
3535
directory=os.path.join(root_outdir, "ref_dir")
3636
)
3737
ref_dir.make_index_files(ref_fa, False, True, cortex_mem_height=21)
38-
var_call_out = os.path.join(root_outdir, "varcall")
39-
var_call_one_sample_pipeline.run(
40-
[reads1],
41-
[reads2],
42-
ref_dir.directory,
43-
var_call_out,
44-
sample_name="test_sample",
45-
debug=False,
46-
keep_bam=True,
47-
cortex_mem_height=21,
48-
)
38+
for trim_reads in (True, False):
39+
var_call_out = os.path.join(root_outdir, "varcall")
40+
if trim_reads:
41+
var_call_out += ".trim_reads"
42+
else:
43+
var_call_out += ".no_trim_reads"
44+
45+
var_call_one_sample_pipeline.run(
46+
[reads1],
47+
[reads2],
48+
ref_dir.directory,
49+
var_call_out,
50+
sample_name="test_sample",
51+
debug=False,
52+
keep_bam=True,
53+
cortex_mem_height=21,
54+
trim_reads=trim_reads,
55+
)
4956

50-
got_files = sorted(list(os.listdir(var_call_out)))
51-
expect_files = [
52-
"cortex.vcf",
53-
"final.gvcf",
54-
"final.gvcf.fasta",
55-
"final.vcf",
56-
"map.bam",
57-
"map.bam.bai",
58-
"samtools.vcf",
59-
]
60-
self.assertEqual(got_files, expect_files)
57+
got_files = sorted(list(os.listdir(var_call_out)))
58+
expect_files = [
59+
"cortex.vcf",
60+
"final.gvcf",
61+
"final.gvcf.fasta",
62+
"final.vcf",
63+
"map.bam",
64+
"map.bam.bai",
65+
"samtools.vcf",
66+
]
67+
self.assertEqual(got_files, expect_files)
6168

62-
with open(os.path.join(var_call_out, "final.vcf")) as f:
63-
calls = [x for x in f if not x.startswith("#")]
64-
self.assertEqual(len(calls), 1)
65-
fields = calls[0].split("\t")
66-
self.assertEqual(fields[1], "500")
67-
self.assertEqual(fields[3], "A")
68-
self.assertEqual(fields[4], "T")
69+
with open(os.path.join(var_call_out, "final.vcf")) as f:
70+
calls = [x for x in f if not x.startswith("#")]
71+
self.assertEqual(len(calls), 1)
72+
fields = calls[0].split("\t")
73+
self.assertEqual(fields[1], "500")
74+
self.assertEqual(fields[3], "A")
75+
self.assertEqual(fields[4], "T")
6976
utils.syscall(f"rm -r {root_outdir}")

python/clockwork/var_call_one_sample_pipeline.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ def run(
1313
cortex_mem_height=22,
1414
debug=False,
1515
keep_bam=False,
16+
trim_reads=True,
1617
):
1718
if len(reads1_list) != len(reads2_list):
1819
raise Exception(
@@ -24,6 +25,11 @@ def run(
2425
trimmed_reads_1 = []
2526
trimmed_reads_2 = []
2627
for i in range(len(reads1_list)):
28+
if not trim_reads:
29+
trimmed_reads_1.append(reads1_list[i])
30+
trimmed_reads_2.append(reads2_list[i])
31+
continue
32+
2733
trimmed_reads_1.append(os.path.join(outdir, f"trimmed_reads.{i}.1.fq.gz"))
2834
trimmed_reads_2.append(os.path.join(outdir, f"trimmed_reads.{i}.2.fq.gz"))
2935
read_trim.run_trimmomatic(
@@ -44,7 +50,7 @@ def run(
4450
read_group=("1", sample_name),
4551
)
4652
utils.syscall(f"samtools index {rmdup_bam}")
47-
if not debug:
53+
if trim_reads and not debug:
4854
for filename in trimmed_reads_1 + trimmed_reads_2:
4955
os.unlink(filename)
5056

python/scripts/clockwork

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -981,6 +981,11 @@ subparser_variant_call_one_sample.add_argument(
981981
action="store_true",
982982
help="Debug mode: do not clean up any files",
983983
)
984+
subparser_variant_call_one_sample.add_argument(
985+
"--no_trim",
986+
action="store_true",
987+
help="Skip read trimming stage at start of pipeline",
988+
)
984989
subparser_variant_call_one_sample.add_argument(
985990
"ref_dir", help="Directory of reference files, made by clockwork reference_prepare"
986991
)

0 commit comments

Comments
 (0)