From ef42bd8268a5f8ddd18dc7abd128a40da4f99cf5 Mon Sep 17 00:00:00 2001 From: Shriram Bhosle Date: Thu, 23 Jun 2022 15:53:40 +0100 Subject: [PATCH 1/7] added functionality to show overlapping driver annotation types --- README.md | 6 +- annotate/config/filters.json | 8 ++- annotate/config/info.header | 4 +- annotate/io_formatter.py | 18 ++++-- annotate/vcf_annotator.py | 108 +++++++++++++++++++++++++++++++++-- requirements.txt | 1 + requirements_dev.txt | 1 + 7 files changed, 128 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 1632308..224ceca 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ This project hosts scripts to annotate VCF files using user defined driver genes ## Design -Uses [bcftools], [tabix] and [bgzip] in user's path , these are part of [htslib] or can be installed separately +Uses [bcftools], [tabix], [pyvcf] and [bgzip] in user's path , these are part of [htslib] or can be installed separately ## Tools @@ -45,8 +45,7 @@ Various exceptions can occur for malformed input files. ### outputFormat - * ```_drv.vcf.gz ``` output vcf file with DRV info field and consequence type if known, LoF in case annotated using LoF gene list, -CPV info field is added if variants in cancer predisposition genes are provided. + * ```_drv.vcf.gz ``` output vcf file with DRV info field and type of driver instance (germline and/or somatic) overlapping with variant location. ## INSTALL Installing via `pip install`. Simply execute with the path to the compiled 'whl' found on the [release page][annotateVcf-releases]: @@ -132,6 +131,7 @@ pip install --find-links=~/wheels annotateVcf [htslib]: https://github.com/samtools/htslib [bcftools]: https://github.com/samtools/bcftools + [pyvcf]: https://pyvcf.readthedocs.io/en/latest/index.html [tabix]: https://github.com/samtools/tabix [VAGrENT]: https://github.com/cancerit/VAGrENT [travis-master-badge]: https://travis-ci.org/cancerit/annotateVCF.svg?branch=master diff --git a/annotate/config/filters.json b/annotate/config/filters.json index 2668ccb..df73bca 100644 --- a/annotate/config/filters.json +++ b/annotate/config/filters.json @@ -9,9 +9,11 @@ "INFO": "INFO/VC=\"stop_lost,start_lost,ess_splice,frameshift,nonsense\"", "INFO_FLAG_GERMLINE": "NPGL" }, - + "driver_type": { + "DRV": "somatic", + "CPV": "germline" + }, "exclude": { "None": null } -} - +} \ No newline at end of file diff --git a/annotate/config/info.header b/annotate/config/info.header index 6cf0f2b..263fb98 100644 --- a/annotate/config/info.header +++ b/annotate/config/info.header @@ -1,2 +1,2 @@ -##INFO= -##INFO= +##INFO= +##INFO= \ No newline at end of file diff --git a/annotate/io_formatter.py b/annotate/io_formatter.py index 8cadb40..9c1094a 100644 --- a/annotate/io_formatter.py +++ b/annotate/io_formatter.py @@ -84,6 +84,8 @@ def _get_formatter(self, input_type): return self._check_input elif input_type == 'vcf_filters': return self._get_filters + elif input_type == 'drv_type': + return self._get_driver_type else: raise ValueError(input_type) @@ -106,9 +108,16 @@ def _get_filters(self): """ load parameters from json config file """ - inc_filters = ['FORMAT', 'FILTER', 'INFO', 'INFO_FLAG_GERMLINE'] - formatted_filters = parse_filters(self.json_file, 'include', inc_filters) + formatted_filters = parse_filters(self.json_file, 'include') return formatted_filters + def _get_driver_type(self): + """ + get driver types from user provided json file + :return: driver type dictionary + """ + driver_type = parse_filters(self.json_file, 'driver_type') + return driver_type + def _get_outdir_path(self): """ @@ -121,7 +130,6 @@ def _get_outdir_path(self): # generic functions .... - def check_inputs(file_dict): """ :param file_dict: check status of input files.. @@ -150,7 +158,7 @@ def get_file_metadata(full_file_name): return file_metadata -def parse_filters(json_file, filter_type, filters): +def parse_filters(json_file, filter_type): """ load filtering parameters from json config file """ @@ -160,7 +168,7 @@ def parse_filters(json_file, filter_type, filters): sys.exit('Json configuration file must be provided') with open(json_file, 'r') as cfgfile: filter_cfg = json.load(cfgfile) - for filter in filters: + for filter in filter_cfg[filter_type]: filter_param_dict[filter] = filter_cfg[filter_type][filter] except json.JSONDecodeError as jde: sys.exit('json error:{}'.format(jde.args[0])) diff --git a/annotate/vcf_annotator.py b/annotate/vcf_annotator.py index fac5ec7..f1127fc 100644 --- a/annotate/vcf_annotator.py +++ b/annotate/vcf_annotator.py @@ -35,11 +35,15 @@ import re import io import copy +import vcf + +from vcf import utils +from collections import defaultdict from subprocess import Popen, PIPE, STDOUT, TimeoutExpired import pkg_resources ''' - This code runs bcftools to annotates driver gene and variant sites + This code runs bcftools and pyvcf to annotates user provided driver gene and variant sites ''' @@ -61,6 +65,7 @@ def __init__(self, f, basedir): self._set_input_vcf(self.input_data) self.drv_header = f.header_line self.merge_vcf_dict = {} + self.annotated_vcf_list = [] self.keepTmp = f.keepTmp # run analysis self._runAnalysis(f) @@ -78,6 +83,9 @@ def _runAnalysis(self, f): self.format_filters = vcf_filter_params['FORMAT'] self.filter_filters = vcf_filter_params['FILTER'] self.flag_germline = vcf_filter_params['INFO_FLAG_GERMLINE'] + drv_type = f.format(['drv_type']) + self.drv_type_dict = drv_type.get('drv_type', None) + run_status = False a_type = ['normal_panel', 'mutations', 'lof_genes', 'cancer_predisposition'] @@ -163,7 +171,7 @@ def annot_drv_muts(self, muts_file): f" | bcftools annotate -i 'INFO/DRV!=\".\" && INFO/DRV[*]==INFO/VC' " \ f" | bgzip -c >{muts_outfile} && tabix -f -p vcf {muts_outfile}" _run_command(cmd) - self.merge_vcf_dict['a'] = muts_outfile + self.annotated_vcf_list.append(muts_outfile) def annotate_lof_genes(self, genes_file): """ @@ -194,7 +202,9 @@ def annotate_lof_genes(self, genes_file): # write matching LoF genes.... if gene.upper() in lof_gene_list: lof_fh.write(line) - self.merge_vcf_dict['b'] = compress_vcf(lof_outfile) + #compress and store vcf + lof_outfile_gz = compress_vcf(lof_outfile) + self.annotated_vcf_list.append(lof_outfile_gz) def annotate_cpv(self, cpv_file): """ @@ -212,10 +222,87 @@ def annotate_cpv(self, cpv_file): f" | bcftools annotate -i 'INFO/CPV!=\".\" && INFO/CPV[*]==INFO/VC' " \ f" | bgzip -c >{cpv_outfile} && tabix -f -p vcf {cpv_outfile}" _run_command(cmd) - self.merge_vcf_dict['c'] = cpv_outfile + self.annotated_vcf_list.append(cpv_outfile) + + def _get_vcf_readers(self): + """ + create vcf file readers for each annotated vcf file + :return: list of vcf file readers + """ + vcf_readers = [] + for my_vcf in self.annotated_vcf_list: + vcf_readers.append(vcf.Reader(filename=my_vcf)) + return vcf_readers + + def walk_annotated_vcf(self, vcf_readers): + """ + walk through each line of vcf files, matching records will be walked together + However to circumvent occasional anomalous behaviour of pyVCF I have created separate 'vcf_key' to store matched records and their driver type + records written in a collection for each 'vcf_key' as ke val pair of driver_type and vcf record + e.g., 'chr17_7675139_C_[A]': {'somatic': , 'germline': } + :return: collection as above + """ + write_record = defaultdict(dict) + + for record in utils.walk_together(*vcf_readers): + filtered_record = list(filter(None, record)) + for vcf_line in filtered_record: + vcf_key = f"{vcf_line.CHROM}_{vcf_line.POS}_{vcf_line.REF}_{vcf_line.ALT}" + (drv_type, drv_val) = self.get_driver_type(vcf_line) + write_record[vcf_key][drv_val] = vcf_line + return write_record + + def get_driver_type(self, vcf_line): + """ + get driver type for given vcf line + :return: + """ + for drv_type in self.drv_type_dict.keys(): + if vcf_line.INFO.get(drv_type, None): + drv_val = self.drv_type_dict.get(drv_type, 'NA') + return drv_type, drv_val + + def set_driver_type(self, vcf_line): + """ + set driver type for vcf line to False + :return: + """ + for drv_type in self.drv_type_dict.keys(): + if vcf_line.INFO.get(drv_type, None): + vcf_line.INFO[drv_type] = False + + + def print_record(self, write_record, vcf_writer): + """ + print driver record to vcf header template file generated from one of the annotated vcf file + :return: + """ + for records in write_record.values(): + drv_type = set() + edit_line = None + for my_drv, edit_line in records.items(): + drv_type.add(my_drv) + self.set_driver_type(edit_line) + edit_line.INFO['DRV'] = sorted(drv_type) + vcf_writer.write_record(edit_line) + vcf_writer.close() def concat_results(self): + """ + process and concatenate the annotated vcf files... + :return: + """ + annotated_vcfs = self.annotated_vcf_list concat_drv_out = self.outfile_name.format('_drv.vcf.gz') + # combine annotated vcf files... + vcf_readers=self._get_vcf_readers() + write_record=self.walk_annotated_vcf(vcf_readers) + tmp_header = f"{self.outdir}/tmp_header_file" + (vcf_writer, combined_vcf) =_get_vcf_writer(annotated_vcfs[0], tmp_header) + self.print_record(write_record, vcf_writer) + combined_vcf_gz = compress_vcf(combined_vcf) + + self.merge_vcf_dict['a'] = combined_vcf_gz self.merge_vcf_dict['f'] = self.input_data['vcf_file']['path'] vcf_files = ([self.merge_vcf_dict[myvcf] for myvcf in sorted(self.merge_vcf_dict.keys())]) @@ -289,6 +376,17 @@ def unheader_vcf(header_vcf, unheader_vcf): _run_command(cmd) return unheader_vcf +def _get_vcf_writer(my_vcf_file, tmp_header): + """ + :param my_vcf_file: + :param my_vcf_header_file: + :return: my_vcf_header file + """ + cmd = f"bcftools view -h {my_vcf_file} >{tmp_header}.vcf" + _run_command(cmd) + vcf_reader = vcf.Reader(filename=f"{tmp_header}.vcf") + vcf_writer = vcf.Writer(open(f"{tmp_header}_combined.vcf", 'w'), vcf_reader) + return vcf_writer, f"{tmp_header}_combined.vcf" def _run_command(cmd): """ @@ -307,7 +405,7 @@ def _run_command(cmd): close_fds=True, executable='/bin/bash') (out, error) = cmd_obj.communicate() exit_code = cmd_obj.returncode - if (exit_code == 0): + if exit_code == 0: logging.debug(f"Command run successfully:\n{cmd}" f"OUT:{out} Error:{error} Exit:{exit_code}\n") else: diff --git a/requirements.txt b/requirements.txt index e4afd41..9469fa0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,3 +12,4 @@ toml==0.10.2 tomli==1.2.2 tzdata==2021.5 tzlocal==4.1 +pyvcf==0.6.8 diff --git a/requirements_dev.txt b/requirements_dev.txt index 3c51098..fa0b000 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -12,6 +12,7 @@ pyparsing==2.4.7 pytest==6.2.5 pytest-cov==3.0.0 pytz-deprecation-shim==0.1.0.post0 +pyvcf==0.6.8 radon==5.1.0 six==1.16.0 toml==0.10.2 From 16e74071c366650cb87b80efafdf061d74ccfa23 Mon Sep 17 00:00:00 2001 From: Shriram Bhosle Date: Thu, 23 Jun 2022 16:52:36 +0100 Subject: [PATCH 2/7] added setuptools version required for pyvcf --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 280cc51..b1fb939 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,6 +50,7 @@ ENV PATH="$VIRTUAL_ENV/bin:$PATH" COPY annotate/ annotate/ COPY README.md setup.py requirements.txt requirements_dev.txt run_tests.sh ./ +RUN pip install setuptools==57.5.0 RUN pip install --no-cache-dir -r requirements_dev.txt COPY tests/ tests/ #COPY .coveragerc . From ec0122d97656f12a9cfc635ce08cddaca52c2673 Mon Sep 17 00:00:00 2001 From: Shriram Bhosle Date: Mon, 27 Jun 2022 15:23:15 +0000 Subject: [PATCH 3/7] updated old tests --- tests/test_celline_vcf_input.py | 4 ++++ tests/test_input/filters.json | 5 ++++- tests/test_input_lof/filters.json | 5 ++++- tests/test_input_no_vaf_vcf/filters.json | 5 ++++- tests/test_input_no_vaf_vcf_cpg/filters.json | 5 ++++- tests/test_output/celline_drv.vcf.gz | Bin 6332 -> 6297 bytes tests/test_output/celline_drv.vcf.gz.tbi | Bin 1629 -> 1629 bytes tests/test_output/input_drv.vcf.gz | Bin 5996 -> 6129 bytes tests/test_output/input_drv.vcf.gz.tbi | Bin 1734 -> 1747 bytes tests/test_output_lof/input_drv.vcf.gz | Bin 6015 -> 6144 bytes tests/test_output_lof/input_drv.vcf.gz.tbi | Bin 1733 -> 1740 bytes tests/test_output_no_vaf_vcf/input_drv.vcf.gz | Bin 5022 -> 5048 bytes .../input_drv.vcf.gz.tbi | Bin 1759 -> 1767 bytes .../input_drv.vcf.gz | Bin 5083 -> 5078 bytes .../input_drv.vcf.gz.tbi | Bin 1762 -> 1763 bytes 15 files changed, 20 insertions(+), 4 deletions(-) diff --git a/tests/test_celline_vcf_input.py b/tests/test_celline_vcf_input.py index a750a5d..56d0da1 100755 --- a/tests/test_celline_vcf_input.py +++ b/tests/test_celline_vcf_input.py @@ -36,6 +36,10 @@ class TestClass(): format_filter= "FORMAT/VAF[*] > 0.15" filters_filter= "FILTER=\"PASS\"" info_flag_germline="NPGL" + driver_type = { + "DRV": "somatic", + "CPV": "germline" + } # celline output muts_vcf = f"{test_out}/celline_muts.vcf.gz" lof_vcf = f"{test_out}/celline_genes_lof.vcf.gz" diff --git a/tests/test_input/filters.json b/tests/test_input/filters.json index e6b985c..6ea0411 100644 --- a/tests/test_input/filters.json +++ b/tests/test_input/filters.json @@ -9,7 +9,10 @@ "INFO": "INFO/VC=\"stop_lost,start_lost,ess_splice,frameshift,nonsense\"", "INFO_FLAG_GERMLINE": "NPGL" }, - + "driver_type": { + "DRV": "somatic", + "CPV": "germline" + }, "exclude": { "None": "NA" } diff --git a/tests/test_input_lof/filters.json b/tests/test_input_lof/filters.json index e6b985c..6ea0411 100644 --- a/tests/test_input_lof/filters.json +++ b/tests/test_input_lof/filters.json @@ -9,7 +9,10 @@ "INFO": "INFO/VC=\"stop_lost,start_lost,ess_splice,frameshift,nonsense\"", "INFO_FLAG_GERMLINE": "NPGL" }, - + "driver_type": { + "DRV": "somatic", + "CPV": "germline" + }, "exclude": { "None": "NA" } diff --git a/tests/test_input_no_vaf_vcf/filters.json b/tests/test_input_no_vaf_vcf/filters.json index 5dd082c..dc243bc 100644 --- a/tests/test_input_no_vaf_vcf/filters.json +++ b/tests/test_input_no_vaf_vcf/filters.json @@ -9,7 +9,10 @@ "INFO": "INFO/VC=\"stop_lost,start_lost,ess_splice,frameshift,nonsense\"", "INFO_FLAG_GERMLINE": "NPGL" }, - + "driver_type": { + "DRV": "somatic", + "CPV": "germline" + }, "exclude": { "None": "NA" } diff --git a/tests/test_input_no_vaf_vcf_cpg/filters.json b/tests/test_input_no_vaf_vcf_cpg/filters.json index 5dd082c..dc243bc 100644 --- a/tests/test_input_no_vaf_vcf_cpg/filters.json +++ b/tests/test_input_no_vaf_vcf_cpg/filters.json @@ -9,7 +9,10 @@ "INFO": "INFO/VC=\"stop_lost,start_lost,ess_splice,frameshift,nonsense\"", "INFO_FLAG_GERMLINE": "NPGL" }, - + "driver_type": { + "DRV": "somatic", + "CPV": "germline" + }, "exclude": { "None": "NA" } diff --git a/tests/test_output/celline_drv.vcf.gz b/tests/test_output/celline_drv.vcf.gz index 1521a89fb103f9e64f179008e8e97a081a74684e..403c7afba961b26b84b7c2286f3a24e9cde4a756 100644 GIT binary patch literal 6297 zcmV;K7-r`miwFb&00000{{{d;LjnMN80}npbKAC-|J(OdaMPLFe$ju^ZTxtC+PG@=dWWZeGz^199L#5p7tP7Ug1cfrjI4zh zMgHxJ*KkkhkNnV|4gJR0pUtO!ZREk#Xub^L(r~=E_C~eEL|#%|4c^23vOiYiH3XMW zz1VMD&S%z{e`6tLAykJKMHaTP{QhnCynWtjUJNqCwYquIuI5o7KUpJhGKs7YL3|g? zEYBMHvp58r!eD5H{=)ZSYZ(Qzu@&F>R zGYcIPYr2fRS!}`3{=|pTfgRTChJ~4R<3+ypucbE$;!kUPZ=Y{AnXw;EC&A3Og4wM< z*=Zub^iDS$>n<4IS&{#*B?wjybL%hSJ7D2hw%ujq%T9ja%Q-MfanP>W%$kpiT!io9 zl$9vYN^3M<&TfGZiU@%4@D9eGNitD8-)H)Q#4X@uwJ6@R<@Xb0E*@H#X=(A%;%LN5%3iG!#RAq^ClxB40(Ue z>gB&sox+va3ucj)**p$LR=eH$quKwnt@~2TM-CVUpolz0ksL_1m;A^v0=kuRkk?=~ zBM@7r;{uoLwOr~JP~Mt@!u7^}p$DM|nawMeS8jQYf-s6L40=uyn6NXt3r14-AYfsQ zK*efx5PM;)I`%)tK4__=!8Bd$NjHYCK+tR)-@RHpo8Fr>vk4-l7i=j^-y7Z;VBRd_ z!t#NZ^V#GR;M9*m3V9%}A9zCx69q~sJi@qKzq?#B)Sag$NlGe5PehI%0|z}253*oE zN^55=XL)^?sIAC|bM-x#{hFfc{cv;@&WC`Fi}`pU%`Utc5I0*aV`$aWw*1G`n7=+W zUtRlQ<40x5SJ$q*(3>`XjAxBz>z5p zvhHrf#xKFCG(4)isYoy)06gxXb~H9PMy#?Va7kbXYzq1f!MIE<2%5|@$zOli{S!@SbaYFK8w#XAG9q9jDf`WA{+o=<~PF+c0Nw#?c z@4f(Kpsb?pX-h|2VGq2iBTkRTBhI~%Lo)D_-v|IE;v>u^fn?zMKW1 z93H`~+b{rULgH0Xv(dbE2ks4ca7RO{^-K5d<>8rp>%ToT z5c(oIVW8c8n8ecx$`Jh@jTf~SQcUIo$f(g!e_Xe|e|R+6QdzTR@ACApvz*@e(){+p z3^vXtb1yCgFjh1l#nx!zjlo~O4Zwi}S9v`1r_$4jq%Ahicw|L)^AE=RdJooNDzm82qWe1KK;2jTUh6(lGgv7 z%|FbnUgs*`PrFD)1rK`5sqCTUUB9`6`KJjH>3>OAO2(o$-c11ERNxn;dAWW6(HvZ5 z&^DWN-)k4TuVMq1aqt}6b=}b zqqV(unww~`&Prn@QSpa6mD~!0aWDe~=S{}&Ili09v_S|)?2k7ehm++kw1i(!^j=(y ztp6+!(s~RbMr9jHqQC*2d${Bs;V{Jsa7XhZu9E@|X&6 zXUf;vfso#Agm@s2Pti`ID6P|7WpP_6i_ttx8Kl10K{)M;2dzsl06)~41k&%3{)N1$ z;0(yz%fsG)a=b00N?H?;sp?1j{<^0(Tev0K-x|u?pf+%@co)VLzLeaFmN$|Ylk~E3 z&z2Ku04-n;IBvJEiZq-x|G5bbT{U`=m6PK)l|XV-9Lh@{yzn-gcgzme+HI)T4nwtf z8>+p-Q2pJ8>Tf^Pl zCTRj_>`zKe?LOrK2sO9X$glg93*dpFo^k;^Fw|2nfcuBKZk|2tTODLpN%RD%)Ny-y|8`1@wdt!runzUYGcefI?y76{Z`uQq22`SyU>56 zQ{ggBF)p{kt2P+9gkiVbhL|?U71(8rRkWe2Ha12S8kO6yw2eTF2wc?K~;@b+_sVHA|$GYOWEz(1eic8q=r&<3xb(LDXM6b zvRl~10ivt=N!iT=M-E3762U3AIfWm@DfCit}7~}k5gWQIFO*cf3^PrOA07sBb$ z?Q)@uB%Utu44(%&&n*+rzTB6)ksgNGg?Nq>_m|vTd#2qIwLx%j^|p6#etOV-b9T_Y z=pX#{u6c2w)%}5tuMV`qJIL%>9;|jP|0Y+@fmC)5w-0Iu&4V_)%WahdnQCvi=tSnd z8+Oe-k@@C^eR6u$VEm+g1*jALk?ovZ!pD!P*w|)zDxh`Y1IEa_huGQJEKMz(N4H5_WbMI~4mOsd@!$+h(flM$ z!FQ{JbANzn-B$k)Nj}(h?8uj0msdK?1KC0(zX-`Uw~la~AZP$hY8+v=F6Evef^+U5 z0$AuDv^GElXA%*lMz=vkzkl3n_4|E|2!bRa)HS%M0l{4fh(H!&&Vr$YL+_$R*c<$_ zk_)9aMeF6F@2f+@yomJmHKI|UgfJfo;#C5}P6jD^L(`)`lpx4S@Z(AharsIyl;BG> z(HMdzRKkoI7*Vh_Sr|E#5P|?eZBQ*a81WQFEQ2G8C5~{70gm{lIBK`EnuSt{BXuoR zER3$fQB%o`kOu`e3f}vJMHo!|!8>5!&a%Tc-4svzL))Wql`1G#>n0*!Io%|Gouq-R zwu8`UxDQ z)Ld;WyPT9T7!A|QrY3{$f|$pT`e-Z|1(RqRsX%B}$Jo-xNxnmX3qS*?7mgD&AjhFO zG%!~%4mfBP(6C0sIA{kfv|5Q((pW%TLP1^Z8&l;f-(?y=z&wk5358Dc^jG6PaI9p) z5F5YtJ`cgz+3nZO&x_hMvgvtIO0r_GY$D*x)k?0<;B)i|-ak#}OX<+VmsQJ~I`^9m zCeZ3**8lky$$um`k#U|I)6}6rK=HFd#*a)hp`>!3UOHKuS$< z*+QcL=OG{dPk|X> z6o|x!)D3P?c_;^mr>cdJI&+MpgW?3dVVx1b(D8(n0)0!d!%v1m6nqB%&k*q-~<*s11D_Tl=3R8wl)aU zfZ9qq<*gcZ%SMeA{hHQU^U9&0-*kF?#YE~7m(ynn!k&BRC$Lu{3k&dLG0s5(88`@~ zV~{H~48>_&j3#dSTH3Im*U~;CB(Rlk=E-z#JIm9!TzyJj2p%C#bE5oovlZQwpk2)OH@Cw zrcb-qjig-u$xNIZANrHnA+TFgC)+>8B5z+{8{Z*v0A2iSDejwc_8dSwBd-L(Vz z%cOxOX}D;!TqaZy%w55ma?08pq1E2SCDZwDt!0TxHtAG(M$KkTaObkq>|>1u!uBB9 zupb0HWs*t-i6sxtmY5NyfvfDWv-04W%Wwff4zr0i#2X<DFODA?tf;uBNF_&16u84f4R3C(4~qeR<~4d@`Ll0vtTL zxniP1<4SJCxVxz)ij8V2?#1m6t1qsY_JN$oswGiWOENE>+sH+ULeeR9K$6b?!t=Yr0jQ1n!hS*n7BMpQmC zx+5UE~M81mX)y|mC zf~m$t7|V${$%9u2LWs`nZ{(3NvO`qZZcCuH+Sw$TzGk9AUXBXSe{ObCLGMFUxEBOH z;odW@jtY^2ic*3ysftxzRRT>Hlf%^W2y!u^wzK)(5Oa3$>GO5Ks9XjtN~H|@A+Nt6 zfC?uP3jVt`o9Zo5McRfEV?as41!K0&xxng#%4RA^1%}%y=%5HM3R01?*gt6H{C%iL^sT46a=aqjLjLYx}7tV<>2h=ho;#;XTKlRr%;^o25mst`bxZ@5 z;3I<`UUjPQKAlZvX+E;I(b?_7WP9I>aPTx>~SE+ zWPMRCO=oPCqth)|ZGxve;P8{j4YB1@0xHgiJ#n0oIT=P*=fYMw-jc~WzwY!<^XDrg zFY)!^vo9ol>0raS*CYWFf1r?2!ic-Vtvt3`S$QwYRX^L-GLni~Moyk0*vO^96IK-} zO{623-Athg6M3DPke=CYkw*@5k-NEbsFOllE;Z>0%B)brBwBV3Iei)?typ9V$qF!H z<{N4}Y**$zR_=42Jrq%@EZBy-m}a+W`(4ad%WQ;KY+|N~(Wlsw%dx1m%78)jRlyQc zn=07Uj~5C}7?to5o1=&G-HvTGWo(f>+>(YHnQ%4##EEX_opXc)xmuNSgDVTvrrJ@K zo;~In5U5HK<{m!r)o6I^Dk7y-ls`cU=9?N_ohT!$c2}s`eB-t##1YI!prN-g>THJ- zba|tWS=p#NPo!zGIr@YH#e-rxxWb9L!HHXh(+qu{KODIN2^D8;wy}+OSW7ad>aS{U zcp7J|_=BHsaYzTs#Mv? z{fj3tRX7iy(t|okU9Uc#)c(13U9?pN9!Fp&QN&v;uI9BBCTI8TS*q2 z*e=_H49|WL^kgN+DR7F_TB~YflamK!MN%v7pn?}Duq(tC)qeVr>Q*JkY57b(L70J0 zDcaf(Y5nEkW6V~1!lGDjYz{cd1af7ysBsG!#|6vfa{2hp&D|b-Hb+RSzFm45eoU?h zrEX6%MbE#D*E668r>4sU7PitXnf(d9JCTOzOg)~=&IIW2lOl*5Ajic>V6nw%2UpLAJKvS=#~Phi;cO+(xvJ}WLS(Pp^jvP6L)`3OnCn(ga7a=nxB{>DIpdC7c}!M6 z-cUF+DGH`8cXdIX{A3QDa^~#8snfz)*>8#TuWy0uYt-aobKSGnuKI5}+Q1=9L~_`a(Bx@l!qrbJ z>mp+Rwnw@sqfWm``kxJ}nWqLKqf@gL*`>HveW`S*OcbRkr3WsPPpJ@ei&Dh$^SFAM zXC!5xW?ZN?WJNuCdfs}|)sC3!5^Xb?>#*eLJ{QT^{Vo#jJ{;a(;qzOg{27tCdKw0< zO6IC_N~FFje~_DP&MKEn-0XvwodbtE#Id))CwEFgaj6#8u6QP{KHipvXCHjEYcC*Hf@E?lAO4>1Rtrg>@Gz5*skMQ~Lh3$!&acm_Pb=SjHw?!9 zFpMVNy#COoH z7svkK#Rc3G`9nYQr+vRZ@~7d%uMRyp8;6SsPW4B#2X9!NjpZrTRPR09FWX~PUPW;F z(wqDB+i+@K`HvQ27D6?6QDk8o%kTT)bRLWpP5q|`Rbu(nmZ+fxP0xoX>BbPAjZfb#)wSZiKUB=kP7HD}3FlY)*Y-)j( zwjdBA0&k{)m$u;8!e*|su?45J1?Cb8Es#wuh|(4)Lqu@GH?`oFwm<}Nse_zNEg-wR z3F5fU7LY=vs6>R>g7Yn!D1{|ZfgMKdjp9J%xI~n2O0d}2L^&{R$EL(Vo0}*{rj1+| zA+dQNrOLRDJ}unNKn2J5dU4SCAdv((At|?_@7b|9E=@`Ha2iuN&;tm4IHoU zuHLD88=c$B%H3k}=tp%_>3*E~^{a8{%?pOnio@aD8jih@HSq_5H?_QRFq--ke>%6~ zei->yIJ6?)8^l)p6n+S%BWwQTTkpLHE}p~HV}IlV4f|@t?w|fyZRrkma)mQy-Fq`=U>(Pt-*b1g;r}1Jo3!}NDMNyXT{_?)i`So<} zkNha#eK(wYW9!nN&7TUlcg*coeS2pfK~MR+FJE`2Gwb?N()z#C@Wa&V+}-EfX%)#> z!-LLZB3o#B4{vT^{6OSn987&n`bTrP$C^dqqxTq$gE_!1-~R3H?Z+WFaY28p<~yxI z^Xu4vrvqye#`C11afWg)w)zqrAij@=fI<&<=?H8y0{ z7Qi$5Xf0xcM+u2>AbW$i^jHghZNaSjlo=l-)1Ec9?l#=J-MjVON3-`x9-3QBhlgZh zf-;T$e=nquuV(GQ0?|qFJb0r>YLrWV=q<)`t1$%vJb81Wx1uIn-`kdrb+>9vldjmY zAI(4SK(mthC8$gYj)HIzm$rJ>*hY)pEj6Y$nT=tBe0cJu&W?gnFa-tYjYn`if0|f9 zY(MXf3WPMDLx@q?hM=*8nF8GIgcPx{6CnvM zrM^%~|JMs!8;{?tVYry?L(f)rW)oxXReY=fccnt+JqYRSM~DaV_!#dcij{e~uPg>@ zWibq+ltJo?Z7F=$zHVLLHEw#D{6w=|VpE0yL?8)f2ly7A)t5FUoWQ*7L#H#}n{Tu) z>$#ghU29vrH!F1q{ z_ZrCC&gFJ}Jq4qu6`2AHNAlWzdcM6Y8cJZ2;-Fo%nKEa2F2Z;7l$9vY$^=q@R_fZ1 zFxdGF1@{GaaWM%OQG&I6_tLB?cN9i@ng?b1h2O(aaC!GX78u}r(gm8$BrnalfDLLy zxh}M){sHXz_ZCK_9c-PmTYGZ>;J2EBq-$k zL>qv7GoDw9M8H$*gTFJdp1kqU2t(dqwL1APRHHJ^^nz)uWfsnZq19?Ne{FPsYw5PM z+cc1t5)_g02vkSvddZI*BcNG11|1rCLuogb4Hvj%mvX6HKzTEK??>LqFSH;OA=7ZJ z^2$xGVGx0TgF(+p0uy$|Pr*ivM0?Lz9y0C ztJ2YQ-js|6Tpy_yY$;6N>pvM_J}%~k=>u1WQ}9t{ksnKUEeGWCj<>WhaiEmKGmOi_ zPq!sqJ$Y)7WJTrZfyn;nz(EhhgDjYk(%M;zXND8JOlOBpq;Z059dZrmO5G9(m?U7CG5!2p3vfA$IUHi7t)n@$7 z4rv6f`uY-YTBd-bnUTy(>CME8N9nta)6*)QvKUL5Tj0OGOP z?7yKLs2mj)dFq1)iYk0PJO}i*eYqOup964{vw+;>tw_*y3{Mv_{02{hG=Jg^PJ*UcYQVRPOFuHx;;~ z@4fdY-n7@RdNS|T8$|DAYt_;JRs6|gokK?z$wbf-{W^Clp(5*P5Y^uXDs9u7L?Z-O z^`>FZ|2>43z;ZU9qPX`SSHXRfEsd7-1r`7IS>44KlB=D@?fuOgoxhN>yU9!E=Kzec z%mTisbd*nV=S}=9j|y#cf4Y75QyZ-dGjc5~`6nBA><{N*I0kY9|HDI4;DD+K|Kn*M zkAufkd0f1%8BTy{z*;!APTN-BACG%7x{qXt9arbS&#klZ0_LTE2E<604I$^O@5Pg| zx$jK?JZJGEC1;D+k9rVjL?6%6HhLhi7}z+O!Q70)=~+gAk5T9iXaogDQujDoQFl+)AE zkaKV7kPO@8H-epx5Fc{fXY1NAj5L2+r@vb=sdXkXstzPj6@P&<<@E9zv1_(%=*^@A z0p^?5G&&GULUa|#)i!Agyth4DbRx*#}Q7_gY(4@p?=1Lf4Zv-LA z;t{|S!x!?irwsJjbe1r|It>y_4KYWf(|KW?P88(_=wv;+pBC1;KE#s3LQJxoI4kg2 zog0Coscs*DDo}r+{%6KRe-aAc5ZX(*vYFQ9vZB<2o7WYi04$7U%w%&6vB`RDtjasE z{`N8_qF2^m|7yL|cIphw^RIvZ&ANaf8?je^vrbPZpg#Q5aX1S47Eo7POao92hr!K2 zjiV=HQDtX)G1xrN&hz-a0@Kq0`Us}Ou=)fx6&QBfx0-L;?`|ts@}v8%VrKOp4TPR{ za$#sYqxZ9tH1z*h{YCYKl%qKTLaf)-9}msH?a*64oc6u>HX21=X{geF0bEo<>{N!h zV{aD2iD+^1`D}Ur1|xd6li^=E?oL&dK%V zN&C&!N#mw_^5aj9n-i_DP9&gDw5B@AI1wjHC*m)%Q0he13p(6Bsh%`WTJS0L+=;Bc zsk`W07Q)o+s(UUAQ0n&i<$ay;^VU6}UHGTAbAAhl=XVYH(Uc#T@GCG$aPQUKWfR$-n$61&lck+i z^eL+T^V2E(&Z2Pc2hv#`fXc7QWY9dAFQjU$u^(RdmJRii2>es$9XJ^91HKU)B6W;w z`YhsvoIiByoyFt%!_Qy194Z_+Q#GAF-Zo38%QSI{0 zeeL!Vj^Pc~r}plubAo8iR=TKw?G7E5)q_IcR@tAd)91ryIqY4f+Qf+IXI~S!CeW6K&~K8gT91A z=cY;68~j?yg;JZMa=GaHYH(p*MEZP*Xw;Dq=8%9_x<+8w$spxuXnGci5(GI3eq4zm zE?+5z5`3vkG=|_3Dq+S9jHqMtEQ}mV2tfd#7O0jSjCcwomcbFl5=Xeo07raV9JN|m z%|fZfkvf+u7Dh{O)KD@bWTU`_;Cc0CQ84j)KLG>xmL0a~ws<-o+MbQ8R6)5~Hxc>D z=_dJhk_+Sx1R{}@V2TNn#}tRqTVbl3!<2BV%%DnSwUgs$dqs9c72wBcC);*#f~%H1 zt#Rcl{RHk>YOc1HT~10EjD~4tTa&@}LCo`eeKr=1f=M)uR3J2~V{GZ;B;O&x1)u@c z3&#l>kmJxC8kj2>2OKmDXeiMz4%!0?&1PbiG!_t-P*5kk##Fh=cbNon>`!A~LgB7) z`GavEI94)Yh>b41Pkk_UcI%??X;yteHoY!NNv7adO$2xV_f9zpP+DRjTkBYA6`^+YmPpneGX%+@YB=M;LJMcX*UNgaj<-jB;1Y_I#Nz9dK z;#Fsth(2|R6q=Bex=Cq7FYtfR^ySf{)KT8CVe*v^?UBY2S6WKiGq*;WffHEl44klS zQ_9y_wbCF=18OJbl(%ZsT{UW~=+`u_8ut$U^yaS9RZOHVaXI}WLD-k>`T+JyWMKh* zEXFxVAOi=XbPRH(hM_o(%W*am!^n1RhPTi4a3TTW?&9X;t(Ddr14QDp)WjE|=o|#R5WL#z^y`3nB22NU*=}69UKcaMl}nvUcy; zk#81a-xAfA?T7kJcy%!IW{_Ecq+agOA)Wrv&JwDzG|PxtZUF=^>QEQi+k=uPxof&V zEQwf!CC4j?rEdEN?V2FO^;!eMuA?Q4FymUp9g5tWY znjC}pJb*T@sD5DpeJz5X3!qg07$dgob}@r5S6eYhCOv6dE`TV{1Bf&1IBV-pN+JP! zk5Z)kf(hun)yfm-u7II->joKteWn=bD`cvUjIu*mwp>9|p_Iv>3LE5sGf$L1pE~o* zq4`WYaRj(m;&O%xl|R9uMLA69?3VmbzLo~xEbQ7y@&cy1LJB??LB z(*a3p{Z3=Y$(u9^J`qFC4vBMBY~ob$E=#z1T7 zF4aN#KOr3d=h{$w{uKG8_Js6SI;+WTj^DzPeorYp%|=y?RW7*X5Veqo3?d-(MEB4D&y z11whR7>+|;e?kBiwj&h$cWpM+N1}?f4JF2al7b7yY@2g|)%KL_RFDb^WznvUcif-S zY$gE0>Gl**LQ4cGSv`wG#wks+F3M3wnL2ydtYe5I{Q}+voFQ(yd{&5Vn9V2%R5=*i zmD$rh$_&Ao$TG-e?lKHoEfs3tU70KgXJ0=w%?3KhMcKhBSJPZxzG9IZZO)R~YFT9O zs#OO)=Qwxrm;#;6FxvrBduD?(n8JJwrizg2wr{)W#)yu8eXV^Q1U(l(MlHGPbHT!F z-7pzprRJA=G|&osWYELcZ7KYm&Ze?1AKAO;>{ekhA-|f??ufdxwaFrsf{)7H_1$NyCk0)$7U{ z!ZAqd&jg(8ULeP0eNiq=XKaLq zu9&Rrhr14HyuLT`5?>!a$3oH{9c&o)nj}Et8>$#3jJPY@wR=|Amfeee%6{^NjATtA zBPWLlHgak3gjIz~6X^(M7gK1$L|$Viq-VBUZH()Q%yR8GAooYiLN?_ zoF0ZrOBR_*vI2~l`Gy(~+m(5brTd&`4@HzJ3%2Ddrde&;eHF9WGz;Nt7BSPr=pmNm zax7YzWx$}?vS10RMHOs{#|wofj7s>3?a{;eetR|>GPcO>Y)Qk7Ot_kV+(i5CC+8Fi za=)zO23HoSO|_#eE_==cAkaERn0xZXSEJ#%vxuzBqWtzrFyGYZ>O>h~wYoyh;v2U` zA&y`+0u8-`QD=K>pUWF{%vO!Mb0AHV&Cw?uDDD!|!4*!_4Nlx5oM!0r{NczINT@h# zyM=AM$6S&zRd-o)!_zox$sc?O{wym>%)ttVG{#Vko9h5eY7efdYO@Q`go7cTKs)3y z$R3X}NzGExRHe#Bu3sF)RN*{)R-V#9YI^qZr1sCP>7uQ5;Bf?Y5=FejhYEk1BGL8$D%jNPvsNLS} z(VKIGwCcO1m*L0cdQj^2G*a~Z$9R1K^x)KVnZUwUnkBP7p;sr;FrBGqli8U79ez>- zkrU*&7zr$P*zG`f->#~CpXO)wI_RpF?B=ff>mNu{@7|*XImzxQm$?0lk=z}{5pQ0! zKFzB4jJWM1+8veIx%B2NGrPpiK7-jgakxVq zdk1WCXO9p$UpQ;8d3vti3zvmv7d*FQ|2{&ARzfz{@^w+Nf4@y^egx9ZRBC-oWM`ex ziediqA!;J1q?{`sgfE}(ER6cZ$~9o=a=A@J7Nej$5u@(f+S9em<<6c@$;hPFF0%KZPFyMe)6ivR#0iwFb&00000{{{d;LjnLB00RI3000000001~En;y1 diff --git a/tests/test_output/celline_drv.vcf.gz.tbi b/tests/test_output/celline_drv.vcf.gz.tbi index 6e33dd99b667e4208358d37ad38b4378faebae63..9fdfd68cf6ceb7875eb8c7bbaa79c970fbb3022a 100644 GIT binary patch literal 1629 zcmb2|=3rp}f&Xj_PR>jW#!PQ-AMEx`6k+&azIe)89hI<*NtsuCnmr8-TYWOP1l5Em zJEow8=ZEM0e0=O@a{c1sbuVr? znEWWQVq0e^y)C`&YQT}>-`n!7l=i1&A34o_Xm+H1q1~h1!VlM-InU>Qr&^(AdTrL9 z58pnNUAz8c=E;H#E481Au}AXPw@LoH^X=&mtMhLbeu#Uv`u=b3ME7Ueb!Y!R{Cg(+ z?xvL=5}#@BE47T7`BN(Xv+T;B&r83^aQdh0d(`cI`1s8A`%KSo1giV8@x#fk6W9O# zwvy;euf19;$vOX7?fTz8Dr+q!ehs~DDRnNT_G)Qq`}tqW@z1L_7|%IlXIl3q<%iAh zD?hAl6OBKMmVa&4UuE~0clM#_GuKz_vEMW4d98_9q3!wUM)B7J=hxpB`?>2~|L()# zH~0TC+upL?IKI&K|MkuFd(ExSwcg)c|8?#67jD)O4uU~S}% zX*$minLfy0Yx>B4?R}?7DxRq5KkMuLUg&~oYDnPzOaI4k;+3U7!+!<_d9*a6#rXEr zMlYvCiQ^B~&)UVd{lL;TP`QW(pp^~jm92oBXRBx>{5ks^{wpPpCUi;>m(D2ts9~SMC`=~E_ zebdhRJyFNiJ-_=s|NJgz+u_eg|EzQW-1{>pX4&sMKHpbQEm=NyOU2Z@=T@`(=N_%u z>G}O}*|ytvpUT{EH(wqu>vms0>Gjve(uzCRHs7fGzxVAw6Vw1DICDZ$ z_7HVXj_+kSs5X^N@oG z%LT)Ed!J75KA@#@NGivbqs3%G*_)G#)5EV#Si(Hfe8cY_r*nAiH7j{Ial|UfV?W=^ zo!)uQGk8z$&u8~)->Lonl3R4+OI+~RqIK_2@A*?d@0uPS-KbLgAMC1L|BUx=p+ZII PZp^|!nt>TypMVGea%#j( literal 1629 zcmb2|=3rp}f&Xj_PR>jW)=Y12pU>_ulwtVrzHGwksgt?|yu3|xk}~W1RTYDr-8P?D zA9(2!pWl>8VSK@S+U)Fnbunt<>f$>!k6-=6$rqDTz5l+hcCYl;s#le9d+*=>{`{}a z{O7-I=D&Ygy`{MRa+BNQi#A)$mtMYos^sUDd)0{rhrcY${k5S|Eylk1jzw`!{+d}@ zQm;DLl>Zuj_&c)ZhKw?{Me`Z>9MR}{T;!3Cx3~CE4|wz_3q@K8xuSB%W>PM z%$M33*7I!?*l1|@;uUDO~*koHX`DfSkT;BX=mAii{t$Y5n>e*|nSD)YCR*t`3 zyI))8{J*Q^3DG~yK8s%eTyOpRdiCdAg+CMjuFl`KD#79OI7l8)Ce zsO`9}YN1`zEHklLj#F^H{T`bSk9iZfoD1Z@a8Qw{&fE!@qO!T-i|wD*zgZUjPIVm{qxOz*K)bE&tD90_p98#7ktan^zFOiZS7lY z?(IL5{@V2R`(GvBrMq`p?s`iAZLSv0P}$i-fs#Kt@+(T z7x{8dO{=LY;J?Usgj0w4q?+pCIhfIe!!FW%_o;r{(_?m-UB`oVm#+4!zI(rRa{9S< z{}dsn*uP^v+;-dmm%AN-p)JC4;Hp5}-dRUO79}tg-#F~V_TezQt2D>v4-z+OJx>~{ zk{Q1L6QkeBOj>54zxDO?S39o$y=`8Z{(hc3k)FO6S1P+h4V$~SF}%HgkhjS}gyjO` z`8yUBhC!{a5n?LGHjCcq{u{xZUBFzDaAtPO_ow-3+&?@|THtg4ll|2i&wqK`dh~Nz z{=DPo@21TUo^LYy-s^o8lGDChUH|_+?=9H9Ke?~nok~PFY)WJMyi0ap=x)qHK$?LW IT%Ujl0IFKO$^ZZW diff --git a/tests/test_output/input_drv.vcf.gz b/tests/test_output/input_drv.vcf.gz index 9dccb4b6c72edc384817bc04bc483faf4140040f..39ac0a7db128e0c16fe67cd691f974d0fa3750dc 100644 GIT binary patch literal 6129 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 a00000{{{d;LjnLB00RI30000000025Fl8tJ diff --git a/tests/test_output/input_drv.vcf.gz.tbi b/tests/test_output/input_drv.vcf.gz.tbi index c04143c1ce07939b66b19f0dc88fc92c30d4a9f4..65e8426758daa94040dc15803c036ccec31e1712 100644 GIT binary patch literal 1747 zcmb2|=3rp}f&Xj_PR>jWjEry38D=>-im+a|7{RfNb+w3C(~Izf0+%8HqoWes8ewdqqkd{QuxdY~DTjaL?LHh4u4d zU9MKYG1{Gf`L)jHmsZ~otKB_stY3X~+3w;aFJ9MGF7LZvx#gz*-cRpSKfXjUN9K;W z)tWv@Z2p|a@b;)9CxZhAg8}mlw;d+e_qQjoA3XjoGUe!o+}qp8Kzsk!6RFLvhWTSj zfCM&Yy=QoPXCtSRAus{{$?CGL;xAZS%d%%4DGk&%zEHa+t+pargHvhHC^P9J=HdTthJNNP5JoA_Zql{x&8G63Et@l+JdOKz|9I(iq7&#R@A)17oI|krcPGQ! zQyV!O0(e|6zL0pQ!1vKHpn%J~h?%{FN&2YBqNS}@D+Tysgkn3hiL&iv{<_+z`Q~~r z%~EDB-_rHmYxdi}+s(_BVc|iPAxMh%S2KuwDEffS<==oYb&&Ir12CiXE@%&VaFFYb zi{gal1V+t6lYJxFd?Q*)D>gDs?m7J^Ea3sK4*x$t?$4KBPk4qS+>1Qd9lM?zoaNT8 zw<%p-F8^cvbKhTczb<<-0o~0fpIYA)ezLo%#(#r->(|(W$>NcF%QL;*VDXRSd?c-# zEWXz5+rM|-&hwwE_=@#2=3d{s;QKaA)4{sy->@J5EcPFpw|N-f-qq$i6ae(LriBm> z+fjFA&l@b0CQMKeSi{hIcq5Za_MuHID%A^~e!R3r$lYS{7WJKT^B(%0x%N>G?!tfD z?|zDmQ?gpR-1ijU?iBS|#j{;RmiFfszqjzK{AXWp|NV6jlH1|>urQu{ejW{~6w%v+Z&+6k&Z}VSIPZ!BfYaKFEu1+$bROM(2&|hBDc( zvUNv}?vRWxs_mG|{e#I;-m*adrtbCL|5GmcmrCn@&fFUl^1Z<7dofQ@Pf?Heb?wMo z|2Cw2xjbp}oZnx>kgypEcf!StVXXb-G zvyC<~t`^{LcU|AW&9|@dX|mk!vd30E?= zZ~1q}XR|BcEqASwNsaq<)5>;^@~-;tr>*y{IG;TA?i{r#8l{hLy~xlhgli`|#MJ z`#C)LKkfH>4v&icU-x*deirkpBkpnS%-w&r?#}u2xAuPbyEkmPZE!`n7=MoZ^VTnW zd3fFSOwqfRJe#$5KUw#>#OPe@&guWR2hLVS4rsjWKbP3={BttL=HKlMZ%;XLIWP#c zU3@5UN^nk7&=h5hDKckjb57_Sxpe5&U(>z6X3f~W!;Pq%@aNgJtd!jIR{1sG!)H?eOYbfD zSkk@88N<)d^M99zPk7IH?)Zj%+7;`RR)5#4J?Vj=3?(we?Dx)JAHP2R-RGJ)hwgAk zJulUNu~*+3t6QG5)G}}OH2Z?h$2^R0@9yP16aXv~SC=(yjrd{Q{D4a=Oo>B`k-NNr zNqxhXG6wcS(Q<>2KRY}#)$7C$v73KiTi_>hyMh<)p#Qhyey%+yc=yt6y|?Rrr&uN-=OYK^eLKdKU#=K+<0~NljkGMl3JR98C-FJ2mtNF>Dd4P diff --git a/tests/test_output_lof/input_drv.vcf.gz b/tests/test_output_lof/input_drv.vcf.gz index fd52a5b61a2e1e0f7df6912aea9929e626fe8245..35efda3bad6bc97c4bf127a8a45ca36dff7037d9 100644 GIT binary patch literal 6144 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 SLjnLB00RI3000000002RHv7Q< literal 6015 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 diff --git a/tests/test_output_lof/input_drv.vcf.gz.tbi b/tests/test_output_lof/input_drv.vcf.gz.tbi index eec95230d634003b3667703227b07f0c9553960f..c4b0f61b190079ebe6e7b88a494e2efc2644fb63 100644 GIT binary patch literal 1740 zcmb2|=3rp}f&Xj_PR>jWjEry38D=>-im+a|cw;A9O6Idn_a$Gi zX=PU0l7BZn2|wrj>I(O^?-4b!$1a`M`s1emT3h@_&Te{WrPy zzV7>PJxRrrhN$MU{i`Ia#SH%$8067H;043mvl}^?90gb}1a4t8Hg0APJm_FxVX@=R znJ68H4J_Ih;?^7#+rq=&?yCEM=^?L9|Iat~doSDEbEd?-|C%?8V)O9d%IM{f-`ULW zaD2Y;Uy#DvoIgPsKaq0WNoZ3JA>2hymcWf$; zSLf&C$L7(g3~!G*axyq@Fc=)3;jkm+x;%?DhuyaGO4@C?x3`gj-v0f+nK*6V9!mRa z&kVxms&@=;??8ipr}5>OfDJ5Xc~}lQ1niJob134?K{=g6ZCiNx+n-t(vl>>)Pdk3@ zUvA=~9X;V5FkkiR&SVOopQ?EKcmDhLZm{qm$_ymM_1_tO?$EHq=I~Fzcsj^=$N`v5dKa{> zJ<$A@g^7{BX=%k)Ht7%Z)N(x695_-Kd54Q^u<_%PJR>_2VmxKmr>JIi0qocCOE?I&*S^te(z+}M zZ=ISi>5?v>pyMtkF50hw#fE-q)VWs#g^~qE>C&>|MU0LD^3zjm{6zIUyPnSQ%&ffC^ATog MEzQ6TuD(D703e?5v;Y7A literal 1733 zcmb2|=3rp}f&Xj_PR>jW{~6w%v+Z&+6k&Z}VSIPZ!BfYaKFEu1+$bROM(2&|hBDc( zvUNv}?vRWxs_mG|{e#I;-m*adrtbCL|5GmcmrCn@&fFUl^1Z<7dofQ@Pf?Heb?wMo z|2Cw2xjbp}oZnx>kgypEcf!StVXXb-G zvyC<~t`^{LcU|AW&9|@dX|mk!vd30E?= zZ~1q}XR|BcEqASwNsaq<)5>;^@~-;tr>*y{IG;TA?i{r#8l{hLy~xlhgli`|#MJ z`#C)LKkfH>4v&icU-x*deirkpBkpnS%-w&r?#}u2xAuPbyEkmPZE!`n7=MoZ^VTnW zd3fFSOwqfRJe#$5KUw#>#OPe@&guWR2hLVS4rsjWKbP3={BttL=HKlMZ%;XLIWP#c zU3@5UN^nk7&=h5hDKckjb57_Sxpe5&U(>z6X3f~W!;Pq%@aNgJtd!jIR{1sG!)H?eOYbfD zSkk@88N<)d^M99zPk7IH?)Zj%+7;`RR)5#4J?Vj=3?(we?Dx)JAHP2R-RGJ)hwgAk zJulUNu~*+3t6QG5)G}}OH2Z?h$J~r>@9yP16aXv~SC=(yjrd{Q{D4brT2q4Hh7){# z4_KyM<9nd6?h&7woxGvu+avFtemr=#PxM@8lK6Uf)_ziNy<*>4%SG{(x0m1jI^m6b z^}EjiTv)o#Do-v!6U4VHVWV49wtq3q$|_O=9%r diff --git a/tests/test_output_no_vaf_vcf/input_drv.vcf.gz b/tests/test_output_no_vaf_vcf/input_drv.vcf.gz index 4d8328437c5b4c8cff22c3e47dca8bc6064e880b..3462512af1d058fd8650d93989f0f9af39795f39 100644 GIT binary patch literal 5048 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 O00RI3000000001qMZ=x| literal 5022 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 diff --git a/tests/test_output_no_vaf_vcf/input_drv.vcf.gz.tbi b/tests/test_output_no_vaf_vcf/input_drv.vcf.gz.tbi index a576936c7594f8178dc3c4de1007a1dc9bf28e79..f9a0d54a2d26754ffdccee082c51a322ab6267e7 100644 GIT binary patch literal 1767 zcmb2|=3rp}f&Xj_PR>jW8jNqx8G5xC3b0*RGc_Y!pJUO~1^d@+P%;xcq?f1Oy_e(K zyu+uYD;T45b!;Y?fACieUZE}!r|@}3f69#6r+=nwp0dg8p6B*?ci$bYcrPc{9@UpU z^IFlZO^d^#t>$cz`nl%n=BWJBzbqcqNgm$cCb4T)TmI$~@qCNoW!gTkJz-zIsQ&$J zovL|%kH?*#pZu|A{%7-3=Zo+Df4=|v--4T;-xSYZzWPM*`aAW%|GdxJUw$f5#d8u3 z(f{82wKEEyG5lv>kVgxsM+|SzoaQ_fAi#RzW3XdafnpPf5=(F+YeZLTL}RAH(}?D1 zYlD=U72M{G=0$9B?K}5aU(`*Kz~b5`7Pm!-^~I<8Hfyk{{WJHwuhskeYddFr2`f!o zUVAHSru_Du<-4Ev79aVdtN%a!qvdt0-%G>a#ZOzWhit&f^>z$ic{kdzd9k12?NLKs z1_lo14V_Nh|CZ_;WP5x0&66A3a&OZPef!LvE7%~2%{?C(-rm{B$>azO@}0&e#s&g9 zj>>{AEQSUf7>sWlZ04*M=+QYYwC3>PM9Xt$4!GQJf4XsVee{eQ=O2l}gZ*FIc1xK5 zpOnk$T-s$hz0l=qMa;7|`@G7Z*VNAszj$`x{W1@@4jhb={%>4&i|>AOcwgQnt6i47 z#o=WybFaTFne@3x|G)g=ZQeNa!7N9l+W+U&+v4YHV)OBKhPS6S@;W34v^`Ajsb^RA zXbF%wFQT@or)`JRijrB+z4iP*Jxj`dEQM(*7LiZ!%k|ctpFO?g?dGY5Yai`gc=Fr7 z+o$gm^ePskK%RS&&R^wjV}Z@xpMWuSkn@lOFs6DJw1+4pnKrd}1ogXCZ06d?Dg7yh zRju#zqkFa;`3aRD%A;n?*W3L?3P*VTzj*Y^u~M(IPtxRXuH@!_{$u@Twc2w$RNKqHk2`F2=Waq2)oR9?QY0+4iO!VhdRuH!@dmVA3woy!QB1&=z)K z`ThwyM|~ggsIcd$>E7wQuC~t^Zq>iTiC=Tp3pStH?}O7I`0iH|T#XlVv!aLooH0PI);y#N3J literal 1759 zcmb2|=3rp}f&Xj_PR>jW>WpvCE%a(}6kz{gJ2_*sw97@6J9Fy_l-PI=bzbKw6Fg&g zTy^%%qz%7~?0W9Md&BaTv*rGwbNxRzTc5dmwP;hU*G-A{OQO%$eNWoM?|*)C)U&N~ zt{H8~xs~OeuD;f7U&hxp*M4uZ1^51)d&nbCMQlTCC zng54v)qci2hW`u<@@V1okm2naYpz290<0H4Ze}u9WXjCB+xmOsChz65Hx)7F zIT={kTsfpRL2XXs@rSX`{I;B~;K$1bhpZEDbzgul0IQd-q z+?yLc*LR=!9{TTgY?Xz(&;C!F?7Q#pyn0iAZ_)ovze-T-`uCO9xHUBin-BXL-X1mN zWnkc7-Z0aN;h*osgygrE-#odwE%!FIhh??a2b|V88f<3Z-YB_Sz(!`;=QBJ$UwC!;=l;EYsJ}|?yduoUPx33`Ccx55 z-Syu_YiAWpx_^=SzWPq=^_SnKynp{Yt|Z+&!x*LpTTp`yd!qg=zG|bl{I|l%VHf8f zHrTz%J1=bcWzTn~_x{=6drJpqBSC}ySj*=qRV8Bc?{QptTj(NciZ>-*Y5NZ zbRZ4|b!F`A1s~0@x%&e!o(^&{83N;J&4Tu|2bz5&niV!}xXUq3F`~^kqO~`oab0r9 zxx3x_94a2BN6m=uoBhcKhc*8eZ$2(NeQC+%YU!JG;(W`0oUaVGJ704#%>zAZp78(J z79Q}ObDi^y?_7GTPkg$wFkcdX$eet3<#%QE*Q#rF=f6r^i@PxAdEABK` zN>`AXaVGoWy$aEfl5jtKlJ|SHeuryMwt4%O+tW`LmOS6tC2`fR@9yr;MsGj={`21| zyBtRd!Oeg%>dnhrOl6aIyT0N-U7K`Ob7u9)U%vxOme1N|PRIzpi)#Jf_xVchvFta0 zWYoWY&%J;9=3kFqcN@9Pv8=fNaQcNPYyr^*EHNB8fh7jZ2JX!NY-Iv0&K$SXU!K}T bgA(K4KS{66U(ZZ@gjqC8Gcbc|G!Ov*0;B-G diff --git a/tests/test_output_no_vaf_vcf_cpg/input_drv.vcf.gz b/tests/test_output_no_vaf_vcf_cpg/input_drv.vcf.gz index 0c6502c6d9db2b4a95faecac47713cebad48d1c7..f8954852b07974c996bfb0e6f6f2945f823e71c2 100644 GIT binary patch literal 5078 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 literal 5083 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 diff --git a/tests/test_output_no_vaf_vcf_cpg/input_drv.vcf.gz.tbi b/tests/test_output_no_vaf_vcf_cpg/input_drv.vcf.gz.tbi index 614236ac15a346c60b44ecaed0ed4e6f6b55463d..a966782c025d1ebc5780129f0718c4f7fef3d073 100644 GIT binary patch literal 1763 zcmb2|=3rp}f&Xj_PR>jWYK(8s8G1E43b0-1oqFWlu~SMKf-D!0a0qVPD4^t-uDDGp zqMA>8eNy7ftAEPVmk0PO>}j2QyygvGas6hgw^M?)wOPNqR(xTv+`G%CU$2=~soNc; z7gcsG%RBw~TDN^UUpHNA-(<^Eaqq~713Tv_pT) z>zLQET##V+&%hv$7EDhV-k#ab$rLESdf}t6n z^lvwoP0xI`z4YH|-(B{uJoi6svhO;-^ZHGFVA$EzqZ;t-7mNR_xO!}!>|=O))R32f zfrEKN=OO!R(-NA$WtJ7?+}@T;JM{Y}t6WyK2sY=uV|aUKBPWw1FwA!vn}iE&VeVxS zbYwNI-XOG*vw8#f!Jsp14j)dmJa^`R%l-DJ8#mWS&)9MHu_!!f|Fs=vg$3S|a$CL2 zyDX;{x?HV@f10z|@B8zb`uX7(&n~=QMldo?`oD4AEx!BB;dyT^S?#jqEebDt8N2;u z&aBTx`v2t@Z}Wy*Nr>_PoVw15IBjg+-Olj#)J9&11cA1P$vmyRYZ{*PA1g_co1NLA z-Qu;pa^I6rD*1YCcI$}C1piB=FaO$8>3e%p?#xSC^R#2PeZPP2PA`_^2n!*+Qgz=L z4u8D34x76_0i)?4CzByCn$|364|(9YO;RxBqL8w^MB=5@#3)b|BIxm_2Q? z=4O0*cQ5Cm01>tevu|*QUHf-N!J?^`W6_S*y}}*L5msH=FGRk*OL+8Ha8ghX({rby z2dB?+-S2&DwGUy{zr&7S*Q^&zeVROZ({;T_x9WMDI~Emf&3!+2ndbTb&)+`}oJ?Fy zdrtauw?=u*KErKumi$iqIq$~P31`Yr?y3}gTgg9L7OU5g1b=7TJzgEXgzw&+Da=e6hp<@Fw19Y24--r1|k6G2nt&O literal 1762 zcmb2|=3rp}f&Xj_PR>jW>WpvC8G1E43b0-1?Oi06l)qFVY*vPWQd0zn;N{30-3f0k z*Sslen4@_86f4uu^7QQE zO+URM#eC_sE%nh^PZkHs7yb2NzuWNMlc!$p*oB+57V@t9cJ$R*aU5Shaej=;{(8xM zSND899&Y--|LE=CX8#S=&j0>v|KI2^b<_OX+t1&de%cm(`~RE5>g{LePE+xmL_<`5 zR+RUmS{K8A1_pVwaC*e>_RMZhra%GK3m=0UV>6UEl(@SkZnx^roSB)Rxh;XW&1}Pi zM;`*1C%5`eGyY()=k%S^vH^@0qJG8 zmraj+cHQ^iY^}TU%E#g>Z_YpR{?6(*)8ls5$JOjY(f|J!Q*3Qe88$EWF}yu$$jiXM z!MtIolcAmGhK=7c%Rc4Y-j+){wEGWp5WC0`Y|i<>@b=DLP9{eI)(1O{P0R&&cuhqe zSp<3B96aEZb4ZBAd!y)Xfj^SdKA++7*^@u1e{OB`!9(4jb>f_1N#x}J4`%AH2>7%1 zw`-LBe+@UmtA|e;l|K&MW&7;!^L<_4-u&`yLkS|74rIYU$L>Yzm%TjP=Nsf+&DZ?q zl-|zER&)J|;?F((TY4h}n-*m4aCXY`JCGUZsa@^Ai{cKd0Erc(kqfI;Tr^8IGW}rTQmwsL|L` Date: Thu, 7 Jul 2022 15:35:52 +0000 Subject: [PATCH 4/7] updated test and added snippet of waltogether from James --- annotate/io_formatter.py | 5 +- annotate/vcf_annotator.py | 139 ++++++++++++------ tests/__init__.py | 0 tests/test_output/celline_drv.vcf.gz | Bin 6297 -> 6293 bytes tests/test_output/celline_drv.vcf.gz.tbi | Bin 1629 -> 1628 bytes tests/test_output/input_drv.vcf.gz | Bin 6129 -> 6125 bytes tests/test_output/input_drv.vcf.gz.tbi | Bin 1747 -> 1742 bytes tests/test_output/input_genes_lof.vcf.gz | Bin 3275 -> 3297 bytes tests/test_output/input_genes_lof.vcf.gz.tbi | Bin 339 -> 335 bytes tests/test_output/input_muts.vcf.gz | Bin 3831 -> 3858 bytes tests/test_output/input_muts.vcf.gz.tbi | Bin 629 -> 643 bytes tests/test_output_lof/input_drv.vcf.gz | Bin 6144 -> 6139 bytes tests/test_output_lof/input_drv.vcf.gz.tbi | Bin 1740 -> 1739 bytes tests/test_output_lof/input_genes_lof.vcf.gz | Bin 3285 -> 3312 bytes .../input_genes_lof.vcf.gz.tbi | Bin 339 -> 334 bytes tests/test_output_no_vaf_vcf/input_drv.vcf.gz | Bin 5048 -> 5038 bytes .../input_drv.vcf.gz.tbi | Bin 1767 -> 1770 bytes .../input_genes_lof.vcf.gz | Bin 2879 -> 2905 bytes .../input_genes_lof.vcf.gz.tbi | Bin 337 -> 333 bytes .../input_cpv.vcf.gz | Bin 2968 -> 2972 bytes .../input_cpv.vcf.gz.tbi | Bin 202 -> 204 bytes .../input_drv.vcf.gz | Bin 5078 -> 5067 bytes .../input_drv.vcf.gz.tbi | Bin 1763 -> 1764 bytes .../input_genes_lof.vcf.gz | Bin 2925 -> 2929 bytes .../input_genes_lof.vcf.gz.tbi | Bin 336 -> 334 bytes 25 files changed, 94 insertions(+), 50 deletions(-) delete mode 100755 tests/__init__.py diff --git a/annotate/io_formatter.py b/annotate/io_formatter.py index 9c1094a..55bda4f 100644 --- a/annotate/io_formatter.py +++ b/annotate/io_formatter.py @@ -96,7 +96,7 @@ def _check_input(self): """ input_status = check_inputs({'vcf_file': self.vcf_file, 'normal_panel': self.np_vcf, 'mutations': self.muts_file, 'lof_genes': self.genes_file, - 'cancer_predisposition': self.cpv_file}) + 'cancer_predisposition': self.cpv_file}) if input_status['vcf_file'] is None: sys.exit("Please provide input vcf file") return input_status @@ -110,6 +110,7 @@ def _get_filters(self): """ formatted_filters = parse_filters(self.json_file, 'include') return formatted_filters + def _get_driver_type(self): """ get driver types from user provided json file @@ -118,7 +119,6 @@ def _get_driver_type(self): driver_type = parse_filters(self.json_file, 'driver_type') return driver_type - def _get_outdir_path(self): """ formatter function: add default output directory @@ -128,7 +128,6 @@ def _get_outdir_path(self): os.makedirs(outputPath, exist_ok=True) return outputPath - # generic functions .... def check_inputs(file_dict): """ diff --git a/annotate/vcf_annotator.py b/annotate/vcf_annotator.py index f1127fc..50354b2 100644 --- a/annotate/vcf_annotator.py +++ b/annotate/vcf_annotator.py @@ -169,7 +169,7 @@ def annot_drv_muts(self, muts_file): f" -a {muts_file} -h {self.drv_header} " \ f"-c CHROM,FROM,TO,INFO/DRV {self.vcf_path} " \ f" | bcftools annotate -i 'INFO/DRV!=\".\" && INFO/DRV[*]==INFO/VC' " \ - f" | bgzip -c >{muts_outfile} && tabix -f -p vcf {muts_outfile}" + f" | bcftools sort | bgzip -c >{muts_outfile} && tabix -f -p vcf {muts_outfile}" _run_command(cmd) self.annotated_vcf_list.append(muts_outfile) @@ -202,8 +202,8 @@ def annotate_lof_genes(self, genes_file): # write matching LoF genes.... if gene.upper() in lof_gene_list: lof_fh.write(line) - #compress and store vcf - lof_outfile_gz = compress_vcf(lof_outfile) + # compress and store vcf + lof_outfile_gz = compress_vcf(lof_outfile, sort_it=True) self.annotated_vcf_list.append(lof_outfile_gz) def annotate_cpv(self, cpv_file): @@ -220,7 +220,7 @@ def annotate_cpv(self, cpv_file): f" -a {cpv_file} -h {self.drv_header} " \ f"-c CHROM,FROM,TO,INFO/CPV {self.vcf_path} " \ f" | bcftools annotate -i 'INFO/CPV!=\".\" && INFO/CPV[*]==INFO/VC' " \ - f" | bgzip -c >{cpv_outfile} && tabix -f -p vcf {cpv_outfile}" + f" | bcftools sort | bgzip -c >{cpv_outfile} && tabix -f -p vcf {cpv_outfile}" _run_command(cmd) self.annotated_vcf_list.append(cpv_outfile) @@ -232,25 +232,29 @@ def _get_vcf_readers(self): vcf_readers = [] for my_vcf in self.annotated_vcf_list: vcf_readers.append(vcf.Reader(filename=my_vcf)) - return vcf_readers + return vcf_readers - def walk_annotated_vcf(self, vcf_readers): + def walk_and_write_vcf(self, vcf_readers, vcf_writer): """ walk through each line of vcf files, matching records will be walked together - However to circumvent occasional anomalous behaviour of pyVCF I have created separate 'vcf_key' to store matched records and their driver type - records written in a collection for each 'vcf_key' as ke val pair of driver_type and vcf record - e.g., 'chr17_7675139_C_[A]': {'somatic': , 'germline': } - :return: collection as above + get_key paramter val will determine the matching of sorted VCF lines + vcf record e.g., 'chr17_7675139_C_[A]': {'somatic': , + 'germline': } + :return collection as above """ - write_record = defaultdict(dict) - - for record in utils.walk_together(*vcf_readers): - filtered_record = list(filter(None, record)) - for vcf_line in filtered_record: - vcf_key = f"{vcf_line.CHROM}_{vcf_line.POS}_{vcf_line.REF}_{vcf_line.ALT}" - (drv_type, drv_val) = self.get_driver_type(vcf_line) - write_record[vcf_key][drv_val] = vcf_line - return write_record + for record in walk_together_iterator(vcf_readers): + # print(f"{tuple(map(str,record))}") + drv_type = set() + vcf_line = "" + # filtered_record = list(filter(None, record)) + # iterate through vcf record from each file... + for vcf_line in record: + # get driver type from info line ... + drv_type_info = self.get_driver_type(vcf_line) + drv_type.add(drv_type_info) + vcf_line = self.set_driver_type(vcf_line, drv_type) + vcf_writer.write_record(vcf_line) + vcf_writer.close() def get_driver_type(self, vcf_line): """ @@ -259,33 +263,19 @@ def get_driver_type(self, vcf_line): """ for drv_type in self.drv_type_dict.keys(): if vcf_line.INFO.get(drv_type, None): - drv_val = self.drv_type_dict.get(drv_type, 'NA') - return drv_type, drv_val + return drv_type - def set_driver_type(self, vcf_line): + def set_driver_type(self, vcf_line, drv_type_info): """ set driver type for vcf line to False :return: """ for drv_type in self.drv_type_dict.keys(): - if vcf_line.INFO.get(drv_type, None): - vcf_line.INFO[drv_type] = False - - - def print_record(self, write_record, vcf_writer): - """ - print driver record to vcf header template file generated from one of the annotated vcf file - :return: - """ - for records in write_record.values(): - drv_type = set() - edit_line = None - for my_drv, edit_line in records.items(): - drv_type.add(my_drv) - self.set_driver_type(edit_line) - edit_line.INFO['DRV'] = sorted(drv_type) - vcf_writer.write_record(edit_line) - vcf_writer.close() + if drv_type in drv_type_info: + vcf_line.INFO[drv_type] = True + else: + vcf_line.INFO[drv_type] = False + return vcf_line def concat_results(self): """ @@ -295,12 +285,11 @@ def concat_results(self): annotated_vcfs = self.annotated_vcf_list concat_drv_out = self.outfile_name.format('_drv.vcf.gz') # combine annotated vcf files... - vcf_readers=self._get_vcf_readers() - write_record=self.walk_annotated_vcf(vcf_readers) + vcf_readers = self._get_vcf_readers() tmp_header = f"{self.outdir}/tmp_header_file" - (vcf_writer, combined_vcf) =_get_vcf_writer(annotated_vcfs[0], tmp_header) - self.print_record(write_record, vcf_writer) - combined_vcf_gz = compress_vcf(combined_vcf) + (vcf_writer, combined_vcf) = _get_vcf_writer(annotated_vcfs[0], tmp_header) + self.walk_and_write_vcf(vcf_readers, vcf_writer) + combined_vcf_gz = compress_vcf(combined_vcf, sort_it=True) self.merge_vcf_dict['a'] = combined_vcf_gz self.merge_vcf_dict['f'] = self.input_data['vcf_file']['path'] @@ -343,13 +332,15 @@ def get_drv_gene_list(drv_genes): return lof_gene_list -def compress_vcf(vcf): +def compress_vcf(vcf, sort_it=None): """ :param vcf: :return: """ outfile = vcf + '.gz' - cmd = f"bgzip -c <{vcf} >{outfile} && tabix -f -p vcf {outfile}" + cmd = f"bgzip -c {vcf} >{outfile} && tabix -f -p vcf {outfile}" + if sort_it: + cmd = f"bcftools sort {vcf}| bgzip -c >{outfile} && tabix -f -p vcf {outfile}" _run_command(cmd) return outfile @@ -365,6 +356,58 @@ def create_dummy_genome(input_vcf, genome_loc): _run_command(cmd) +def ace_tuple(string): + # Split on runs of digits, keeping the digit strings + digit_split = re.split(r'(\d+)', string) + return tuple( + # Convert odd indexed elements from strings to integers + int(ele) if i % 2 else ele for i, ele in enumerate(digit_split) + ) + + +def vcf_key(r): + return ace_tuple(r.CHROM), r.POS, r.REF, r.ALT + + +def walk_together_iterator(arg_Readers): + """ + re-written by James to replace utils.walk_together from pyvcf + iterator to return matching vcf lines based on the vcf_key + Input: vcf readrs + """ + + vcf_Readers = [*arg_Readers] + nexts = [None for _ in vcf_Readers] + rkeys = [*nexts] + + while True: + # Fetch records into nexts[] + for i, reader in enumerate(vcf_Readers): + if reader is None: + continue + rec = nexts[i] + if rec is None: + try: + nxt = next(reader) + nexts[i] = nxt + rkeys[i] = vcf_key(nxt) + except StopIteration: + vcf_Readers[i] = None + # Exit loop when there are no records left + if not any(rec is not None for rec in nexts): + break + # Get the smallest key in the list + min_key = min(k for k in rkeys if k is not None) + # Return the records which match smallest key + matching = [] + for i, key in enumerate(rkeys): + if key == min_key: + matching.append(nexts[i]) + nexts[i] = None + rkeys[i] = None + yield matching + + def unheader_vcf(header_vcf, unheader_vcf): """ This is used for testing purpose only... @@ -376,6 +419,7 @@ def unheader_vcf(header_vcf, unheader_vcf): _run_command(cmd) return unheader_vcf + def _get_vcf_writer(my_vcf_file, tmp_header): """ :param my_vcf_file: @@ -388,6 +432,7 @@ def _get_vcf_writer(my_vcf_file, tmp_header): vcf_writer = vcf.Writer(open(f"{tmp_header}_combined.vcf", 'w'), vcf_reader) return vcf_writer, f"{tmp_header}_combined.vcf" + def _run_command(cmd): """ : runs external command diff --git a/tests/__init__.py b/tests/__init__.py deleted file mode 100755 index e69de29..0000000 diff --git a/tests/test_output/celline_drv.vcf.gz b/tests/test_output/celline_drv.vcf.gz index 403c7afba961b26b84b7c2286f3a24e9cde4a756..58541340c85ceb695f908e563fb5a99a97e1a527 100644 GIT binary patch delta 4569 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 D#UtlK delta 4573 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 delta 1083 zcmcb^bC+j=Nd3WX-$W6H59W)fywy<&%b1jT#i!ZR(6H4fgG*3Nc(P+!iip>y1XZue z8#Zs=Ai>?wYrXWw&6|-Lk!R%(9NT00JRn%A?8^IVd-tEKd~W@{?)%-}d#_qs>{y6r}X8rl_?L*nM>py0m zEXc4@`H|K?6~f0kW$_V2^LXTtApTKOUInfAU? z%b1xzrQ$!!uKfAD^otCqf6Bf`-SzH=kI!7c&-DC8pu#U3Kb-73asBUaD~Z1J+N-sa zob#X6uK)d`vesha*U;;hQs+`?ua=g!pZ}#C|GavG@tiYurgdLZe%SoJ^26FT(fG4y z`PWwcRd$bgXCInAbA81g`#qDM*P4hG+Mb_o6n{N%e*JB+pS#}m?>-!UbN?^1?Jet# zed7yl|6ku+zt`OQTHio`yt34vY`~;YKWi7;_5({->L~;` zvUCb4b$Cq>ICw&7B1cSYw9KN_8Clu+FSu^qI&?BS;76N+>X7|rMTC>yh`{S~0x9>icx#MoWJY3f8 zzI@W_uZyJ>cdl)|QTKoE+kYmLKQdad-?Cynv4+_a=sS_g4_H_wa%}dtP0OA4l%Kn~ zufDWOYVt!yarQs0=Efqn_d%v=?qGO(>LAEe<^vhLQO&tOw#n5uMKr&?F~gt#o#L%V zi^f!in@dvSgn&kdsd@f8zwM5Nitonw?DCwend^V=&i{1g=3RS8C_Op8m*Jr5tP?Qj zsxpEMW;t+`Z`MJbG=pvqGlO>CHK`2paw543XAT)|sP^Tx6Lcl-_Mr^27)@`M=85JTe*ZX~!)vcu$-@csv9$8f_j0Fqp7RXe)BE$;z1nwb tzrW-b-S`q0{IzJ^`_p^=)X%%72UMrYz5l_k>h;ff4;Ly_OtxWD005q|A!h&p diff --git a/tests/test_output/input_drv.vcf.gz b/tests/test_output/input_drv.vcf.gz index 39ac0a7db128e0c16fe67cd691f974d0fa3750dc..bc07411afea104c5b216663652391394fd687d97 100644 GIT binary patch literal 6125 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 delta 6121 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 diff --git a/tests/test_output/input_drv.vcf.gz.tbi b/tests/test_output/input_drv.vcf.gz.tbi index 65e8426758daa94040dc15803c036ccec31e1712..93c061fec596f492b68565d57ca6f0514febc37a 100644 GIT binary patch delta 689 zcmcc2dyaR*7AE)Q7c6<~oPLyXB^ArHIOoNM?a18kv0l-0k_s3-sn4ATVFAhgUw3fb zu30yEPI~_96VGCISRemgeQ(J>nYPmQi5nFa{v2^!wfDwS{@?p}Z(o^zS!36x)Av$^ z&n=rcz53^WiR-Zw7izkl)URclb8<>N!+!<_`ECvt1`znq#^B`4#IS?m?Wv8N4FNo^ z7hg!cQ{emP7_gzp*u21E`G!Cr#i*!=x$F-Qs9v19!)@Y1Rq;R1ZY}>>`FK*E^R`N_ z)fMZu+`Ly`U2Hyap+(@&-R!(d$vW8V_`>k^&Oy#Y4g#zfdKa|I*j8>(Y;|x@RDZpJ z|MUh{{;*``u!Kp4k$1Rw_B1{{ct10-u1fZj&BTr3PI@P={@4}kb@s)|?l%|Pk4OKx zUOBlgeXpi9Ja}M?qMv@>S$?ilxG$V@KCw3Z!yWgq_p!GpO`Nz(k$T z-oumlj&<$lUE*KvO_QA*$SlU*|ChmfI%n@>IaZ0(y_|;vMA$A!zh#k@)~-(zxZ|kf zD!{@zy?{x5Ly5TghC<$hvOYC-PC>UipF0&jIDMAue(yo6d(O~kQ#tv6TeRKjVwdG5 z+dXe4&41%koHw~+(U)Dh?_`f_p8x;+{qnlGKnJPI{JB@7yk?i7nf%h MkY->8ClC+;07Bj_^8f$< delta 691 zcmX@ddzp8`7ABAF8;aSR`vvyRZMrds{o#b!(?#=c>0iqBn55zfMnB_ct3p_wlb+<; zt~+El|Fz2Vo42htRf@km_wnC6^Og4PiFXwz9#mAYFPxC2U-t5FUCv>%ug^`o*1g$O zezRqB=98y!|Lz|zoj!4+rt2r~`5ph9Lm2)uFvxdvurPqYe>MguXC{W73~x_upQBkb?m0h2912ArB66y>U^T z(44@id1$h4M4N9!OKHVMrpZ00AB816;ML*(=g0l|^6LrDfPNHnD)L-+?0Rl+mRq~t zrgV9^{EzX^eSgjUy6nvaXn?^2OXcKK>$}2Fb~n}dZ?JFu8hbEVJaTV&rnlR~g>n*` zEWXz5+rM|-&hwwE_=@#2=3d{s;QO{W6DDpHt*?K>e*Cl8e{3%2VSIa6o9|En(B+yI zLOg6o-IYCWuuPgTK|x>*L+jy$x8 zdj8vf_fuq?lGW1XzNh$hr>M^=p6w#Cv_H4_y@g-pKYP}C`|q!NCT>)hee(U8bmGd1~&h+GrT?O$jQLK!Ls3Wg3IrA0T$yQH|@Mjr%g^|bDNyN#LMyR PdOAaW;)&kL>(~?kAc8lQ diff --git a/tests/test_output/input_genes_lof.vcf.gz b/tests/test_output/input_genes_lof.vcf.gz index bed1231016314583e444d2614e2fc1fc3eacf508..1ca72b69021f4792a8dd6823d6eec6cf6999228a 100644 GIT binary patch literal 3297 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 fABzYC000000RIL6LPG)o8vp|U0000000000Uw literal 3275 zcmV;+3^el}iwFb&00000{{{d;LjnM<4Aoj~bJ|D}{>=W0DW_^T*~OsI8z3TAu@F11 zGByhY-(4z24Ppek6OvXEc5;;;f88SqBN;`Q_*^XlYp8(!2O7)HS`9B<^hYjIo)zH;Q=9( z$kdQzLv0gTk|nrq`Cja-gih8vq;-_MS-4-!+y3v@O1tiIZxydiS#5VTU6ti}6mZMo zk@lu83OIJ<&LIll?ZA%f+SNFAgU0wQiL|ul(t;0gI8iX;mV$N)fbrhHft*z6RPAj=BmoigV;UCp2xhv}> zL4o3uS8POv_T z;T{r%{(>zW*NK64dHmta@gpCKILA5)esWcSKV$~kTat|*#VL@xr#Xv=h2#MDeaRFk zNVwgNK*~nI3IaxccSkS>3shJorTW_kTPL$1S)Z$-Ek?@USa zrc5d2BuPD~BQoxMLxWMFT-S@f)5i7Qqf}i@!$giL)Kqdii{~o2OHEK3#{M|Ax?NPZ?U6?fGMx zLD07`)V9=w+BREYpa$NTR6-F-u7Z-yJ(z4D!Zio+lqx(W!~1PN+g;v`hrMYsjlX-r zHbRp6EaY3_Q{YjMdFC}%GtqW|wTruJ7TYOX7ky5kpaIe^-xPJY?EUK)9mYa>>S>hU z69rUGi#j$vGDvKDT;3PeKTTBs1W{L~iMl#L)bun_)0c}H4#vlbn&tM*lDxK?fg&P7 z#3XF$LiAiF61%|uF~_H2ybHulTY>s-xf9N zT~_Z(W%TbQ^uG*QQhL4S+4_!c7S3vmJ0nR_g>nX_jc2LxesCnm(?`z#*MPe}J>bHE zf&v=C0=DlgsK0Lf)f}I0OC5=VC=42yi6_Y;^S8Ta<`?zs(hPKXD;}6XwT)QFHs;%S z6PWOQVD|ieI=MdY-`(8JB}tpJ`2cpCR!>jm>sAZ{@y*B!>g#1_zIViy$$S&8s3b{q z&!6+pzBk9m1O0Uv%^&0jlrD|cf9p0l(p1{2T8B`#OnC6*bF%?58!)K4=b3rYi+bQJ zO_|Di9iFuOPNqUGDcz^#q-p4kktc4 zo^Ko_Y^F&(W(yb}Id{k}uhVtW8E*QVkvHV$pUG>IOkYiywLkv)iCn3Fu^Si_77<~+AZ|NZ!GSii)>^sb({wc43V z$Dr-hnF6CWx|`Il2et9L%UbVdTKnTe@1~YmsD`k$#4xo2^=k*HUwfVyYX?$X?Le}s z9Y{O10}13O@t#agRa;bpmuhN_TE8}hBf7GN?;ODUPkI;M05GLSr`5$r@21opjLeqO zy&9SDvK~LDYIis?Y4^5g>fPHu9tLZaL zcZvW&iOkJixaD_w__g03OyG4Lsx;`=5GW*D7u&B^qb>I@reA}`A9DNGudwMCa|g?X zB?OFtrGo*t8Mr2nop_6(W57kIDAM(ZA&9qPxLWu+xicjEM!ticw50c&#u7R?5%W(`;o8L(6_U=3kFac>N# zV*|=h1GXy+Sb`e&@P(K*V5wG<3`H>{@dqNQI8i(Jfh+I@21|x4rN5{Q2i@oxii`=cpNiYza;aJL0!v$OtL7pc~xS=;+FRKT5NX&_~9OO4d=+bBMH)sR+8@IUIyK zxlXFFJHhmfhv%Ji(E@)8g1``@opO3h^u%z|YLv?G>Z2yTD4bLbC#BJbaME5JPOz~F zA+3EooO+|a;HC<1&M6D001A02m}BC000301^_}s0stET0{{R3 J000000053nLw^7O diff --git a/tests/test_output/input_genes_lof.vcf.gz.tbi b/tests/test_output/input_genes_lof.vcf.gz.tbi index d7bcf5b7ba9cb5cc0b79adbc73c9a2b5e31a9622..e52b4c668d3be45f0f3fba51f392cbe74e303da2 100644 GIT binary patch literal 335 zcmb2|=3rp}f&Xj_PR>jW?-<^mHsm_wAi#Rz=9E{QN6sBm(ui2%k)58EpOE}Eu!!gV z!_YThS=90zCUJLsusdTn<7c&%Ot7Hf-z5j_ULUM9e|~!FtNFEGE#Gh3`RmRTuh_KN zX7%&m1^0Z8sIyk_oJ37@@_tmw=P1`D=XUides}$Emb=gYyXLW-XZOjXTJ!&w`4Wyf ziVXi58068s>&)=>s3Ru>0|$%2?--`v;=(N6C%#2ymFC>umWzVs+cS6Bz3g_^!!$#h Kff*cvAOZjpjDY(9 delta 197 zcmX@lbeXAMzMF%E0R;ZDF*rFhF??cpd*>jpqoWAx1@mbu9Ny@t2nluHZ;;KFy%CY^ zz<+AP#ZDuU1x&|ke)_Q17phejPcko$+VT6W8LyI(f7aRbYgSd~A67(}|ID*He?GHw z-gDKWc#-nypZ4Bc{=@!y;&esNNh(NaV!eR$$$hh{!^2Ns+WPBlZ10ZV$IGX0y?1@@ tntspeiW3X%*loYDMkbtkJn^+W+vk}7GHF7S1sJ7SDtnGCnXJ#K005MdR`>t_ diff --git a/tests/test_output/input_muts.vcf.gz b/tests/test_output/input_muts.vcf.gz index ea1cc4e3ff9e076eb04a0071c4f6b1347a3396d7..b7049f1ee307ff32cccd2a53cd65b23f0de4ee4c 100644 GIT binary patch literal 3858 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 SLjnLB00RI3000000002RHv7Q< diff --git a/tests/test_output_lof/input_drv.vcf.gz.tbi b/tests/test_output_lof/input_drv.vcf.gz.tbi index c4b0f61b190079ebe6e7b88a494e2efc2644fb63..120870ca8e8f412a1277d7880b7f38728231ac40 100644 GIT binary patch delta 632 zcmX@ZdzyE{M5fHQ3~%pj9cw$BU8ygTo-$)c>i>x;MDUUJs*{{82n zUpC8^$xhs;sPIXc{o>oBdcQZkewO;BSmx=vH|M_u$PBuM~?lEzr zm}AV8%hKBg?>?zK^QO|HJ^J7FO7Z=h?_H6F2MUa_v*vkqQ&D)pJI-&%x9rufcw?0P zU9a{m&=5KCu;=&AU*CRx^Owpv|IC-Hxu3U*f4O%Z7-pgzpZaT=`AzD$Crhv@#JqLM z)~+`bV41!_#Bsxh4J8cG(&`&Z)XGn=yi0iWS#Z)NKO6B$%<*|)Kk{_8eUyV)?fGx} z-&c|Mm8zyrk3Hqro}z#2^9)y!sZaOqEuXi{=KuWt@$SBE6E~{MeyaZ5yW!Wd8(EXy zwLh&+I-G2DU-k7f*DcR2Gs=JtmDl~_`r7W^Z==!=&+P7X6vgZ>j?XuL|Ltquv$K5A k^Z>H+$#L=Z`#t7PR$)_MO7NQO#+JnLjkAYy@)|Y;00QtOxBvhE delta 678 zcmX@jdxm$zM5e5F3~%pjGd z|6Eev@#I7W!+!<_`ECvt1`znq#^B`4#IS?m?Wv8N4GsdX2d`cbdUH^VPlWHyNvSu- zZuy9q3-I#xJUeXk;l>QF80CozRR!vbr7wTmvuj!G*==Vsh0jl&e3#kD_va1`J8VXO z0tUoE&O;8sfaqP&zV<-#Ult}t{-&iBTiK*P%u~zpTyx+^VdNbyo;{6E58lsAtUKlW zi)Z3OamVZ;suTh%nX^S>>1_Abc1_pQlq=er3L4~nwazmZ;}bzEn% zIIBX8F3Z7Nr{+t#qzmY{ZV=FsIm9_fVQDY7W!qZo89!=TmTVC|-}>ah^x2~Oq+iGG zX@|y<=cNC+`>V`SUDkiv<{w$<^KFss_ehsOON%Yv&t0DK{Qu|gr&pW=Mv%HpUH(47 zu=^6xzL)-PsPWIK^m?{Cgm_1kB6 z*Y3Stx!D<(2!I~``H_{OvpN)8Ft;fjd>{ce?*UpJ3IOMmH!%PJ diff --git a/tests/test_output_lof/input_genes_lof.vcf.gz b/tests/test_output_lof/input_genes_lof.vcf.gz index a6b37d2e848f368a792b2b724649de9cb06c54d5..49aa53db58279d8b23f2c36af518e4613eed97be 100644 GIT binary patch literal 3312 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 literal 3285 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 TLPG)o8vp|U0000000000Wcg2c diff --git a/tests/test_output_lof/input_genes_lof.vcf.gz.tbi b/tests/test_output_lof/input_genes_lof.vcf.gz.tbi index 983ac03d49de18ffa67ac6b4b66980766beb69a0..643c83ac805dbadcdc55622f51d81b0fa7592447 100644 GIT binary patch literal 334 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%0Av5oVcM+0lbfL7lZj)FK3linIWz+t zk$D-@fb&XtOG`?NJ?PE=XT7#`1Qc1y5patrtGLwB$uf4of+|en>E$r17jkYrocC{= z`rp}|2C>wgr4>L0eNKD7G9}YhfXUT%4m?M|qh;F!(lSmkw@-o?&LGBR-@+>TG|ObT z=+;E6ei&q4`@*@xDy1QRER8r0(#Au?Cfa(GeFYhfOu=3n%g+ZmU0|Yer71gPZo0oD zb2Qb@#TCpj1vQCUlTYb%e9YmZtevd@=i^8HK-Jhm)@b~#zR%-6%?wfxy}hk z%4aa_=q(_NVqLir>V6GAqnNF|DCSRXY!vgf?C1=jilkjNu~m)~z*vP+2Z{ea1^_lD zeB__v(VSgp!bb>!J^>2`4)FoOVfhbo?1p{K3M0@_$#oAfYHn0_4z_3 zN#P~kRWV0%bc%*#jwY*4Q2a2s2Hn=V z-nmA=it1=ugsSj^D7RGrYE#aC`I;iohnLIx^99e`&VX)z+6w5UH3Qe+6FWgE@@(6+ zU8a!7=_3cBi=orzxm+!ey?p3Qk3ps*H2B;S_((o*emL(tsU2;#D-BH4P}cLTp%-&@ zVt?2Dk0jlx;N+=i`1tQZ#fTRv{kG^Q2i-~SpSj#ZS)kC(*zDd#xdLUi8kd8zwE Vb%@nLT|~e6KM)#J-)fVO6CXZXX)^!- diff --git a/tests/test_output_no_vaf_vcf/input_drv.vcf.gz.tbi b/tests/test_output_no_vaf_vcf/input_drv.vcf.gz.tbi index f9a0d54a2d26754ffdccee082c51a322ab6267e7..68bfc2f5dc7f627982d33de78d2929938934e949 100644 GIT binary patch delta 625 zcmaFP`-*qN875zC1H-K{-W&M%+n-t(GYi+sPdk3@Uv6TOeRsIWBo$9E`YC3-=3kJry)jtho9E}Xgfx7OXcpa0gzxth1v-Bz4Z}NQo;+e^r z*qckY$1cC@dG7SyKlMGg^d=tEWdCD5KTUDg>B$akBAPoG-k#dX>%bt;c5$&ulWdQI zpi`oa@QhPNQjfS6Udp^TKPK+e)1>UjQWFoVN_>i6uBUr`_Vkjsn?sYMjubmje*1U( z^>XEj2QAp=+cL~x|8oOmsQDL$w|5S5G8qc6URblBJ>14_E*G(hA;_Hp0d-E>=PQ`!4D*=`dr%875X`dVjqZ|}UN=QrE8 zEEV5!_IBKb>~+=?ABu835wBs|cQiy8@| zUZR!Z?NLWg1_ln64X-om*C=tc32ZxmX=>`^KqiOD1x&*1fBza+(^b delta 684 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 D$!3n* literal 2879 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 d2m}BC000301^_}s0stET0{{R3000000051VctZdH diff --git a/tests/test_output_no_vaf_vcf/input_genes_lof.vcf.gz.tbi b/tests/test_output_no_vaf_vcf/input_genes_lof.vcf.gz.tbi index e9182b3f8fd42330b9c23dee5deffce4437db22d..0095113dae694a1f0f0db75f6723cac20715cd16 100644 GIT binary patch literal 333 zcmb2|=3rp}f&Xj_PR>jWZyDa6-pG5%K!7#CTJjW9~j==*~ojyK!7!1wvd^F2uIcgjZF-)S8^Pj&uVmNO7ut> zG8&3^JmL(p@qVs8cYpYg<$o3ZgS=9U(k)+~i?n`zy7c;#-9PR2iwo}6SN;^$dOW&j z{dY^=^U1f;JtnDm;z31krro>xR&7^U{od8No!OcBf4^_K_Iua#ua@tP@oL0lCPb>} zNFBpg=}2LQ{|pTBXdZTEcze{5lYxPQ#b9&H{{lAw7Vi_^BC|?!Zg0y)LG$gITfat5 QcGtr+Lz;mZ9EKnQ0L|okS^xk5 diff --git a/tests/test_output_no_vaf_vcf_cpg/input_cpv.vcf.gz b/tests/test_output_no_vaf_vcf_cpg/input_cpv.vcf.gz index eb2410e2fac0bcf521beb2c9027c884c9bf5b831..965acc9cac0399c66378265bdc90524d5537c825 100644 GIT binary patch literal 2972 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 Xt^BBJ?eri926;61N;5Enoev@auy|GJ literal 202 zcmb2|=3rp}f&Xj_PR>jWYZ>0&Hso`36k)w!-sGkqwNQN0en#2Ob9^RQrn5K5S0|tO zU+1%a!kp=6<~%t&SM|>0vgvGs6aBN!ZqAsy=iJMh$ox-t_sr+tEL3~OJ7ufRyZ2A4 z_xgXdU0gU{(Q}dtD*B)QPWaBUrOp?=aw@IcIrYO!=_|i??e}?UY T=|Kz(@@TG=W?%+89z*~D*B(%z diff --git a/tests/test_output_no_vaf_vcf_cpg/input_drv.vcf.gz b/tests/test_output_no_vaf_vcf_cpg/input_drv.vcf.gz index f8954852b07974c996bfb0e6f6f2945f823e71c2..4323db342e4e5ceada0a530bc765ba0054698a46 100644 GIT binary patch delta 4590 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 diff --git a/tests/test_output_no_vaf_vcf_cpg/input_drv.vcf.gz.tbi b/tests/test_output_no_vaf_vcf_cpg/input_drv.vcf.gz.tbi index a966782c025d1ebc5780129f0718c4f7fef3d073..db60ebcb3a9b2ce1989ca1084dc534ae940ae58d 100644 GIT binary patch delta 625 zcmaFN`-FGHY9^)k3~%pj3ybKPHwV3rsJ%JJrE_5N873v+ z#jKu_RKVy-xvk#iU6#{5Co?kJO31yrWVOqZw>Z4)W$gBsIkP?&>Hn91yv=*!LrwPo z=hR;xyw^Y3kX1x$2gBP_8+jcP1lk@h-rgX)rr}BdF{f`Ex;~m55p`O6*(ScIa+0~Y zv;1|Bi4Rr9|L^L}ti88qneWMMKAEEDr|RAQouB{SZQ?@Sa;Puzh)WH}8#>vk{G=Gc5GFtIs>uFrRMTfBDd#E!IoEPndX6 z%;{%;-m~(1%dedAb57|`wupPQ|J>{^wr{t+nE>%4f;@S@e5d+}a@L>o5+n})TKC|d zd)Ry5*pon4%883jzjyxm^6SRmE93kV-?6U!yi5GcwW+cbABwUUvBsNT_K^pHvX0W?CbaU%8=%MKb#J=Aw!3#*tMtP&yL%nax70n~ zcQ5bW+t;>wvt^;t3-bESYJ1h3`7c4PmuzErd(@GWfq{c%L-&ir{~}oq3LN?txoUIH tig^2bYHY?nD~f+LB5-Vg#iTqvoSb1GciarFoU@u0stMVAjSXy delta 593 zcmaFD`x7(FSs)w{gQa(dxpCT3fSd2cRR?Xu)83NL#ZyZvR(tj|UI|K%5N^Pc!nll}iW zb)6G&+LIkvL^QWEygjv%*C9cm?O`%cEAN_yC;i7tlH_J*c4)VFEw9}7tZr;yRF-rk{W=Kgh{s z2z2?H1??dZ9Jfgdrd;&WIbfD@dIKl-25Ier>xL}F-xc;Xet3``HDms-+$!FQ7sVa_ zzeuV&Ug~xCNve3{z4pTr|8wsxJs-L56(7ux5T63cKef-Rn~K5%-f{Xl-?%4w$86%( z>gO@W6CcWpU)}lr^T&5zb!z8*caErXyuIfw>)vO(oF_gMWv@G^{{P(Be;`L@a5KKW zyO;A&fC$@#**7@DuKhcsVA0gev1mu@Uf~Yr2&*pb7b4%@B|Lg8I4LNH>A6$UgVSfZ z?)N^n+UE=na23yghaJDJSudFSGw1xH)$=xYEGpWX`+n{+&GY}CzkeP$85nNr zGJo#YD6iRPxNXjo--$ox-FQ0TO!>)Om4a_8`De>ce5j!NJLB&0>gXkW_wF2*E|kCi z{?7H=XLr}`{av{kVb>&;>i6uI(;lURTrbhe@b;)9Cj$cq%LeXDwPNlj#g@05OHyx6 YE@bnW9KgiRUjLtGdaLU5$w$}}01L<;i~s-t diff --git a/tests/test_output_no_vaf_vcf_cpg/input_genes_lof.vcf.gz b/tests/test_output_no_vaf_vcf_cpg/input_genes_lof.vcf.gz index 83cfea072b9dec8375e15c55ee821a0027b2c35d..25e2045cb15baa923fefcfc5aa355cbea3d2b556 100644 GIT binary patch literal 2929 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 b000000RIL6LPG)o8vp|U0000000000do!Dl literal 2925 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 X0RIL6LPG)o8vp|U0000000000nO2Ou diff --git a/tests/test_output_no_vaf_vcf_cpg/input_genes_lof.vcf.gz.tbi b/tests/test_output_no_vaf_vcf_cpg/input_genes_lof.vcf.gz.tbi index b53a42c18180444b6911fe9fac602d0459ad7e11..43b6adc12d5c6571b85969583968187d849bd61e 100644 GIT binary patch delta 187 zcmcb>bdD)UzMF%E0R;ZDF*rFhF}!7XdwL`1AqNq*2fL@FF>joBg-a~*z_}|{jlEl) zEgX&&tb4%VmvGLS<0O+(js2eA5BB~)cRYBF6Gvu};Zn_Ok7M$`o7uL1tG@TX=a|eQJuW!csj4Ue0QJc=d468 z^AdT~?Cx5=xBC?T=Qi#$k%1o^IdpUH>S|fKR=>Tg5&PWU`s-zF_iZohecES8k#Ri; f Date: Tue, 16 Aug 2022 17:06:45 +0100 Subject: [PATCH 5/7] Must set pipefail on bash pipeline to trap failure of intermediate commands --- annotate/vcf_annotator.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/annotate/vcf_annotator.py b/annotate/vcf_annotator.py index 50354b2..8c33422 100644 --- a/annotate/vcf_annotator.py +++ b/annotate/vcf_annotator.py @@ -444,24 +444,21 @@ def _run_command(cmd): raise ValueError("Must supply at least one argument") try: - # To capture standard error in the result, use stderr=subprocess.STDOUT: - cmd_obj = Popen(cmd, stdin=None, stdout=PIPE, stderr=PIPE, - shell=True, universal_newlines=True, bufsize=-1, - close_fds=True, executable='/bin/bash') + # Need to set pipefail on shell to capture non-zero exit of intermediate commands in pipe + cmd_obj = Popen(['bash', '-o', 'pipefail', '-c', cmd], stdout=PIPE, stderr=PIPE, text=True) (out, error) = cmd_obj.communicate() exit_code = cmd_obj.returncode + msg = f"\nSTDOUT:\n{out}\nSTDERR:\n{error}\nEXIT:{exit_code}" if exit_code == 0: - logging.debug(f"Command run successfully:\n{cmd}" - f"OUT:{out} Error:{error} Exit:{exit_code}\n") + logging.info(f"Command run successfully:\n{cmd}" + msg) else: - logging.info("Error: command exited with non zero exit \ - status, please check logging file for more details") - logging.error(f"OUT:{out}:Error:{error}:Exit:{exit_code}") + logging.error(msg) if exit_code != 0: sys.exit("Exiting...") return except TimeoutExpired: cmd_obj.kill() (out, error) = cmd_obj.communicate() - logging.error(f"Unable to run command:{cmd}: Out:{out} : Error:{error}") - sys.exit(f"Unable to run command:{cmd}: Out:{out} : Error:{error}") + msg = f"Timeout running command:\n{cmd}\nSTDOUT:\n{out}\nSTDERR:\n{error}" + logging.error(msg) + sys.exit(msg) From 574cb5f462cfd04bf7684d531477c16d88237e4a Mon Sep 17 00:00:00 2001 From: James Gilbert Date: Tue, 16 Aug 2022 17:10:23 +0100 Subject: [PATCH 6/7] Documentation fix pointing to PyVCF3 module, and bcftools is separate from htslib --- README.md | 48 ++++++++++++++++++--------------- tests/test_celline_vcf_input.py | 5 ++-- 2 files changed, 30 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 224ceca..7bc1dea 100644 --- a/README.md +++ b/README.md @@ -22,30 +22,34 @@ This project hosts scripts to annotate VCF files using user defined driver genes ## Design -Uses [bcftools], [tabix], [pyvcf] and [bgzip] in user's path , these are part of [htslib] or can be installed separately +Uses [bcftools], [tabix] and [bgzip] in user's path, which are part of +[htslib] and [bcftools], and can be installed separately. ## Tools `annotateVcf` has multiple command line options, listed with `annotateVcf --help`. ### annotateVcf -Takes vcf file as input along with driver gene information, and optional unmatched normal panel vcf and outputs VCF with added DRV INFO field. + +Takes vcf file as input along with driver gene information, and optional +unmatched normal panel vcf and outputs VCF with added DRV INFO field. Various exceptions can occur for malformed input files. ### inputFormat - * ```input_vcf.gz``` snv or indel vcf file annotated using [VAGrENT] - * ```normal_panel.vcf.gz``` normal panel to tag germline variants - * ```lof_genes.txt ``` list of known loss of function [LoF] genes along with previous gene symbols ( to make sure all gene synonyms were matched with input vcf) - * ```cpg_variants.tsv.gz``` list of variants in cancer predisposition genes to tag germline predisposition variants - * ```filters.json``` filters to be applied during driver annotations ( see default file ```filters.josn``` in config folder) - * ```driver_mutations.tsv.gz``` tab separated driver mutations along with consequence type - * ```info.header``` vcf header INFO line showing driver and cancer predisposition annotations... + * `input_vcf.gz` snv or indel vcf file annotated using [VAGrENT] + * `normal_panel.vcf.gz` normal panel to tag germline variants + * `lof_genes.txt ` list of known loss of function [LoF] genes along with previous gene symbols (to make sure all gene synonyms were matched with input vcf) + * `cpg_variants.tsv.gz` list of variants in cancer predisposition genes to tag germline predisposition variants + * `filters.json` filters to be applied during driver annotations ( see default file `filters.josn` in config folder) + * `driver_mutations.tsv.gz` tab separated driver mutations along with consequence type + * `info.header` vcf header INFO line showing driver and cancer predisposition annotations... ### outputFormat - * ```_drv.vcf.gz ``` output vcf file with DRV info field and type of driver instance (germline and/or somatic) overlapping with variant location. + * `_drv.vcf.gz` output vcf file with DRV info field and type of driver + instance (germline and/or somatic) overlapping with variant location. ## INSTALL Installing via `pip install`. Simply execute with the path to the compiled 'whl' found on the [release page][annotateVcf-releases]: @@ -54,25 +58,26 @@ Installing via `pip install`. Simply execute with the path to the compiled 'whl' pip install annotateVcf.X.X.X-py3-none-any.whl ``` -Release `.whl` files are generated as part of the release process and can be found on the [release page][annotateVcf-releases] +Release `.whl` files are generated as part of the release process and can be +found on the [release page][annotateVcf-releases] ## Development environment -This project uses git pre-commit hooks. As these will execute on your system it -is entirely up to you if you activate them. +This project uses git pre-commit hooks. As these will execute on your system +it is entirely up to you if you activate them. -If you want tests, coverage reports and lint-ing to automatically execute before -a commit you can activate them by running: +If you want tests, coverage reports and lint-ing to automatically execute +before a commit you can activate them by running: ``` git config core.hooksPath git-hooks ``` -Only a test failure will block a commit, lint-ing is not enforced (but please consider -following the guidance). +Only a test failure will block a commit, lint-ing is not enforced (but please +consider following the guidance). -You can run the same checks manually without a commit by executing the following -in the base of the clone: +You can run the same checks manually without a commit by executing the +following in the base of the clone: ```bash ./run_tests.sh @@ -101,6 +106,7 @@ source env/bin/activate # if not already in env pip install pytest pip install radon pip install pytest-cov +pip install pyvcf3 ``` __Also see__ [Package Dependancies](#package-dependancies) @@ -131,9 +137,9 @@ pip install --find-links=~/wheels annotateVcf [htslib]: https://github.com/samtools/htslib [bcftools]: https://github.com/samtools/bcftools - [pyvcf]: https://pyvcf.readthedocs.io/en/latest/index.html + [pyvcf3]: https://github.com/dridk/PyVCF3 [tabix]: https://github.com/samtools/tabix - [VAGrENT]: https://github.com/cancerit/VAGrENT + [VAGrENT]: https://github.com/cancerit/VAGrENT [travis-master-badge]: https://travis-ci.org/cancerit/annotateVCF.svg?branch=master [travis-develop-badge]: https://travis-ci.org/cancerit/annotateVCF.svg?branch=develop [travis-repo]: https://travis-ci.org/cancerit/annotateVCF diff --git a/tests/test_celline_vcf_input.py b/tests/test_celline_vcf_input.py index 56d0da1..fcc5405 100755 --- a/tests/test_celline_vcf_input.py +++ b/tests/test_celline_vcf_input.py @@ -11,6 +11,7 @@ ''' class TestClass(): + configdir = os.path.join(os.path.dirname(os.path.realpath(__file__))) test_dir = configdir + '/test_input/' test_out = configdir + '/test_output/' @@ -44,7 +45,7 @@ class TestClass(): muts_vcf = f"{test_out}/celline_muts.vcf.gz" lof_vcf = f"{test_out}/celline_genes_lof.vcf.gz" drv_vcf = f"{test_out}/celline_drv.vcf.gz" - my_formatter=formatter.IO_Formatter(**options_vcf_celline) + my_formatter=formatter.IO_Formatter(**options_vcf_celline) outdir_path=my_formatter.format(['outdir']) def test_celline_vcf_input(self): @@ -82,7 +83,7 @@ def test_celline_info_flag_germline(self): assert self.info_flag_germline == vcf_filter_params['INFO_FLAG_GERMLINE'],'test_INFO_FLAG_GERMLINE test OK' def chek_celline_outdir(slef): - self.test_dir + 'tmpout' == self.outdir_path + self.test_dir + 'tmpout' == self.outdir_path def test_celline_vcf_formatter(self): f = self.my_formatter From 856a3764ae5335dd9d154cfb27b608a9710c8665 Mon Sep 17 00:00:00 2001 From: James Gilbert Date: Thu, 25 Aug 2022 15:57:39 +0100 Subject: [PATCH 7/7] Removed unused variable, and len(sys.argv) is always 1 or more --- annotate/commandline.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/annotate/commandline.py b/annotate/commandline.py index 76b800f..62c22b4 100644 --- a/annotate/commandline.py +++ b/annotate/commandline.py @@ -49,8 +49,6 @@ def main(): - usage = "\n %prog [options] -vcf input.vcf [-filter -np -gt -g -m -lof -hl -o ]" - optParser = argparse.ArgumentParser(prog='annotateVcf', formatter_class=argparse.ArgumentDefaultsHelpFormatter) optional = optParser._action_groups.pop() @@ -90,14 +88,12 @@ def main(): optional.add_argument("-q", "--quiet", action="store_false", dest="verbose", required=False, default=True) optParser._action_groups.append(optional) - if len(sys.argv) == 0: - optParser.print_help() - sys.exit(1) opts = optParser.parse_args() if not opts.vcf_file: - sys.exit('\nERROR Arguments required\n\tPlease run: annotateVcf --help\n') - print("Annotating VCF file") + optParser.print_help() + sys.exit('\nMissing ivcf/--vcf_file argument\n') + print("Annotating VCF file") # vars function returns __dict__ of Namespace instance my_formatter = formatter.IO_Formatter(**vars(opts)) outdir_path = my_formatter.format(['outdir'])