Skip to content

Commit 7d1d28e

Browse files
szhanmergify[bot]
authored andcommitted
Add contig-id argument
1 parent 943372d commit 7d1d28e

File tree

2 files changed

+28
-17
lines changed

2 files changed

+28
-17
lines changed

python/tests/test_cli.py

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -263,29 +263,37 @@ def test_fasta_long_args(self):
263263
assert args.tree_sequence == tree_sequence
264264
assert args.wrap == 50
265265

266-
def test_vcf_default_values(self):
266+
@pytest.mark.parametrize(
267+
"flags,expected",
268+
(
269+
[[], None],
270+
[["-P", "2"], 2],
271+
[["--ploidy", "5"], 5],
272+
),
273+
)
274+
def test_vcf_ploidy(self, flags, expected):
267275
parser = cli.get_tskit_parser()
268276
cmd = "vcf"
269277
tree_sequence = "test.trees"
270-
args = parser.parse_args([cmd, tree_sequence])
278+
args = parser.parse_args([cmd, tree_sequence, *flags])
271279
assert args.tree_sequence == tree_sequence
272-
assert args.ploidy is None
273-
274-
def test_vcf_short_args(self):
275-
parser = cli.get_tskit_parser()
276-
cmd = "vcf"
277-
tree_sequence = "test.trees"
278-
args = parser.parse_args([cmd, tree_sequence, "-P", "2"])
279-
assert args.tree_sequence == tree_sequence
280-
assert args.ploidy == 2
281-
282-
def test_vcf_long_args(self):
280+
assert args.ploidy == expected
281+
282+
@pytest.mark.parametrize(
283+
"flags,expected",
284+
(
285+
[[], "1"],
286+
[["-c", "chrX"], "chrX"],
287+
[["--contig-id", "chr20"], "chr20"],
288+
),
289+
)
290+
def test_vcf_contig_id(self, flags, expected):
283291
parser = cli.get_tskit_parser()
284292
cmd = "vcf"
285293
tree_sequence = "test.trees"
286-
args = parser.parse_args([cmd, tree_sequence, "--ploidy", "5"])
294+
args = parser.parse_args([cmd, tree_sequence, *flags])
287295
assert args.tree_sequence == tree_sequence
288-
assert args.ploidy == 5
296+
assert args.contig_id == expected
289297

290298
def test_upgrade_default_values(self):
291299
parser = cli.get_tskit_parser()

python/tskit/cli.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#
22
# MIT License
33
#
4-
# Copyright (c) 2018-2021 Tskit Developers
4+
# Copyright (c) 2018-2022 Tskit Developers
55
# Copyright (c) 2015-2018 University of Oxford
66
#
77
# Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -132,7 +132,7 @@ def run_fasta(args):
132132

133133
def run_vcf(args):
134134
tree_sequence = load_tree_sequence(args.tree_sequence)
135-
tree_sequence.write_vcf(sys.stdout, ploidy=args.ploidy)
135+
tree_sequence.write_vcf(sys.stdout, ploidy=args.ploidy, contig_id=args.contig_id)
136136

137137

138138
def add_tree_sequence_argument(parser):
@@ -215,6 +215,9 @@ def get_tskit_parser():
215215
"individuals"
216216
),
217217
)
218+
parser.add_argument(
219+
"--contig-id", "-c", type=str, default="1", help="Specify the contig id"
220+
)
218221
parser.set_defaults(runner=run_vcf)
219222

220223
parser = subparsers.add_parser(

0 commit comments

Comments
 (0)