generated from ydeng/python-program
Tested and completed adding call sample filtering
Some checks failed
ydeng/modvcfsamples/pipeline/head There was a failure building this commit
Some checks failed
ydeng/modvcfsamples/pipeline/head There was a failure building this commit
This commit is contained in:
@@ -1,38 +1,18 @@
|
||||
from modvcfsamples.sample import filter_sample_datatype, filter_all_sample_datatypes, get_records_from_vcf
|
||||
from modvcfsamples.sample import keep_specific_call_data, get_records_from_vcf
|
||||
import os
|
||||
|
||||
def test_get_records_from_vcf_not_none():
|
||||
records = get_records_from_vcf(os.path.abspath("tests/resources/test_files_shortened.vcf"))
|
||||
assert len(records) > 0
|
||||
|
||||
def test_filter_sample_datatype_not_none():
|
||||
records = get_records_from_vcf(os.path.abspath("tests/resources/test_files_shortened.vcf"))
|
||||
filter_for = ["GT"]
|
||||
modified_record = filter_sample_datatype(records[0], *filter_for)
|
||||
assert modified_record is not None
|
||||
|
||||
def test_filter_sample_datatype_only_filtered():
|
||||
records = get_records_from_vcf(os.path.abspath("tests/resources/test_files_shortened.vcf"))
|
||||
filter_for = ["GT"]
|
||||
modified_record = filter_sample_datatype(records[0], *filter_for)
|
||||
for sample in modified_record.samples:
|
||||
assert len(sample) <= len(filter_for)
|
||||
for key, _ in sample._asdict().items():
|
||||
assert key in filter_for
|
||||
|
||||
def test_filter_all_sample_datatypes_not_empty():
|
||||
records = get_records_from_vcf(os.path.abspath("tests/resources/test_files_shortened.vcf"))
|
||||
records, header = get_records_from_vcf(os.path.abspath("tests/resources/test_files_shortened.vcf"))
|
||||
filter_for = ["GT"]
|
||||
modified_records = list(filter_all_sample_datatypes(records, *filter_for))
|
||||
modified_records, header = keep_specific_call_data(records, header, *filter_for)
|
||||
assert len(modified_records) == 11
|
||||
|
||||
def test_filter_all_sample_datatypes_filtered():
|
||||
records = get_records_from_vcf(os.path.abspath("tests/resources/test_files_shortened.vcf"))
|
||||
records, header = get_records_from_vcf(os.path.abspath("tests/resources/test_files_shortened.vcf"))
|
||||
filter_for = ["GT"]
|
||||
modified_records = list(filter_all_sample_datatypes(records, *filter_for))
|
||||
modified_records, header = keep_specific_call_data(records, header, *filter_for)
|
||||
for modified_record in modified_records:
|
||||
for sample in modified_record.samples:
|
||||
assert len(sample) <= len(filter_for)
|
||||
for key, _ in sample._asdict().items():
|
||||
for call in modified_record.calls:
|
||||
assert len(call.data.keys()) <= len(filter_for)
|
||||
for key, _ in call.data.items():
|
||||
assert key in filter_for
|
||||
|
||||
|
17
tests/resources/expected_out/test_files_shortened.vcf
Normal file
17
tests/resources/expected_out/test_files_shortened.vcf
Normal file
@@ -0,0 +1,17 @@
|
||||
##fileformat=VCFv4.1
|
||||
##fileDate=10122015_22h01m13s
|
||||
##source=SHAPEIT2.v837
|
||||
##log_file=shapeit_10122015_22h01m13s_3f764d75-2fbb-42df-ab75-8c2dfd5731ce.log
|
||||
##FORMAT=<ID=GT,Number=1,Type=String,Description="Phased Genotype">
|
||||
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT Gambian Chinese French Brazilian Nigerian Pakistani English Colombian Indian Japanese
|
||||
1 846808 rs4475691 C T 100 . AC=1276;AN=5008;DP=20368 GT 1|1 0|0 0|0 ./. 0|0 0|0 0|0 0|0 ./. 0|0
|
||||
1 846854 rs111957712 G A 100 . AC=114;AN=5008;DP=20538 GT ./. 0|0 0|0 0|0 0|0 0|0 ./. ./. 0|0 0|0
|
||||
1 846864 rs950122 G C 100 . AC=1116;AN=5008;DP=20582 GT 1|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 ./. 0|0
|
||||
1 847228 rs3905286 C T 100 . AC=1215;AN=5008;DP=20731 GT 1|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0
|
||||
1 847297 rs11507768 G A 100 . AC=359;AN=5008;DP=20809 GT 1|0 0|0 0|0 ./. 0|0 0|0 ./. 0|0 0|0 0|0
|
||||
1 847491 rs28407778 G A 100 . AC=1262;AN=5008;DP=16939 GT 1|1 0|0 0|0 0|0 0|0 ./. 0|0 0|0 0|1 0|0
|
||||
1 848023 rs144407116 C A 100 . AC=52;AN=5008;DP=22562 GT 0|1 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0
|
||||
1 848090 rs4246505 G A 100 . AC=857;AN=5008;DP=19301 GT 0|0 0|0 0|0 0|0 0|0 0|0 ./. 0|0 ./. 0|0
|
||||
1 848445 rs4626817 G A 100 . AC=1255;AN=5008;DP=18444 GT 1|1 0|0 0|0 0|0 0|0 0|0 0|0 ./. ./. 0|0
|
||||
1 848456 rs11507767 A G 100 . AC=1266;AN=5008;DP=18137 GT 1|1 ./. 0|0 0|0 0|0 0|0 0|0 0|0 0|1 ./.
|
||||
1 848738 rs3829741 C T 100 . AC=855;AN=5008;DP=16663 GT 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|0 0|1 0|0
|
Reference in New Issue
Block a user