From 072bfc79d771a988b5995921e8962b6fa3ca59d9 Mon Sep 17 00:00:00 2001 From: Shriram Bhosle Date: Wed, 31 Mar 2021 11:09:23 +0100 Subject: [PATCH 1/2] Feature/vaf filter (#9) * added config to handle VAF cutoff and other filters * corrected typo * corrected typo --- annotate/commandline.py | 18 ++-- annotate/config/filters.json | 17 +++ annotate/io_formatter.py | 59 +++++------ annotate/vcf_annotator.py | 50 +++++---- setup.py | 2 +- tests/test_celline_vcf_input.py | 42 +++++--- tests/test_input/README | 11 ++ tests/test_input/celline.vcf.gz | Bin 5845 -> 5912 bytes tests/test_input/celline.vcf.gz.tbi | Bin 1643 -> 1617 bytes tests/test_input/filters.json | 17 +++ tests/test_input/input.vcf.gz | Bin 5002 -> 5738 bytes tests/test_input/input.vcf.gz.tbi | Bin 1797 -> 1747 bytes tests/test_input_lof/filters.json | 17 +++ tests/test_input_lof/input.vcf.gz | Bin 4986 -> 5748 bytes tests/test_input_lof/input.vcf.gz.tbi | Bin 1794 -> 1747 bytes .../driver_mutations_sorted.tsv.gz | Bin 0 -> 240 bytes .../driver_mutations_sorted.tsv.gz.tbi | Bin 0 -> 918 bytes tests/test_input_no_vaf_vcf/filters.json | 17 +++ tests/test_input_no_vaf_vcf/info.header | 1 + tests/test_input_no_vaf_vcf/input.vcf.gz | Bin 0 -> 4738 bytes tests/test_input_no_vaf_vcf/input.vcf.gz.tbi | Bin 0 -> 1780 bytes .../test_input_no_vaf_vcf/lof_genes_v1.0.txt | 7 ++ tests/test_lof_with_hyphen.py | 32 +++--- tests/test_matched_vcf_input.py | 37 ++++--- tests/test_no_vaf_vcf.py | 100 ++++++++++++++++++ tests/test_output/celline_drv.vcf.gz | Bin 6314 -> 6273 bytes tests/test_output/celline_drv.vcf.gz.tbi | Bin 1644 -> 1630 bytes tests/test_output/celline_genes_lof.vcf.gz | Bin 3199 -> 3464 bytes .../test_output/celline_genes_lof.vcf.gz.tbi | Bin 618 -> 620 bytes tests/test_output/celline_muts.vcf.gz | Bin 3273 -> 3524 bytes tests/test_output/celline_muts.vcf.gz.tbi | Bin 780 -> 780 bytes tests/test_output/celline_np.vcf.gz | Bin 0 -> 5967 bytes tests/test_output/celline_np.vcf.gz.tbi | Bin 0 -> 1623 bytes tests/test_output/celline_np_filtered.vcf.gz | Bin 0 -> 5998 bytes .../celline_np_filtered.vcf.gz.tbi | Bin 0 -> 1618 bytes tests/test_output/input.drv.vcf.gz | Bin 5391 -> 0 bytes tests/test_output/input.drv.vcf.gz.tbi | Bin 1783 -> 0 bytes tests/test_output/input.genes.lof.vcf.gz | Bin 2800 -> 0 bytes tests/test_output/input.genes.lof.vcf.gz.tbi | Bin 336 -> 0 bytes tests/test_output/input.muts.vcf.gz | Bin 3113 -> 0 bytes tests/test_output/input.muts.vcf.gz.tbi | Bin 629 -> 0 bytes tests/test_output/input_drv.vcf.gz | Bin 0 -> 5996 bytes tests/test_output/input_drv.vcf.gz.tbi | Bin 0 -> 1734 bytes tests/test_output/input_genes_lof.vcf.gz | Bin 0 -> 3275 bytes tests/test_output/input_genes_lof.vcf.gz.tbi | Bin 0 -> 339 bytes tests/test_output/input_muts.vcf.gz | Bin 0 -> 3831 bytes tests/test_output/input_muts.vcf.gz.tbi | Bin 0 -> 629 bytes tests/test_output_lof/genome.tab.gz | Bin 104 -> 0 bytes tests/test_output_lof/genome.tab.gz.tbi | Bin 4999 -> 0 bytes tests/test_output_lof/input_drv.vcf.gz | Bin 5281 -> 6015 bytes tests/test_output_lof/input_drv.vcf.gz.tbi | Bin 1779 -> 1733 bytes tests/test_output_lof/input_genes.vcf | 96 ----------------- tests/test_output_lof/input_genes_lof.vcf.gz | Bin 2851 -> 3285 bytes .../input_genes_lof.vcf.gz.tbi | Bin 338 -> 339 bytes tests/test_output_lof/input_muts.vcf.gz | Bin 2986 -> 3532 bytes tests/test_output_lof/input_muts.vcf.gz.tbi | Bin 397 -> 395 bytes tests/test_output_no_vaf_vcf/input_drv.vcf.gz | Bin 0 -> 5022 bytes .../input_drv.vcf.gz.tbi | Bin 0 -> 1759 bytes tests/test_output_no_vaf_vcf/input_genes.vcf | 97 +++++++++++++++++ .../input_genes_lof.vcf | 24 +++-- .../input_genes_lof.vcf.gz | Bin 0 -> 2879 bytes .../input_genes_lof.vcf.gz.tbi | Bin 0 -> 337 bytes .../test_output_no_vaf_vcf/input_muts.vcf.gz | Bin 0 -> 3033 bytes .../input_muts.vcf.gz.tbi | Bin 0 -> 398 bytes 64 files changed, 434 insertions(+), 210 deletions(-) create mode 100644 annotate/config/filters.json create mode 100644 tests/test_input/README create mode 100644 tests/test_input/filters.json create mode 100644 tests/test_input_lof/filters.json create mode 100644 tests/test_input_no_vaf_vcf/driver_mutations_sorted.tsv.gz create mode 100644 tests/test_input_no_vaf_vcf/driver_mutations_sorted.tsv.gz.tbi create mode 100644 tests/test_input_no_vaf_vcf/filters.json create mode 100644 tests/test_input_no_vaf_vcf/info.header create mode 100644 tests/test_input_no_vaf_vcf/input.vcf.gz create mode 100644 tests/test_input_no_vaf_vcf/input.vcf.gz.tbi create mode 100644 tests/test_input_no_vaf_vcf/lof_genes_v1.0.txt create mode 100755 tests/test_no_vaf_vcf.py create mode 100644 tests/test_output/celline_np.vcf.gz create mode 100644 tests/test_output/celline_np.vcf.gz.tbi create mode 100644 tests/test_output/celline_np_filtered.vcf.gz create mode 100644 tests/test_output/celline_np_filtered.vcf.gz.tbi delete mode 100644 tests/test_output/input.drv.vcf.gz delete mode 100644 tests/test_output/input.drv.vcf.gz.tbi delete mode 100644 tests/test_output/input.genes.lof.vcf.gz delete mode 100644 tests/test_output/input.genes.lof.vcf.gz.tbi delete mode 100644 tests/test_output/input.muts.vcf.gz delete mode 100644 tests/test_output/input.muts.vcf.gz.tbi create mode 100644 tests/test_output/input_drv.vcf.gz create mode 100644 tests/test_output/input_drv.vcf.gz.tbi create mode 100644 tests/test_output/input_genes_lof.vcf.gz create mode 100644 tests/test_output/input_genes_lof.vcf.gz.tbi create mode 100644 tests/test_output/input_muts.vcf.gz create mode 100644 tests/test_output/input_muts.vcf.gz.tbi delete mode 100644 tests/test_output_lof/genome.tab.gz delete mode 100644 tests/test_output_lof/genome.tab.gz.tbi delete mode 100644 tests/test_output_lof/input_genes.vcf create mode 100644 tests/test_output_no_vaf_vcf/input_drv.vcf.gz create mode 100644 tests/test_output_no_vaf_vcf/input_drv.vcf.gz.tbi create mode 100644 tests/test_output_no_vaf_vcf/input_genes.vcf rename tests/{test_output_lof => test_output_no_vaf_vcf}/input_genes_lof.vcf (69%) create mode 100644 tests/test_output_no_vaf_vcf/input_genes_lof.vcf.gz create mode 100644 tests/test_output_no_vaf_vcf/input_genes_lof.vcf.gz.tbi create mode 100644 tests/test_output_no_vaf_vcf/input_muts.vcf.gz create mode 100644 tests/test_output_no_vaf_vcf/input_muts.vcf.gz.tbi diff --git a/annotate/commandline.py b/annotate/commandline.py index 2f38e71..b81169c 100644 --- a/annotate/commandline.py +++ b/annotate/commandline.py @@ -11,6 +11,7 @@ configdir = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'config/') log_config = configdir + 'logging.conf' info_header = configdir + 'info.header' +filters_json = configdir + 'filters.json' logging.config.fileConfig(log_config) log = logging.getLogger(__name__) version = pkg_resources.require("annotateVcf")[0].version @@ -27,28 +28,21 @@ def main(): required.add_argument("-vcf", "--vcf_file", type=str, dest="vcf_file", required=True, default=None, help="vcf_file to annotate") - optional.add_argument("-filter", "--vcf_filter", type=str, dest="vcf_filter", nargs='+', - required=False, default=['PASS'], help="Include variant sites \ - matching vcf FILTER flag(s), multiple flags can be specified \ - with space separator") + optional.add_argument("-filters", "--vcf_filters", type=str, dest="vcf_filters", required=False, + default=filters_json, help="Include vcf filters \ + configuration file in json (param:value) format \ + [please refer bcftools documentation for more details \ + : http://samtools.github.io/bcftools/bcftools.html#expressions]") optional.add_argument("-np", "--normal_panel", type=str, dest="normal_panel", required=False, default=None, help="normal panel file to flag germline variant sites") - optional.add_argument("-gt", "--germline_tag", type=str, dest="germline_tag", required=False, - default="NPGL", help="tag to mark normal panel filtered variants in \ - vcf INFO field, only applicable when -np is set") - optional.add_argument("-g", "--lof_genes", type=str, dest="lof_genes", required=False, default=None, help="LoF gene name file to use annotations") optional.add_argument("-m", "--mutations", type=str, dest="mutations", required=False, default=None, help="driver mutations file to use for driver variant annotations") - optional.add_argument("-lof", "--lof_type", type=str, dest="lof_type", nargs='+', metavar='N', - required=False, default=["stop_lost", "start_lost", "ess_splice", - "frameshift", "nonsense"], help="Loss of function effect types") - optional.add_argument("-hl", "--header_line", type=str, dest="header_line", required=False, default=info_header, help="vcf info header line and info tag") diff --git a/annotate/config/filters.json b/annotate/config/filters.json new file mode 100644 index 0000000..2668ccb --- /dev/null +++ b/annotate/config/filters.json @@ -0,0 +1,17 @@ +{ + "_#comment": [ + "Add filters to include/ exclude the variants sites to annotate using drivers", + "please refer filter expression formats to add new filters : https://samtools.github.io/bcftools/bcftools.html#expressions" + ], + "include": { + "FILTER": "FILTER=\"PASS\"", + "FORMAT": "FORMAT/VAF[*] > 0.15", + "INFO": "INFO/VC=\"stop_lost,start_lost,ess_splice,frameshift,nonsense\"", + "INFO_FLAG_GERMLINE": "NPGL" + }, + + "exclude": { + "None": null + } +} + diff --git a/annotate/io_formatter.py b/annotate/io_formatter.py index 7febfc0..0c85fc6 100644 --- a/annotate/io_formatter.py +++ b/annotate/io_formatter.py @@ -5,6 +5,7 @@ import io import tempfile import pkg_resources +import json import shutil from contextlib import contextmanager @@ -24,12 +25,10 @@ def __init__(self, **kwargs): self.genes_file = kwargs.get('lof_genes', None) self.muts_file = kwargs.get('mutations', None) self.np_vcf = kwargs.get('normal_panel', None) - self.np_tag = kwargs['germline_tag'] - self.lof_type = kwargs['lof_type'] self.header_line = kwargs['header_line'] self.outdir = kwargs['outdir'] self.keepTmp = kwargs['keepTmp'] - self.filter = kwargs.get('vcf_filter', None) + self.json_file = kwargs.get('vcf_filters', None) # check input data ... def format(self, input_array): @@ -47,14 +46,12 @@ def format(self, input_array): def _get_formatter(self, input_type): if input_type == 'vcf_file': return self._format_vcf - elif input_type == 'lof_type': - return self._format_lof elif input_type == 'outdir': return self._get_outdir_path - elif input_type == 'format_filter': - return self._format_vcf_filter elif input_type == 'input_status': return self._check_input + elif input_type == 'vcf_filters': + return self._get_filters else: raise ValueError(input_type) @@ -72,19 +69,13 @@ def _check_input(self): def _format_vcf(self): return get_file_metadata(self.vcf_file) - def _format_vcf_filter(self): + def _get_filters(self): """ - formatter function - :return: - """ - return format_filter(self.filter, 'FILTER=') - - def _format_lof(self): + load parameters from json config file """ - format lof consequence types to filter - :return: - """ - return format_filter(self.lof_type, 'INFO/VC=') + inc_filters = ['FORMAT', 'FILTER', 'INFO', 'INFO_FLAG_GERMLINE'] + formatted_filters = parse_filters(self.json_file, 'include', inc_filters) + return formatted_filters def _get_outdir_path(self): """ @@ -113,19 +104,6 @@ def check_inputs(file_dict): return file_dict -def format_filter(filter_vals, filter_type): - """ - - :param filter_vals: for vcf filter field - :param filter_type: filter prefix [e.g., FILTER, INFO, etc ] - :return: formatted filter string - """ - format_store = [] - for val in filter_vals: - format_store.append(filter_type + "\"" + val + "\"") - return ' || '.join(format_store) - - def get_file_metadata(full_file_name): """ takes file path as input and gives its path and processed extension @@ -139,6 +117,25 @@ def get_file_metadata(full_file_name): return file_metadata +def parse_filters(json_file, filter_type, filters): + """ + load filtering parameters from json config file + """ + filter_param_dict = {} + try: + if json_file is None: + sys.exit('Json configuration file must be provided') + with open(json_file, 'r') as cfgfile: + filter_cfg = json.load(cfgfile) + for filter in filters: + filter_param_dict[filter] = filter_cfg[filter_type][filter] + except json.JSONDecodeError as jde: + sys.exit('json error:{}'.format(jde.args[0])) + except FileNotFoundError as fne: + sys.exit('Can not find json file:{}'.format(fne.args[0])) + return filter_param_dict + + @contextmanager def tempdir(mypath): """ diff --git a/annotate/vcf_annotator.py b/annotate/vcf_annotator.py index 6dbf58d..3d18e35 100644 --- a/annotate/vcf_annotator.py +++ b/annotate/vcf_annotator.py @@ -26,7 +26,6 @@ def __init__(self, f, basedir): self.outdir = basedir self.status_dict = f.format(['input_status']) self.input_data = f.format(['vcf_file']) - # set input vcf parameters ... self._set_input_vcf(self.input_data) self.drv_header = f.header_line @@ -42,24 +41,27 @@ def _runAnalysis(self, f): :return: """ status = self.status_dict['input_status'] - vcf_filters = f.format(['format_filter']) - self.vcf_filter = vcf_filters['format_filter'] + vcf_filters = f.format(['vcf_filters']) + vcf_filter_params = vcf_filters.get('vcf_filters', None) + self.info_filters = vcf_filter_params['INFO'] + self.format_filters = vcf_filter_params['FORMAT'] + self.filter_filters = vcf_filter_params['FILTER'] + self.flag_germline = vcf_filter_params['INFO_FLAG_GERMLINE'] run_status = False a_type = ['normal_panel', 'mutations', 'lof_genes'] for analysis in a_type: if status[analysis] and analysis == 'normal_panel': - logging.info(f"Tagging germline variants with INFO tag:{f.np_tag}") - self.tag_germline_vars(f.np_tag, f.np_vcf) + logging.info(f"Tagging germline variants with INFO tag:{self.flag_germline}") + self.tag_germline_vars(f.np_vcf) run_status = True if status[analysis] and analysis == 'mutations': logging.info("Annotating driver mutations with INFO field:DRV=") self.annot_drv_muts(f.muts_file) run_status = True if status[analysis] and analysis == 'lof_genes': - logging.info("Annotating LoF genes with INFO filed:DRV=LoF") - lof_types = f.format(['lof_type']) - self.annotate_lof_genes(f.genes_file, lof_types['lof_type']) + logging.info("Annotating LoF genes with INFO field:DRV=LoF") + self.annotate_lof_genes(f.genes_file) run_status = True if run_status: logging.info("concatenating results") @@ -79,24 +81,23 @@ def _set_input_vcf(self, input_data): self.vcf_name = input_data['vcf_file']['name'] self.outfile_name = self.outdir + '/' + self.vcf_name + '{}' - def tag_germline_vars(self, np_tag, np_vcf): + def tag_germline_vars(self, np_vcf): """ - use normal panel to tag germline variants and created filtered vcf file to use in + use normal panel to tag germline variants and create filtered vcf file to use in subsequent driver annotation steps ... sets filtered vcf as new user input parameter for downstream analysis add tagged and filtered vcf files to concat in final step - :param np_tag: :param np_vcf: :return: """ tagged_vcf = self.outfile_name.format('_np.vcf.gz') filtered_vcf = self.outfile_name.format('_np_filtered.vcf.gz') - cmd = f"bcftools annotate -a {np_vcf} -i '{self.vcf_filter}' -m '{np_tag}'" \ + cmd = f"bcftools annotate -a {np_vcf} -i '{self.filter_filters}' -m '{self.flag_germline}'" \ f" {self.vcf_path} | bgzip -c >{tagged_vcf} && tabix -p vcf {tagged_vcf}" _run_command(cmd) - cmd = f"bcftools view -i '({self.vcf_filter}) && {np_tag}=0' {tagged_vcf} | " \ + cmd = f"bcftools view -i '{self.flag_germline}=0' {tagged_vcf} | " \ f"bgzip -c >{filtered_vcf} && tabix -p vcf {filtered_vcf}" _run_command(cmd) @@ -118,7 +119,9 @@ def annot_drv_muts(self, muts_file): :return: """ muts_outfile = self.outfile_name.format('_muts.vcf.gz') - cmd = f"bcftools annotate -i '{self.vcf_filter}' --merge-logic DRV:unique" \ + combined_filter = _combine_filters([self.filter_filters, self.format_filters]) + cmd = f"bcftools annotate -i '{combined_filter}'" \ + f" --merge-logic DRV:unique" \ f" -a {muts_file} -h {self.drv_header} " \ f"-c CHROM,FROM,TO,INFO/DRV {self.vcf_path} |" \ f"bcftools annotate -i 'DRV!=\".\" && DRV[*]==VC' | " \ @@ -126,11 +129,10 @@ def annot_drv_muts(self, muts_file): _run_command(cmd) self.merge_vcf_dict['a'] = muts_outfile - def annotate_lof_genes(self, genes_file, lof_types): + def annotate_lof_genes(self, genes_file): """ annotate vcf using known LoF genes :param genes_file: lof gene names file - :param lof_types: lof consequences type string :return: """ # create dummy genome locationo file to annoate LoF genes... @@ -140,9 +142,10 @@ def annotate_lof_genes(self, genes_file, lof_types): genes_outfile = self.outfile_name.format('_genes.vcf') lof_outfile = self.outfile_name.format('_genes_lof.vcf') lof_gene_list = get_drv_gene_list(genes_file) - # map lof effect types to pass variants... - cmd = f"bcftools annotate -a {genome_loc_file} -i '({self.vcf_filter}) && ({lof_types})' " \ + combined_filter = _combine_filters([self.filter_filters, self.format_filters, self.info_filters]) + cmd = f"bcftools annotate -a {genome_loc_file} -i '{combined_filter}' " \ f"-h {self.drv_header} -c CHROM,FROM,TO,INFO/DRV {self.vcf_path} >{genes_outfile}" + _run_command(cmd) with open(lof_outfile, "w") as lof_fh, open(genes_outfile, 'r') as gene_f: for line in gene_f: @@ -172,6 +175,17 @@ def concat_results(self): # generic methods .... +def _combine_filters(filter_array): + """ + :param filter_array: filtring paramters + :return: return formatted filtering parameters if present otherwise () equivalent to no filter... + """ + if any(filter_array): + return f"({') && ('.join(filter(None, filter_array))})" + else: + return "()" + + def _get_gene(line, gene_field, field_loc): # Not used ... kept for future implementation of different annotation fields.... # ANN=T|missense_variant|MODERATE|AGAP005273|AGAP005273| [ e.g. 'ANN', 3] diff --git a/setup.py b/setup.py index 986a553..6d2ac4f 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ 'python_requires': '>= 3.6', 'install_requires': ['tzlocal'], 'packages': ['annotate'], - 'package_data': {'annotate':['config/*.conf','config/*.header']}, + 'package_data': {'annotate':['config/*.conf','config/*.header','config/*.json']}, 'entry_points': { 'console_scripts': ['annotateVcf=annotate.commandline:main'], } diff --git a/tests/test_celline_vcf_input.py b/tests/test_celline_vcf_input.py index 253e498..057e53f 100755 --- a/tests/test_celline_vcf_input.py +++ b/tests/test_celline_vcf_input.py @@ -16,14 +16,12 @@ class TestClass(): test_out = configdir + '/test_output/' options_vcf_celline = {'vcf_file': test_dir + 'celline.vcf.gz', - 'vcf_filter': ['PASS'], 'lof_genes': test_dir + 'lof_genes_v1.0.txt', 'mutations': test_dir + 'driver_mutations_sorted.tsv.gz', - 'lof_type': ["stop_lost","start_lost","ess_splice","frameshift","nonsense"], + 'vcf_filters': test_dir + 'filters.json', 'header_line': test_dir + 'info.header', 'outdir': test_dir + 'tmpout', 'keepTmp': False, - 'germline_tag': 'NPGL', 'normal_panel': test_dir+'np.vcf.gz' } @@ -33,9 +31,11 @@ class TestClass(): }} file_dict = {'input_status': {'mutations': True, 'lof_genes': True, 'normal_panel': True, 'vcf_file': True}} - lof_type = { - 'lof_type': 'INFO/VC="stop_lost" || INFO/VC="start_lost" || INFO/VC="ess_splice" || INFO/VC="frameshift" || INFO/VC="nonsense"'} - my_filter = {'format_filter': 'FILTER="PASS"'} + + info_filter="INFO/VC=\"stop_lost,start_lost,ess_splice,frameshift,nonsense\"" + format_filter= "FORMAT/VAF[*] > 0.15" + filters_filter= "FILTER=\"PASS\"" + info_flag_germline="NPGL" # celline output muts_vcf = f"{test_out}/celline_muts.vcf.gz" lof_vcf = f"{test_out}/celline_genes_lof.vcf.gz" @@ -46,23 +46,37 @@ class TestClass(): def test_celline_vcf_input(self): # check input type function f = self.my_formatter - file_metadata = self.file_metadata - assert file_metadata == f.format(['vcf_file']),'test_vcf_input test OK' + assert self.file_metadata == f.format(['vcf_file']),'test_vcf_input test OK' def test_celline_file_input(self): file_dict=self.file_dict f = self.my_formatter assert file_dict == f.format(['input_status']),'test_file_input test OK' - def test_celline_lof_format(self): - lof_type=self.lof_type + def test_celline_info_filter(self): + f = self.my_formatter + vcf_filters = f.format(['vcf_filters']) + vcf_filter_params = vcf_filters.get('vcf_filters', None) + assert self.info_filter == vcf_filter_params['INFO'],'test_INFO test OK' + + def test_celline_format_filter(self): f = self.my_formatter - assert lof_type == f.format(['lof_type']),'test_lof_format test OK' + vcf_filters = f.format(['vcf_filters']) + vcf_filter_params = vcf_filters.get('vcf_filters', None) + assert self.format_filter == vcf_filter_params['FORMAT'],'test_FORMAT test OK' - def test_celline_filter_format(self): - my_filter=self.my_filter + def test_celline_filter_filters(self): f = self.my_formatter - assert my_filter == f.format(['format_filter']),'test_filter_format test OK' + vcf_filters = f.format(['vcf_filters']) + vcf_filter_params = vcf_filters.get('vcf_filters', None) + assert self.filters_filter == vcf_filter_params['FILTER'],'test_FILTER test OK' + + def test_celline_info_flag_germline(self): + f = self.my_formatter + vcf_filters = f.format(['vcf_filters']) + vcf_filter_params = vcf_filters.get('vcf_filters', None) + 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 diff --git a/tests/test_input/README b/tests/test_input/README new file mode 100644 index 0000000..400ad06 --- /dev/null +++ b/tests/test_input/README @@ -0,0 +1,11 @@ +annotateVcf -vcf celline.vcf.gz -g lof_genes_v1.0.txt -m driver_mutations_sorted.tsv.gz -np np.vcf.gz -o test_output -t +annotateVcf -vcf input.vcf.gz -g lof_genes_v1.0.txt -m driver_mutations_sorted.tsv.gz -o test_output -t -filters filters.json +bcftools query -f '%CHROM\t%END\n' ../celline.vcf.gz >cell_linergions.txt + +bcftools view /lustre/scratch117/casm/team215/sb43/user_query/cell_line_vafs_comparison/vafcorrect_broad_wgs/vafcorrect_out/output/PDv38is_wgs/snp/PDv38is_wgs_ACH-000879_snp_vaf.vcf.gz -R cell_linergions.txt | bgzip -c >../celline.vcf.gz + +bcftools query -f '%CHROM\t%END\n' ../input.vcf.gz >org_pos.txt + +bcftools view /lustre/scratch117/casm/team215/sb43/organoid_analysis/WGS/p2126/out_vafcorrect/output/WTSI-COLO_005_b/snp/WTSI-COLO_005_b_WTSI-COLO_005_a_DNA_snp_vaf.vcf.gz -R org_pos.txt >input.vcf + + diff --git a/tests/test_input/celline.vcf.gz b/tests/test_input/celline.vcf.gz index f07b2d213f81f246e325c5370e41ea641317344c..4fc3892c872092359bb723775afa09f536303bd7 100644 GIT binary patch literal 5912 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 literal 5845 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 literal 1643 zcmb2|=3rp}f&Xj_PR>jW9!zg<@AaOVD8ld|JK#dlgCrKwOBWI%lQbMVT{y&qCWg4g zFIf^ODXF9~@r$X+R2E*|i$YfdoaF_!nqIv$|6*LU?#kzL6qVPkTyVej_dkp0^PbzB z{~b5~_)ETbZ}OwAWtdDmvv2mLo!5VDDg9<^Vs+23{N~PP zd*=FG(&C4zXRiNo(q&z}+P#t8vtbTm_`YW0E&sRQM&iWbk{+9E@k7vT~6k60w z_&IC;GwE|RSHH?}%CGIJv0eT$_MykM@Vh5A?pa^6@2hRhEs=Srf34bGqEs{MYpD5V z%bII*&)Yu#eMh`6b-q;n=ae5dzpwmgpZl=;O!%Hf+BGwOcG;Jp0S>*a^@Z|?tfZQt%m zUqi!xzkYCR{&&8g_EG7V*RR=}VJJS&l>7XoqcIh1e^!>d{aN?bzF)<25(+w5fAH5@ zAv8e>xb-*R|8BT_hT%U0gFIS7Qe}L5%F)XyQKIeQ{Y8%28Db`D8@DtlC^hv=&`@%6 z(b}TX!z5UuwD4@P_}1o(@O2Ik<&TK&d@)tv&7Kd14<2$SZduzb;DPFV&q+^;Zd#)F z2<-SL^(6%&vDW9F9XpwH*K+RpZl(X1Zg0-nc3%ATuhdItSHHZocix-2Otb8#8LN%v zzBhmQ?fs>{Yt;Vk@V`~-@%^pg?B3-!-(0y|TRSi3eX8Alsf$xDivGIzJ}u{Gn2GqL z=)2vyf8MA6-aZl2W}-x^2J%eqo-71YPz4!XxyV*9y-@fxhy!+EwU+$mPc3ch*1O+$C1|L`39RAH 0.15", + "INFO": "INFO/VC=\"stop_lost,start_lost,ess_splice,frameshift,nonsense\"", + "INFO_FLAG_GERMLINE": "NPGL" + }, + + "exclude": { + "None": "NA" + } +} + diff --git a/tests/test_input/input.vcf.gz b/tests/test_input/input.vcf.gz index f71ab1cf85dcf3834afc7cdd6d9e4f1fcd65f43b..d1ab9b38f866615f3f229e716138f4420667cc3f 100644 GIT binary patch literal 5738 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 c1ONa4009360763o02=@U0000000000006BJIsgCw literal 5002 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 U0763o02=@U000000000000~c&`Tzg` diff --git a/tests/test_input/input.vcf.gz.tbi b/tests/test_input/input.vcf.gz.tbi index 28a775b86d6f003cb4dd63a03aa8a4aa1993cbea..39bb953f78aadabe58c3e6650bcaecb3a5b8fc10 100644 GIT binary patch literal 1747 zcmb2|=3rp}f&Xj_PR>jW{~6w%v*tSFAi(zE>%~eo?TrFDkGPeRk`*;L#5CWyZulk> zCU^8$cO}E*yDS?&Gu%J)Pu}`4PjpV%+BlAdvG>AqOWC%*{xom>cF!K2XC}{do++it z6-TD#oLk+oHu%Lf?r;5Depvc=ckA5b-2Z%^?|h5COTTUX;`mnH+cW!T_`FwV@1?EV z|LdB^Bo$BEp-=wy6^ptgfu3cMNAv$ahPS5-xf~KCjz8>AzQNlS)R$l^Ip<8E%z>3T zVxRbu%vU^*&-edZbvbBRHYHAcA}^zj&4c@kS0DbfCy{Tt*{xfxkyY#R7w!H3?NJ_z zRrQY<8AQHkV{`s>hPSsjavn+$V13~2z^%SvLlM(KrvjFP=VFhT%4kIDD!O}oDqrdJ zz}mvDqFj5=k2^^c*jzzc*cWlXuDk!dW7YPZ>1DM`*4N)Vy{GG`Oy6aG3}f!>|GFmJ z;2US%`7Limw@g2CYXAGpQ}DPxDOwg6#~XmnU#yI8?;hj?CQH@}z4w^P1VrCBvK(xF z;Hc~IA&=EeF`||AMwhs@ft8M-bhtACr4KCVz>bqlu!2GTD`w|YEagpR9X1wLbp! zHgC!jjAfB_i(7siHt!t+=Dm%aEdc^77rtKFEw*lIw?8in^T7jrYmS{@+TwpyzC+DT z?GxKH_RYdS?YB(;d2If}2$G$%=TrDZSfJc{9ikrp`t1FVoUfOctjnK#bi%*qcHPOl zzVB0nM;2B_YcGNIKV}Rfi-!_f&~svUK1H38dZag zV!WOmc;KR_)6jBn`Z<5Q`s2T3-cL~Z$-nNBNv+GwJ#nAbz1x(kQ@mQKtN-4GwC}t3 z%ztg;+uNv(zFkjeVEcc($@39ru`SKO J46emM1OO`D%?bbj literal 1797 zcmb2|=3rp}f&Xj_PR>jW+Kg|{8G1Q83a~xsovIME#6NXusEMJCpftB)k`;Hgpw1eb z_J}24nRYt9d!TF6Wd33A+__G+jURO1{5Sl3kFU6VtIXS}L1n+Jv-qBGsJwZ32A{|pTBXkm4n;q9r7oXrU$trz2u7qBQQa41DAJFRn#Z;~1Jj%msf zw>9=DsVvPfK}_nh~i^B=eT zn}BZ2$+y4X3hV4`TI&B{&(hNM4{A@Y`B!a{?FI|8ld+bJC!XjitwD+C7-%r*|Uo$^E@Y>#& zX(#MI@J={9VHdU_xXbYN>_u?g9_Ur!z0q0*Or-xjngm#@H}Yv;h)qQIc)XjpxZmC;6IHSk5tq06Dkchf6Pka2OIz2Vk-d;V!Gn}8Y`G9Pp1F#w}N z{ie|}OMRuT?QwTg%wO-3e|Px*?V>j@XJh(_Jdyh3yD6tlrsuj$d~>_vsY(5u(CPQ> zzq|Tuj_;L4vg@b$Jx0NccCy%f+sg3vs3Ru>0|(0n?yQ7l&L-8A-#W38+j4JH9mU%- VPrKLrX5}Ny!dsew8C>sy2mrw`_FMn} diff --git a/tests/test_input_lof/filters.json b/tests/test_input_lof/filters.json new file mode 100644 index 0000000..e6b985c --- /dev/null +++ b/tests/test_input_lof/filters.json @@ -0,0 +1,17 @@ +{ + "_#comment": [ + "Add filters to include/ exclude the variants sites to annotate using drivers", + "please refer filter expression formats to add any filters : https://samtools.github.io/bcftools/bcftools.html#expressions" + ], + "include": { + "FILTER": "FILTER=\"PASS\"", + "FORMAT": "FORMAT/VAF[*] > 0.15", + "INFO": "INFO/VC=\"stop_lost,start_lost,ess_splice,frameshift,nonsense\"", + "INFO_FLAG_GERMLINE": "NPGL" + }, + + "exclude": { + "None": "NA" + } +} + diff --git a/tests/test_input_lof/input.vcf.gz b/tests/test_input_lof/input.vcf.gz index 394d049ab47766a6df98daff0a593169ef00f1ef..ac9e41ddf30dd8411e1f6b7e1d1145c2ff1eed31 100644 GIT binary patch literal 5748 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 literal 4986 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 E05O=3<^TWy diff --git a/tests/test_input_lof/input.vcf.gz.tbi b/tests/test_input_lof/input.vcf.gz.tbi index 2b469a53761a67e24a8acae9de08385c12c9a0ea..0e2d4e012399799d9e26e98701b1aad82fe6ab09 100644 GIT binary patch literal 1747 zcmb2|=3rp}f&Xj_PR>jW{~6w%v*tSFAi(zE>%~eo?TrFDkGPeRk`*;L#5CWyZulk> zCU^8$cO}E*yDS?&Gu%J)Pu}`4PjpV%+BlAdvG>AqOWC%*{xom>cF!K2XC}{do++it z6-TD#oLk+oHu%Lf?r;5Depvc=ckA5b-2Z%^?|h5COTTUX;`mnH+cW!T_`FwV@1?EV z|LdB^Bo$BEp-=wy6^ptgfu3cMNAv$ahPS5-xf~KCjz8>AzQNlS)R$l^Ip<8E%z>3T zVxRbu%vU^*&-edZbvbBRHYHAcA}^zj&4c@kS0DbfCy{Tt*{xfxkyY#R7w!H3?NJ_z zRrQY<8AQHkV{`s>hPSsjavn+$V13~2z^%SvLlM(KrvjFP=VFhT%4kIDD!O}oDqrdJ zz}mvDqFj5=k2^^c*jzzc*cWlXuDk!dW7YPZ>1DM`*4N)Vy{GG`Oy6aG3}f!>|GFmJ z;2US%`7Limw@g2CYXAGpQ}DPxDOwg6#~XmnUu=wT@9yP16d=O-K>RIJ-UI$!%^Xdw z35sHU$~UYVlRL6+?Ck0lme^~P6qKd>DV9TiPWk3TwwXrW>lHB^0SwDO;nr8n-!Bgd zdG~x`tk}b667S#c@i=Qa^(!AX)kuN=Z`a-JzgPc!_o`B~EU0+h;vFZg;>^C69X|2- z|Ifb{RvQx=nDb{_ADSndeA)3!`%}A(Z>`SkO#!)JC(s2a*Vi&gUz)fVTQJ;ZczgCB zCop%iUI^U6@Ycy%V9!fO5fR&n8Rd@sOKX-%XN}7rcD#@27J*zdqki+5hF#{`IA| zRS5(U0sCZjiUy0hOv2{77HK3`_bh#+?;@=& zUCDg9`DW)Q`Dk#uIbWayPd~&uEbixOxSsc=>n5-Nx-8#i+po-^>)TJ(c>FJ(f7I}9 z_5BG*(T>GWd+xGkZkg$d%^$BA-k#pbd&mG7OWrdY)L2DRr8FdzRau!dUBeO>rg@yK znmB{GS-5orgHTnxmHp2@vaf^pI8S{vPf2)yr{lG z?YT2HueLM1J?hBGz`((>p*vaU_i_Oi;~zKeyi2F$-rh!S^zC{&!zF$uUC&3D#kMp9 JGq@H55dc~w&LRK+ literal 1794 zcmb2|=3rp}f&Xj_PR>jW+Kg|{8G1Q83a~xsovILZWBH~_T2fQhladu(e9{y3n_8zn z7vPT8f55w^dHV;BosRcz-_)EmN8y9*jsMAM_xV0oSWCa18dUbnIE(Lo;OAxb=hweq zZmMQ_KFcpV?#i32INnJ8^X)6b{ZqHge=zEQm_OaHbN(a-&%cJjWrcYGy zoJ2cxM{4?wVEI=J{}~wM(ZcFD!`o9EIhzAS+AdD-nJCEA=%Bzct?XRVTZL_U52E@K zau-){UkutZ@$=!Q2afx`wboU};!wHG|A}_}`;_n4jQC`=y8g$U^*M(WyThJ8RL%{r zS@ib*vFo=ykPV*qjD>BVPY^bLTw{298|aS&0oDh>9$h{Yl$u$b6iO9dtN1P}P)y&n zJ;280uX(_}=Eu$D+YfcWle;{D^5AygBKN(xcZJ*j{xiSQf8~9Odls7Wyd0|8z|A6tVOf;D`qjE;Y-VY;dE>3SuYXw9{qe*3OT?-#uJ zYQN{*D{7w=|DLZEJ6x_VMbAn1=Pq5jtHY?$_F3%xw9_-5 z?dj0CS5-Rs?wZeaJNWg7L$VX<}p?}!_o zturk{$_7vFSFkg2K1syp*H(tNM;$pC7&urqaA#!+b2h1_{MLz$+?IQr>L}ix`Fcp$ R)s>GhOKxcfW^knkA^@br^=<$F diff --git a/tests/test_input_no_vaf_vcf/driver_mutations_sorted.tsv.gz b/tests/test_input_no_vaf_vcf/driver_mutations_sorted.tsv.gz new file mode 100644 index 0000000000000000000000000000000000000000..26e5a6ce4b99f526f28d7cf24405da4aaea6dfb3 GIT binary patch literal 240 zcmb2|=3rp}f&Xj_PR>jWml;YgIC3=`2(&&dweeM(d{V`GqiEOKj;cnbF1;-a_S$ca z>Rnngwf^Ho_n@uH916*i)-Sg)3DlbVel@tNr2CnrDXT0fqO4=VS1~`H{>0SCO27T0 z)m!7gtzOfgw&(lTD`jUtzhDsPF=6|zv_HztF#f92)PN->4{f%yW$vH-ByppLSdK*G zs`Hfwsct`x|FF$Jk+tCG>TM3|Kbc(9-rVG{$+a_jg1k=NL(ly;|Cp3_rd(0LRN;IRF3v literal 0 HcmV?d00001 diff --git a/tests/test_input_no_vaf_vcf/driver_mutations_sorted.tsv.gz.tbi b/tests/test_input_no_vaf_vcf/driver_mutations_sorted.tsv.gz.tbi new file mode 100644 index 0000000000000000000000000000000000000000..8dc2ffb8503a7be3883c35b45f2fc60220c84e51 GIT binary patch literal 918 zcmb2|=3rp}f&Xj_PR>jW8yVi7+0EM=z{48gv4m%mM$oAmuAt@IrqTfpXEk&Vb=mNE z7%-l-ytKD9b@#8opS{ga2m5J0pK{x1_p&Rw-@B^Z_Al;!@&3yE9a_JCR(-uub62YC zZ_eH9camUB$R-Xny2*Y}d&BUbfk7V4#e0D+-pkowAkc8}b2^v!g=4ZT*2g!Wv(ZaU zKF~1f+_6`+0&+4txjiSTprBt{_4cRsWNZqax%AOC_buyx2EJJ>{krD;@>lmQZFZxo zMbk<$_x@gn_c1f9u(_Ur@$KESypE0{Y!@UCb z^i;;N)}8ZJQ!jq*$7vp4am{Fg%KwAK+pf>KYtnL~;^f}!vTCpQck6iGn@U`h#Bklu zzu%&(SySgH$iI%>oi=$(cEGc1m3f;z{ub%~&wp&?jiCW0oDi~4)FU>1m$R&EuRQfw z+p^|(&dHyzzZtKO>V3t7LkBz*|FFK--F{&{wgA}7@b(lVZ-W63%K@gm4-Jeu57;8I>64 zUhwa#4VA*?<`9OrM>ldZFmNy%)ZRVKdXV2r&HI(l?QOY)(AzKhjQX+#7IF!g=~$Y9 H8J;}=pX5_b literal 0 HcmV?d00001 diff --git a/tests/test_input_no_vaf_vcf/filters.json b/tests/test_input_no_vaf_vcf/filters.json new file mode 100644 index 0000000..5dd082c --- /dev/null +++ b/tests/test_input_no_vaf_vcf/filters.json @@ -0,0 +1,17 @@ +{ + "_#comment": [ + "Add filters to include/ exclude the variants sites to annotate using drivers", + "please refer filter expression formats to add any filters : https://samtools.github.io/bcftools/bcftools.html#expressions" + ], + "include": { + "FILTER": "FILTER=\"PASS\"", + "FORMAT": null, + "INFO": "INFO/VC=\"stop_lost,start_lost,ess_splice,frameshift,nonsense\"", + "INFO_FLAG_GERMLINE": "NPGL" + }, + + "exclude": { + "None": "NA" + } +} + diff --git a/tests/test_input_no_vaf_vcf/info.header b/tests/test_input_no_vaf_vcf/info.header new file mode 100644 index 0000000..bf75f79 --- /dev/null +++ b/tests/test_input_no_vaf_vcf/info.header @@ -0,0 +1 @@ +##INFO= diff --git a/tests/test_input_no_vaf_vcf/input.vcf.gz b/tests/test_input_no_vaf_vcf/input.vcf.gz new file mode 100644 index 0000000000000000000000000000000000000000..cccee54f124be0f09e45f78f435969b2a123acba GIT binary patch literal 4738 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�bn6<$H6I4%yBjVV={_S9mOg^Ou~!F z7ML9s#opkas;6PTO>zgREW@$NG4JsY;G8P5UW(i&fr{jik|9cf3Vq2ZB~HFE2*nr- zB_*bK&4!a;oLCevHF0grVJGyW%q|73Z6{i8MDqfl;-dgH?0FqMNt0 z%T#h{Q`i0D$H^|$?D#^}I5mdZr8Ftwme1c^4LI;O&C$jfOgwCbHkTgQhAyW_<`(L( zBHoHAGT(&CpU{Bg6~K{Vg8bMSIJu*knhAgqXGkR(+vR8I#Z0btXC8kg?M?-!n@2;p zlwg_YMCA^FEw+KwM!8#~Hphs_GZK?YI1Pgn<{fr%EJq4QL&SiiGCyu_=Eq0XZ^J)& z{onOyl{w7B;6VaAMfq$ML*M*@W~;jh{fjC1yp1dkRf$oqceM3U4l$EM0;9MFCuazp zRuc%F63D2h6o6ZVI;K->V|5=Z!gS&6lE$cgTovf|ZZC|M@?W}EnZ5Q|8Rf64QSaMW~_5Eu#Ds?GQPGYc+ys40g z9x_1q{{d#DyC8c(!k?BL^G*U4k2)f~Q3XkIvzo}-lG5*uO|oY!P7^sg?7CNw%_vx?gVe7WTUtUQ8~_@cUvIO>E+ z8^g~wV)!Xsyxmx|;UorjtjESfFrUlv%fO(l|ScY9~aKNep|)^3bRAC?_=qGMNS=E zGh_Y(>|O6b?4<~P8m#gVmRJ3Sp|32%bmb2}11M1Sclb#V+lFmlB+?|00?P>woQ5og zFUi(9KrP7T}Ew$wXC;L>o!H%P{&EQ8k z8c~JUOOpMRvzQxvjWI*f168G1Q83a~xsotm+HYg2|QhoP3skz-CC26J2Ya)^b6 z$sIa%x`IJJAvbwq_mjPI=PI4#WV+w{*FNprTZ8`c$p`Z^Q&(Fzr~Q{T&)@y|&#$_; zLF8U?f{rtaW{c@dp{A%^%ko-rhdQ*_^<``aok#yWa)p6?|bj` zp02lZ&YkAR(0XV8*Hz&L-#KrEM}6bk6`l6<{`*ZSa64_LFfY$jc!bScER1jOp5{Ch zAi#P-d^7ir#`#(`4j0Y8v6Qb^Khj=5sQg{%Zs&iE z`n{h&abpXF%M5SN9OOLY01SkS5sj%g8Xvg2OxTj>9=1T;+mn5zVyued;YmwcTFf`t zd^4_JwClJD7B3*j$@j;ZHFtF%8T_hCy>{j0`#C@VPyGLH=C%19kCpU)hpt(^H*Noy zQ-9y5zQgGe0v13m%e%tZKV`xXY<@Zb%y*7l4gn&p7mi<%>d|%aIwjQe=7d~|=Csy7 zjT+3%n~PtUzS<}4Et~E^mMeaqU8@N5^PlS*eV-jao9a@wqip5sUn%BG|8GA3Xx_pd zW(52Zf0vQNe$hE>9(cv@_Vh;HLk7S|@xIZ})YR3-#dWNsWsw0(^aht%9y&+VN^UYX zcltyyDDKstJHO^%U$pT02`VQaDfwP@zjE@e;rnBH(Z_A3hq`>dD1GZq-SqF5Yk$?p zPuGJvnt;=YRrbl8FL#??v8_wU$&KCR=T1Mr`Q_)|>iDBJ%Y9!?K-h6||98d*J+9f< zyxPX__NXH#0|N)khSeGWdCCM>oH=f%zdW@m_x3hwqksP-6S*(6O?-q|R7*23gR40Z F0RVKM>hS;o literal 0 HcmV?d00001 diff --git a/tests/test_input_no_vaf_vcf/lof_genes_v1.0.txt b/tests/test_input_no_vaf_vcf/lof_genes_v1.0.txt new file mode 100644 index 0000000..8d8edf0 --- /dev/null +++ b/tests/test_input_no_vaf_vcf/lof_genes_v1.0.txt @@ -0,0 +1,7 @@ +APC +B2M +ARID1A +DICER1 +TP53 +RNF43 +ARID1B diff --git a/tests/test_lof_with_hyphen.py b/tests/test_lof_with_hyphen.py index 120241c..d8ac209 100755 --- a/tests/test_lof_with_hyphen.py +++ b/tests/test_lof_with_hyphen.py @@ -16,14 +16,12 @@ class TestClass(): test_out = configdir + '/test_output_lof/' options_vcf = {'vcf_file': test_dir + 'input.vcf.gz', - 'vcf_filter': ['PASS'], 'lof_genes': test_dir + 'lof_genes_v1.0.txt', 'mutations': test_dir + 'driver_mutations_sorted.tsv.gz', - 'lof_type': ["stop_lost","start_lost","ess_splice","frameshift","nonsense"], + 'vcf_filters': test_dir + 'filters.json', 'header_line': test_dir + 'info.header', 'outdir': test_dir + "/tmpout", 'keepTmp': False, - 'germline_tag': 'NPGL', 'normal_panel': None } @@ -34,9 +32,9 @@ class TestClass(): }} file_dict = {'input_status': {'mutations': True, 'lof_genes': True, 'normal_panel': False, 'vcf_file': True}} - lof_type = { - 'lof_type': 'INFO/VC="stop_lost" || INFO/VC="start_lost" || INFO/VC="ess_splice" || INFO/VC="frameshift" || INFO/VC="nonsense"'} - my_filter = {'format_filter': 'FILTER="PASS"'} + info_filter = "INFO/VC=\"stop_lost,start_lost,ess_splice,frameshift,nonsense\"" + format_filter = "FORMAT/VAF[*] > 0.15" + filters_filter = "FILTER=\"PASS\"" #organoid check muts_vcf = f"{test_out}/input_muts.vcf.gz" lof_vcf = f"{test_out}/input_genes_lof.vcf.gz" @@ -56,15 +54,25 @@ def test_matched_file_input(self): f = self.my_formatter assert file_dict == f.format(['input_status']),'test_file_input test OK' - def test_matched_lof_format(self): - lof_type=self.lof_type + + def test_celline_info_filter(self): + f = self.my_formatter + vcf_filters = f.format(['vcf_filters']) + vcf_filter_params = vcf_filters.get('vcf_filters', None) + assert self.info_filter == vcf_filter_params['INFO'],'test_INFO test OK' + + def test_celline_format_filter(self): f = self.my_formatter - assert lof_type == f.format(['lof_type']),'test_lof_format test OK' + vcf_filters = f.format(['vcf_filters']) + vcf_filter_params = vcf_filters.get('vcf_filters', None) + assert self.format_filter == vcf_filter_params['FORMAT'],'test_FORMAT test OK' - def test_matched_filter_format(self): - my_filter=self.my_filter + def test_celline_filter_filters(self): f = self.my_formatter - assert my_filter == f.format(['format_filter']),'test_filter_format test OK' + vcf_filters = f.format(['vcf_filters']) + vcf_filter_params = vcf_filters.get('vcf_filters', None) + assert self.filters_filter == vcf_filter_params['FILTER'],'test_FILTER test OK' + def chek_matched_outdir(slef): self.test_dir + 'tmpout' == self.outdir_path diff --git a/tests/test_matched_vcf_input.py b/tests/test_matched_vcf_input.py index 1d38ad8..c392fae 100755 --- a/tests/test_matched_vcf_input.py +++ b/tests/test_matched_vcf_input.py @@ -16,14 +16,12 @@ class TestClass(): test_out = configdir + '/test_output/' options_vcf = {'vcf_file': test_dir + 'input.vcf.gz', - 'vcf_filter': ['PASS'], 'lof_genes': test_dir + 'lof_genes_v1.0.txt', 'mutations': test_dir + 'driver_mutations_sorted.tsv.gz', - 'lof_type': ["stop_lost","start_lost","ess_splice","frameshift","nonsense"], + 'vcf_filters': test_dir + 'filters.json', 'header_line': test_dir + 'info.header', 'outdir': test_dir + "/tmpout", 'keepTmp': False, - 'germline_tag': 'NPGL', 'normal_panel': None } @@ -34,13 +32,13 @@ class TestClass(): }} file_dict = {'input_status': {'mutations': True, 'lof_genes': True, 'normal_panel': False, 'vcf_file': True}} - lof_type = { - 'lof_type': 'INFO/VC="stop_lost" || INFO/VC="start_lost" || INFO/VC="ess_splice" || INFO/VC="frameshift" || INFO/VC="nonsense"'} - my_filter = {'format_filter': 'FILTER="PASS"'} + info_filter = "INFO/VC=\"stop_lost,start_lost,ess_splice,frameshift,nonsense\"" + format_filter = "FORMAT/VAF[*] > 0.15" + filters_filter = "FILTER=\"PASS\"" #organoid check - muts_vcf = f"{test_out}/input.muts.vcf.gz" - lof_vcf = f"{test_out}/input.genes.lof.vcf.gz" - drv_vcf = f"{test_out}/input.drv.vcf.gz" + muts_vcf = f"{test_out}/input_muts.vcf.gz" + lof_vcf = f"{test_out}/input_genes_lof.vcf.gz" + drv_vcf = f"{test_out}/input_drv.vcf.gz" my_formatter=formatter.IO_Formatter(**options_vcf) outdir_path=my_formatter.format(['outdir']) @@ -56,15 +54,24 @@ def test_matched_file_input(self): f = self.my_formatter assert file_dict == f.format(['input_status']),'test_file_input test OK' - def test_matched_lof_format(self): - lof_type=self.lof_type + def test_celline_info_filter(self): f = self.my_formatter - assert lof_type == f.format(['lof_type']),'test_lof_format test OK' + vcf_filters = f.format(['vcf_filters']) + vcf_filter_params = vcf_filters.get('vcf_filters', None) + assert self.info_filter == vcf_filter_params['INFO'],'test_INFO test OK' - def test_matched_filter_format(self): - my_filter=self.my_filter + def test_celline_format_filter(self): f = self.my_formatter - assert my_filter == f.format(['format_filter']),'test_filter_format test OK' + vcf_filters = f.format(['vcf_filters']) + vcf_filter_params = vcf_filters.get('vcf_filters', None) + assert self.format_filter == vcf_filter_params['FORMAT'],'test_FORMAT test OK' + + def test_celline_filter_filters(self): + f = self.my_formatter + vcf_filters = f.format(['vcf_filters']) + vcf_filter_params = vcf_filters.get('vcf_filters', None) + assert self.filters_filter == vcf_filter_params['FILTER'],'test_FILTER test OK' + def chek_matched_outdir(slef): self.test_dir + 'tmpout' == self.outdir_path diff --git a/tests/test_no_vaf_vcf.py b/tests/test_no_vaf_vcf.py new file mode 100755 index 0000000..4921af9 --- /dev/null +++ b/tests/test_no_vaf_vcf.py @@ -0,0 +1,100 @@ +import annotate.io_formatter as formatter +import annotate.vcf_annotator as annotator +import pytest +import os +import filecmp +import unittest.mock + +''' +written test to check codebase integrity +of annotateVcf +''' + +class TestClass(): + configdir = os.path.join(os.path.dirname(os.path.realpath(__file__))) + test_dir = configdir + '/test_input_no_vaf_vcf/' + test_out = configdir + '/test_output_no_vaf_vcf/' + + options_vcf = {'vcf_file': test_dir + 'input.vcf.gz', + 'lof_genes': test_dir + 'lof_genes_v1.0.txt', + 'mutations': test_dir + 'driver_mutations_sorted.tsv.gz', + 'vcf_filters': test_dir + 'filters.json', + 'header_line': test_dir + 'info.header', + 'outdir': test_dir + "/tmpout", + 'keepTmp': False, + 'normal_panel': None + } + + + file_metadata = {'vcf_file': {'name': 'input', + 'ext': '.vcf.gz', + 'path': test_dir + 'input.vcf.gz' + }} + file_dict = {'input_status': {'mutations': True, 'lof_genes': True, + 'normal_panel': False, 'vcf_file': True}} + info_filter = "INFO/VC=\"stop_lost,start_lost,ess_splice,frameshift,nonsense\"" + format_filter = None + filters_filter = "FILTER=\"PASS\"" + #organoid check + muts_vcf = f"{test_out}/input_muts.vcf.gz" + lof_vcf = f"{test_out}/input_genes_lof.vcf.gz" + drv_vcf = f"{test_out}/input_drv.vcf.gz" + + my_formatter=formatter.IO_Formatter(**options_vcf) + outdir_path=my_formatter.format(['outdir']) + + def test_no_VAF_vcf_input(self): + # check input type function + f = self.my_formatter + file_metadata = self.file_metadata + assert file_metadata == f.format(['vcf_file']),'test_vcf_input test OK' + + def test_matched_file_input(self): + file_dict=self.file_dict + f = self.my_formatter + assert file_dict == f.format(['input_status']),'test_file_input test OK' + + + def test_celline_info_filter(self): + f = self.my_formatter + vcf_filters = f.format(['vcf_filters']) + vcf_filter_params = vcf_filters.get('vcf_filters', None) + assert self.info_filter == vcf_filter_params['INFO'],'test_INFO test OK' + + def test_celline_format_filter(self): + f = self.my_formatter + vcf_filters = f.format(['vcf_filters']) + vcf_filter_params = vcf_filters.get('vcf_filters', None) + assert self.format_filter == vcf_filter_params['FORMAT'],'test_FORMAT test OK' + + def test_celline_filter_filters(self): + f = self.my_formatter + vcf_filters = f.format(['vcf_filters']) + vcf_filter_params = vcf_filters.get('vcf_filters', None) + assert self.filters_filter == vcf_filter_params['FILTER'],'test_FILTER test OK' + + def chek_matched_outdir(slef): + self.test_dir + 'tmpout' == self.outdir_path + + def test_no_VAF_vcf_formatter(self): + f = self.my_formatter + outdir_path = self.outdir_path + with formatter.tempdir(outdir_path['outdir']) as base_dir: + obs_muts_vcf = f"{base_dir}/input_muts.vcf.gz" + obs_lof_vcf = f"{base_dir}/input_genes_lof.vcf.gz" + obs_drv_vcf = f"{base_dir}/input_drv.vcf.gz" + + annotator.VcfAnnotator(f, base_dir) + + exp_muts_vcf_sub = annotator.unheader_vcf(self.muts_vcf, base_dir+'/exp_muts.vcf') + obs_muts_vcf_sub = annotator.unheader_vcf(obs_muts_vcf, base_dir+'/obs_muts.vcf') + assert filecmp.cmp(exp_muts_vcf_sub, obs_muts_vcf_sub, shallow=True), 'muts records in vcf files are identical OK' + + exp_lof_vcf_sub = annotator.unheader_vcf(self.lof_vcf, base_dir+'/exp_genes.lof.vcf') + obs_lof_vcf_sub = annotator.unheader_vcf(obs_lof_vcf, base_dir+'/obs_genes.lof.vcf') + assert filecmp.cmp(exp_lof_vcf_sub, obs_lof_vcf_sub, shallow=True), 'lof records in vcf files are identical OK' + + exp_drv_vcf_sub = annotator.unheader_vcf(self.drv_vcf, base_dir+'/exp_drv.vcf') + obs_drv_vcf_sub = annotator.unheader_vcf(obs_drv_vcf, base_dir+'/obs_drv.vcf') + assert filecmp.cmp(exp_drv_vcf_sub, obs_drv_vcf_sub, shallow=True), 'final drv records in vcf files are identical OK' + diff --git a/tests/test_output/celline_drv.vcf.gz b/tests/test_output/celline_drv.vcf.gz index 002bc8f395b74ceba27bd62a4db8dbecf64172b2..0170d1309f1bd6790ec990d7e0128bb43cbb6751 100644 GIT binary patch literal 6273 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 bhaG#T8!=Cfl>8aG8?!KwW?%+aC?Em=Y?#FR literal 1644 zcmb2|=3rp}f&Xj_PR>jW?o4lQ@6GQm6k-2xn~!bd3l+9bg;*Dli;i9swyabT(*HWC zE#PX0+0#W*nN|sgogO+z)Rf}b^toqC^!($HUhFdA!nZlbD?Da;)Z`V-_dmD&x#j-n zcH7Ud5B{F>GI!?n43ntk_jF%=$&TDr@~SrH#hF{Ohx`>e-I6XE$zU%+K1j z!;tNcRHv|hf7{xb=kLpYowWDi>TM^)OWgl%RNph@@AFxK{BwDC8{aQics0>EG5=iU z4y9MsZy#abG_zemM6` z_TQ*{h0m{EOK`l`>)P|~@`G<5T)u_hKX~v%-M#z2wEoxEWgjY^h3>yA)Aw{&xSwn6 z{{LssytaDveEx2w^{@YJ(XN^JIs0Av+J~pltX}s#Rq6TlVzV-D|2HNqp z=Ih!&KW{4jchAoMHFc}_*{5&zrhSVun!fpagZFKJx&iQzv3gFIR~Qe%93YNMA^qQvos>u=rJ)wpcgG`8o@0+gCGR&qE6 zsd({d7f(=l#Ww3J->&9$%d0a4f_|`BDzV!tHQCiyR6aN^eW>7ntAGc(Tc2b_+A3kV z@rl*1YMH;*C)3`Q?0h%p?DNFV?k|6oW`AA%^wxgAUA4w@cRxM(EIFL{9fK0K7>%psWJ-lxZPUC5LthIqb zdjq%h=LF`9e>VNxz++>!=X!*x(iS0 z-!2NCZ*nww?cEKb&-cE2zwe}Rdinne5OwySnI2EFk;UckgP;IsJ}}2MqFJANqn_iR zU!rRce9}44T-`BEK{$eKl5bX@r6TSKMRyFc%AfwbtFBL&@@mJHy!hFduYJpp|8(xA zy*)lHNZRecu_>=%3&7^^Z47VkZsa{=Ai{FNdquE9;01-$rYSrJlQ=XNEl71wJ1{Z1 zHOJwj-=_KdO6NUPSG{bD&jUNZ2b_C5^~=%k%GvXtKYh3P{L?8V_In@4?Ctxy_w3vM k={I%}>0lMlf6cew?VY86{qmK6t-CSH0ci$iaPP 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 literal 3199 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 SvR0@aGjOFDn8C>lL;wIASMg~8 literal 618 zcmb2|=3rp}f&Xj_PR>jWpBdiX-pI*hD8lyOiGaI6_R|ewM_%W;WM@lDXGd=@;BYTs z6fYEcKWXw|p9LRmD}Ek&>~B`lepau~i6iv(#_g*s-!FN4`RArLeWknBUb?yDN$sro zy=j(v*KYnD{cq)*;~!#=f1IG`IY|W#)gRR2`E59V?~LP0(eIAi%(l@kzFswBBDyj( zT_kWn&97nRd0jG_;Xea|Jer@kF}yu>kh8&ohvmQ=*BcETNy<%6Bir+}H#6{m7SMG} zSLAu4mh|p17ZKL|>GR#2+@o=|_Qbl`mr~FEy*s@kE&IJZhJT4L3gY)a?dk<<^)<0M zdlAFiy9arj97I?y2(B-B?3MKB;E{rD9Jdz8B9|r+?eM|3CfL3!>folV5K4cdsxl TZO3Cm?U*4e&A<#!Tp$7fIo$J7 diff --git a/tests/test_output/celline_muts.vcf.gz b/tests/test_output/celline_muts.vcf.gz index 660823a4d35eaf7e3edd3f637e91a2b8ed6bf68f..2dd9f039ee6164df4d149fe63cef70e088add96c 100644 GIT binary patch literal 3524 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 literal 3273 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 literal 780 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 c1ONa4009360763o02=@U000000000002>isg8%>k literal 0 HcmV?d00001 diff --git a/tests/test_output/celline_np_filtered.vcf.gz.tbi b/tests/test_output/celline_np_filtered.vcf.gz.tbi new file mode 100644 index 0000000000000000000000000000000000000000..e1fff83cf05a7ea28125f966887e9cc5fc277df6 GIT binary patch literal 1618 zcmb2|=3rp}f&Xj_PR>jW#!PQ-pYQf96k+&azBo;L^Ca2B9)Zo7ZkZ>RtXw!zO=@Lk zhC$uALn@w|CiL=l>b%uBbf{m5J5|wa^QO<@KZG|Jyq{Y-ncenxe@o6;-!Fdu zeP8wd{I7gG{bePlQoZL|_bTV+*}i<$TKntC&$DL_Uwf9gK=j+zzQ1c9CnVo>y7*M~ z;)A;-JTYZTZ_fPbpV-mvcKG|ze!JT90mCe(3S+`EjLp_vGu&*qPRq zXzZEz)%4%9nFZ(H&UmtXtDyZJfpz(R_VqsfVRimbMTPd~tM5PF++h9LbpP(^!`3s` z?^?h4;odXhH8pxMQ-4auf1bPM=kwAv77~7``yPGl{80C7b^h7U5zkiVy$kq}kox5H zzuJ3}=Td5~)>_Eeo%$X3{iAn&h2HDc>#~h%W_=C4zFD!xOyZ~2{i6>H%zj__5gYvQ z^PAwu>+`wdQ}#WYx9>yh)$}{NRcogH?CSsW{O9LA)BD_F&VP=1_S)*z=X~dh>tEOH zwXT``clGD*DHNt$wNpnjrbyn52I!R~z02GW=&?kVi{1s*G<> z`Fk-HN*sTvxv*AtVQRU=qK58M`6wJKDwiO+Mmv!nRsDQ_TCYkzCc zi3Q4w9(-<{&ThBoVuh#7L{#@rQaQ=Hz1#=G#V2#Wd^fpabNcy%n!U$P7G2ZZ>9srj zr_GMY^>>qQ{k{ED=ib?EHT!4GZGUj@am_rN)ZhQ-_vzowYEWXUyb zp|p+R?I}mjh5!NAix>6M44S_QxTIk0pY`8W=UM)$ zc7_Ch-5p_8jzzPvIeP~zv{^3vy|;JPK^-+AM}ua|GbvomKT;hpvK^9+kUQfSb91=@ z+$xe7KZR#kxyuKxdORm~_mac2{^!R(n!C2zj7Z<_v1R1>`Cvabhi_qcdv_yei-Q2` z1xtN1>m42&xVjCtNC`XY9K0g8)-hFdEAzzfiQf$m`|t`!-_paA!%trS9UE`!ma@81 zzIxXGZ|Q~pAG?3VJX@w1Idx_ImE-^B%->9;b5%U;4u1X?cZzAvhb+a=-IyhSGy^lZ H5&;na)fUV# literal 0 HcmV?d00001 diff --git a/tests/test_output/input.drv.vcf.gz b/tests/test_output/input.drv.vcf.gz deleted file mode 100644 index e6089bdefc78fa390f23210c965519e826992142..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5391 zcmV+q74YgGiwFb&00000{{{d;LjnNu6zyC4bK6Fe{+anJa7ooB*^nUSg$HGNi>54E z7g1tJSlMK2iv@xpg+0EO0Ok0~fBf~lKmZg)Quf(aYW2jkr+fOF?yqNt-+ecUXVGN2 zo(F03wtaC=P4vxo-(6f@`LFxU7nkSFUTZL@o<~Wzj#p{CTr|IJ&1MF?l}78tSOrNE zjlX?aeCOPMQ+(wrN)jWz3l;{d6Jx$fgGFitvspBY660O8j*OR012bb3B$4s&O)!ho z_hq5|UQuRyc^|EVX=J<$5@VJ%;2ObVY%G=!wlZ06;AXslN8u!1C#iu!q2s`@o16;>r@Di{z#+6SU)gdf>6<{62l)Bf@aZTn%@0bHlll7 zG@_dc0C|i{D5(wi(yWJ2v4@K0fCt07h?@@1oRu5y`K5-7&A@+SxqzR@7{}`<Y${Pc=B=>5o<6Q{hk5vjw-7Jh#)sZwBYb^}t;`z0;uLhL59F zdIu&<`LieVMd$Lk_NLGUvl#j$hG;Q6rG?wK-91g*L1#b|Cv3c{b-Yx)PpCNi`n~3 z%>q_-<6|kx`e4gerjXwCp6Z1YGa)zH0D3GG5_?&`k&Tk>j*|g676g3)B5Z{W1rS%2O9gdK6|{e zUbocN#cUa*rBInmH-bv32q0u#USHfudfGciYk!$SJUQoiqWF5Z{Q3im3^sGFK|8p8 z-G#)JEFs83?wzU_!Xwfs7{!p|;wUMK@0>0^OE$;I_d7=fyY3Q_h!ir*iG>6d@*aga z|6aFVl758ty-Yd5s^(8^YjBJunA3|Vw{W^OAJyLZK(}Y^x9I%UV6ieT&v|SAvsk`c z7=!CxN$=}SaZ4*6O!v?Vng4+`8{-kYXmGCh{vcz?+G-8@=ZAZ#1!G{68WT_h*xon> z)c%kwl#F2fuT27s5sHafJYCE=Q%FKy9jSsLF_OFGJFU}wu#UG0zNk?9>X=aRfI
    5OHl{ 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 diff --git a/tests/test_output/input.drv.vcf.gz.tbi b/tests/test_output/input.drv.vcf.gz.tbi deleted file mode 100644 index a4607b0c0787b054b2cb3ddaaafeaa5a50630bf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1783 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 C|5hac diff --git a/tests/test_output/input.genes.lof.vcf.gz.tbi b/tests/test_output/input.genes.lof.vcf.gz.tbi deleted file mode 100644 index 265ca37cba8c7436453a39be8182a064d9cb264b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmb2|=3rp}f&Xj_PR>jW9~j==*~ojyfrm99{?rD>MGgVYE)!W7G|l48SRvV}s4=5m zQlf$LL}90rkz-f-$+}7Bw;!^9-@me}${4teS2DU+qBYb|MT;U=EzNZ`edWl zymwE3SImF3f8N&u=SeD__)zfntm@sGk*jOpWgS_4Zu9w6+4skHu6h5Hpho=0s;Iva z@5pCTVffF$Adlu@Cx*929XS~oI9Loe$5a$^HL0fj*4b*cE%!DGdV798qpttY9CtlT MBcvIa!9fTj0Lub_%>V!Z diff --git a/tests/test_output/input.muts.vcf.gz b/tests/test_output/input.muts.vcf.gz deleted file mode 100644 index f02b6db949edfae59cd003713942bb8c7d904c1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3113 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 a00000{{{d;LjnLB00RI30000000025Fl8tJ literal 0 HcmV?d00001 diff --git a/tests/test_output/input_drv.vcf.gz.tbi b/tests/test_output/input_drv.vcf.gz.tbi new file mode 100644 index 0000000000000000000000000000000000000000..c04143c1ce07939b66b19f0dc88fc92c30d4a9f4 GIT binary patch literal 1734 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$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 literal 0 HcmV?d00001 diff --git a/tests/test_output/input_genes_lof.vcf.gz b/tests/test_output/input_genes_lof.vcf.gz new file mode 100644 index 0000000000000000000000000000000000000000..bed1231016314583e444d2614e2fc1fc3eacf508 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/tests/test_output/input_genes_lof.vcf.gz.tbi b/tests/test_output/input_genes_lof.vcf.gz.tbi new file mode 100644 index 0000000000000000000000000000000000000000..d7bcf5b7ba9cb5cc0b79adbc73c9a2b5e31a9622 GIT binary patch literal 339 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 Y#N8jdpJH!`X}-Z6u99Y8hL02h0O2v`B>(^b diff --git a/tests/test_output_lof/input_drv.vcf.gz b/tests/test_output_lof/input_drv.vcf.gz index ea8ae6caa91730c95f9c1aaedae2e108e8673b7c..fd52a5b61a2e1e0f7df6912aea9929e626fe8245 100644 GIT binary patch literal 6015 zcmV-_7l7y=iwFb&00000{{{d;LjnL|7u;HVbJ|D}|C{|3b57N6a^a!T3lNd7Scr+M zjLibUx0gy$gBU=2LQ?dwmEti$SA@j_s=;d7NeP8zk7OGdi82$JACB@TNatK z-o>3-mw$Qn>f-Wh`hIM_yX>2z?qpK!^Uw-xKe9d7JnK3RfmIO?LgKS9jSQGFS z54dY_bIo0E%j+u!qoEfEFl4R$8C%tT2ZsdI{0`P5o>tfE6o&gO;^s8wWWs$yD3Pfl z$%fh@vLs7z-}2nZUJIVAO+c$idAo2P%hEYUp#z=Aro^ z-ZJ<68G>AlAk(&@$?Y-(r3itxTXI{|v{D4M7(tS$3J_%oS|LJ~nuQ2jTTuZ)DMM%#BB&ZwTDqc_A+!q-l$O#~o3vSmK&4^`rP*#C;Zl?qLugV< z*N=dZzr%&x)D)@I9JJUksjBFzBDYE*iXBsGN~+SNZQId7dob@H>GyF zRT`mkpbMVvxF|G5@hW%gg*;eXv%U^rKJGFLKbvQKj4m+*B3WpZFe&4 zSFhvkf(It8P9J=3UN|0$avLKFy;Ve34qKBgU)szi%(2%l-*Pu1q2&dfcqOs)h_89DPk!n}%pra5N1NR8Nw&P6 zET2RHP}*PJ|9#^6G@fr?z_YMiJhU;jvC3Z-H*d?Fdf3=)=2{YjXi5|{WOXA}3&Pg#o=NRez2qRg_&KPpg z&4k0foRR*IFp~Nu<_nSZKb=d-=JA=Vyx2X3pV7}y%t)M%g~MHlBl8K2Oip8jfju6= zlT0!DS+-anv<0*qb_xvrHI~rK2_>#`{Z$373C;MTibWa;)(A-6uFrEA2|hZh9!{iqb@VK zKn+5oJrYT!eh>TlJLr!U5;(eNcW`me!G{S4DQU6&xbO=Wj{*j&f9-=a+7X8A6Aj=m z@E@eJ479EKrb=+dR>+&c?%5Irb9V9cJprc&dCVLJ{$@-r?SNYeN6A5lyr#htXL$EX zG2p>z13W*I=Z#k3fSA%tHwTB<^-3cK7q)Zl6xg`FI~X|8>FD6J}^`x99h120`0K zP}@=yYTN99fgHFGDTO?gTm~hZPhc`ZglP`qDP?#{hWGYqw!63)54+Q38-M?THbRp6 zEcCa;rr<|@W|`Mm&4lp+YZqrXEZQltgEl8n(16n~-{g6?=>F>%9>#)tYH6h36$R8D z7gZd(XOP&Q`0`Uyz0*kbP9QZnjnv=-Qq$8&OG*i5AsMBuw1T$Y6X2VR$q`50o9yhlA8`!* ze+4C}h+*6HA^F}}E0RPlOySqQ(38|kM0N*Dy>t2+1 zr84*LChmU`u%z^Q&9n0z+b-;NjGd7rsX{pe+s3ohc-ueH$J0m7|I>iGJw4!p9D@QH z!UEcN7Svx?-g=Htx23j3ffNP}?8KAgk@>sbGxPImc54Payb}-1AIC;4U|aKDwDnE+ z+_BaCb~?GN^=__i=8~k%*}MbY}#JkZ+&;rvdnL+Mgq|EIbFLz+rURjUx{mI)7@JZ{#3W*vm8x~{oTdQtW5r72Tc zufkIoQwQ`a%(vJbhbJs^tIn`JHeUvJxE={ac?iKh*&n0e%DExM@j&JKW9or1?ZB9h zW7Wv)k7v~du(x2_D*x)6ZMljTXF^d+(~IGq1-1gMpnIL8B`4kC=<0paGeLj3+V_ZC z8wvpIJf2l2qK>&{Tb@@@4rlstc=K_btG$xr&390QmJTAxFGND!9t2We2qY|W5J`O@ zl3IwQy%0$&MABb~q-RJAYZZB(13_Z*`&s%*3$0W6?IsExdr`yd{JfsG1^-`~cui_! zI25kukcjKi*N8M6cu*Jc25^JLIi<~p#lmeP;%qBZtr0F%r2z|=>)FeB(&V$l#_eFz z@G;UF`+kaFAx|`NUe^Gh&W|0+8*`X9PvaZnvqN@o=?qyw6p2u3sPLkWf^X^2r*g8S z^Ua^=1bQMhU9GKGy3STj<%x#yPD`t;slL)>OFM*<=`8zBYF`O}~11p^y)2$F4cJqOMfXXhnS7kWamWH$Njb$Z-6!(PrAc|(5v zmAod&uGE0d_|xA%lXEyyQ|--fq*jBz=9WN!2>nH^Bm8OVo#ih zus=aIkHR}p5vgrR!(D}qI0TOIY91yomWUlTGOj?S^EDiG8g<%Byc+ z`vcw7EYkZhz8O|8@W1IzHM3EKnUw0?U5JcwYi z=ooV)Gcz`lZ=iY6Nvh%5&|!WE1HrbojQyku74a~drx6I7bKthWJOp3=Y6xARO~OVUWt`W>UHASH|xzD&4DT<&Tfut4iWz6|_+$@vTZODO3(5 zh060SqjDhmR}Q4{%7KJjIgna^!53#LRHyJJo-DO0^-8bOh5s=cD)=@Aycwo<@ZAVg zs<)dRd?~?{I{lHUwL60m7*gXkso5FAW#_tU>YeMJsdcXVcs0VS30}?c`($ADdW~+k z*O`n=xvs)Otusvqd%eySA!a=j>a}?YjU0=2U|F}{9Zo0ew_dM5p|Y&h>9?RRE2{KX zTc5|@tU85PoZf1K^XWIg{*Q0a8I8D&HPsTbiUEs^tS>gV>X z8}sz|W?+Gygl9JNZE|Bs_(LTly;Q&nl1q5oO2JDiX2{v7F1NEwt*LirQ*#n8I|TRgSL_h235s{VkokqX!zH_uBX<-d2NF#;{qhPWK$qf=?uwOxG5PvWypF+SzG&TCZJk57FU zpL#An2ZKg;Fu?d!M11NPpE%eZ6vXG%pQEep6-}I2lmFY@)%3P?T+y}qQySQv?+*c8 zFtj7ImK{fWD4JDZWKnd{rhvN%kRPA>J@Y6E(K8KL&j4-H;^n*%bq~+E=iZ?LC2EYlnifpGi>5Nl>7LnGXmUzk}sul>I1kvWj|pQ z(?8Pvq{&};)zC-?l7;a(u$~9BcMbJ9acGl(N>_Fm1y2f!cz6N2A`jmdPgC;cTP9Wwd`s3Ju*s+Xsn7c%iogS^qRULCT zG$kQ8@1Q9z>tv0D|07Wv0m9h~fufT|lRgJI)er8KC8H8x&^sAdgf|a)A80vnq+OGq z;+axC^1V=M&E4=7uHbw^td-HVJPlo+-MZFew!|K(G2Le*~ed?}o=pvcr@3V1U(In;XmzmOQ>$Qcf3PjDlDJ%#O%;JufJt6&s4bPjSK%h@%^ng&t&K-@sPKqaq4^t_rCmgX)Z) zd~%Qv2Nmyf=G<98#xCg^=_-`b@J_1DHaLIn|TGeQ$l31vUt zNfcsa;RvrlGY#v%dvv?4uRuWjj$Y-idtxE>98T6uawy+<@9gI+W=2g7J! z)DtNuD-Pq>CPicxsKUF*jkaiYGfLsK3^c52cjpSf$7s(n?RB8Nu)XY~dXa6Jld^9` ze9JNTZz+?ZM)sMVixw&~Nhqx|mHg0p{qj^Y)8D>!etFqus*>-dgttjkN-1RZTS7K8 zvFMX2z^uUWlI@^V5fhrb)dj8Fye4@PHVj$dqa|Jv@K8io*5YmYNz;~Ar5+3RPNBGj zox!G(idDdhz>IjkPjrZ7V;%IGo0N@$vf66Rt@*R1+j%l96;TFfxB+EugSdn;O=~xA zrJK}laEbO1XzwUjb5D_TwSY^@?qG(~gzOEzhPUhd<&$*8;o+w%d;3$@H#-BF@rPswHJdWVSq!%t~T1OItMOvH+w^ zau(t;{MsUQT<@nSJHm`8=W7I4k7Zd;?Sq)`sU0X?-<0gWe6~&~+tt1=rm`7ngsz0Q z6_s%Ya@t}FV##OS0W8zRsie55iO%>kRS6#+zzJS7AR8133sJEU;4HNo|Bg6^;q8ef z@e+!JXfa0?j>&F1>^}B+?bL&K>lrSF4h2O;Yipa8>)z z!w<|NO^-HNHDjPDNAT^3-;zb$cICB@h9Mey@-yOmfDeDku5N%_O>CnyfLz`LIb}4L z)tOu#0o?oJi{rT!}1VLndlwcNEf4`_#M(6}jvI%p2i1TQ_XblgH<)a35eLUY>*jNlZ*9}w7b z{I1>xu4iIap;f))rjI2`a>55mJ%i+&%CMd79ATxe{H0Zy=&O;RCwfsV^{Bjn{y&I7 z(~G{=W^jmR=`(>eQg_v=vSN@Ri$uMWNRiW^NG=1h)&PfB#*<*IL`#G0dYO39k7cRO z!$M1W3C0tw1tDA1zo?^!FjvuTy(GZ3QJ97b(18qzMc&Evg|Y<7(z&Hl)ZlrbKE_Chy3l zS67l{Ali)<3Lo2ca&->vH5wUpvoow_ro^v{R2=dQ&-6nM8yJig&%Rs}R60Irs;T@{*Ng_^lY zo+Kb3E3Sj9lWG+C$L1ndj(*S{boJ_LQL$kVc^xCOs$V}1VCAcnDvX20O|@7YE`Hiv zi{&vP`FJh%ZFoCsG5A16A2mazunA%sglCYQ6RKd}``Gg5sl=kfinJJ^rsHk)JDd^> zcX>NCdCkP|>#B&@gVPq7gD0S<6f1F#vyu%fqkw_YYPPbjv#f@4JQW?-!d%r^V(;^K z7PY?GnIIxR=FC7E*xBYLN71*d425`$E^X*Pm;MPujnsc8X-MNGqy2nV8{WS?yppMT zc-0-Za9vC?M3H)7nRQIP|M-k_)g^oY@8B;o){140Xo!&o(}pzaeh9$2z5W~f{m{F9}fR`_rX z@}Aik$xqU+XeSSzP%+qMji=fRLCTz0`M6KP_Z2lzCLJkYE~sKNJ1DZXEd4%$V!ukc z1rMJ?zF`_9%TXKdhHaV#(P5A=3oN=@$LIJa$2m^@-jf$Mjx9V7lU?W+|hBd znGe6N@9a|RQbk-BEgIsOZv?2N;otMWbi9pZCY425PNo1gW?4sSC@RZrxU0B2n5rti zITSsNY1FcS#VMgq+u;^UAhsSE{QRsb9yK!Q_3J=8{MG}J!bO&Bx(hmGFi!8pHs(nF z33DeIs2ZdxVDs=)$1*TN(XsSTMd;yxgCt{knb?xPcsO6|{q5ayUv7CIBPYjZ1hg!9 zAS2Yu^B8x};k3$xzCCUGB52wCh`E!FM*iKTI+b$-V(4igU{rP5aE6d&R3iq_fNPnJ z0c8_Mie*zIx#37c)I7gyp001A02m}BC000301^_}s0stET0{{R3000000075Ji-Q0F literal 5281 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 literal 1779 zcmb2|=3rp}f&Xj_PR>jWs*G>XZPaUV6kz{gD=OFdvovuPL=(>Wpy*_%hW#?Y@U-dJ;>~s^~-C;H}=ZCKm98=>hzjvmAcP$ zt#h|7y}UV0Sw1TE%C88sHWKP@270`n55!KJM>R_ zKjXYe$<+-185rczLg_Wb+p~szj*cR%7u+?rM9uAUQk^*ekB5ti)!vBKP>r<>x)D95 zFLDm{Pv?y4bUWv*rv5(dozEM!k1|-?`=mT?Ik6r&S-;6#8H=YsmB+2xa(hm+?8Ph_ z9pl~WFBRK=cAWdWZeE_-%;~i|Jgy(__;&m6CqH$&=TWKqznt2?{NrkGWVaZ}{kOiS zht0237~URr*sC`R1xJ4yyI%AE9{(ciK428I+^Ba(aX1VJ^y8P`*(i+J2&JcK?>VmZtE|ZJJ=ll2^docIS)AiW6IZof8~MZ z8_l^KjshD+-%m>rO%ne0_##(N-|1O$p#Shs@z$>mF?ETXWC4Toqf+LGoqfpD%U$ z>h{jtdH!=HSFwJ^-0OQ6d|&rw0!qliY!a?vUV61KADfqX7~kIA%Xuh3g!RGdvZmIA z*XMbfyd%0enk<@@GI!`Dyj0)q39d7H|2iE0ZJ%=#wrrT+od$(;;KRmO!*Kt~7->0hCztiI0XN4i_JbCR0 z+Z8^JIoJZD6;gaKaIkFf&hmTA*`%8CTPHS>$P$1gW%2gR>^BbHU-<~Lz?NoU2G?>R F0sw!N4T=B& diff --git a/tests/test_output_lof/input_genes.vcf b/tests/test_output_lof/input_genes.vcf deleted file mode 100644 index 33af928..0000000 --- a/tests/test_output_lof/input_genes.vcf +++ /dev/null @@ -1,96 +0,0 @@ -##fileformat=VCFv4.1 -##FILTER= -##FILTER== 25 base quality"> -##FILTER= -##FILTER== 15 base quality found in the matched normal"> -##FILTER= -##FILTER= -##FILTER= -##FILTER= -##FILTER= -##FILTER= -##FILTER= -##FILTER== 3 mutant allele present in at least 1 percent unmatched normal samples in the unmatched VCF."> -##FILTER== 10 on each strand but mutant allele is only present on one strand"> -##FILTER= -##FORMAT= -##FORMAT= -##FORMAT= -##FORMAT= -##FORMAT= -##FORMAT= -##FORMAT= -##FORMAT= -##FORMAT= -##FORMAT= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##INFO= -##SAMPLE= -##SAMPLE= -##cavemanVersion=1.13.14 -##cgpAnalysisProc_20190930.1=5346618 -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##contig= -##fileDate=20190924 -##reference=/lustre/scratch119/casm/team78pipelines/canpipe/live/data/analysis/2126_2577635/CaVEMan/genome.fa -##source_20190930.1=AnnotateVcf.pl -##vcfProcessLog=,InputVCFSource=,InputVCFParam=> -##vcfProcessLog_20190930.1=,InputVCFSource=,InputVCFVer=<1.8.8>,InputVCFParam=> -##vcfProcessLog_20190930.2=,InputVCFSource=,InputVCFVer=<3.5.0>,InputVCFParam=> -##INFO= -##bcftools_annotateVersion=1.10.2-64-gf66af73+htslib-1.10.2-85-g16f62c5 -##bcftools_annotateCommand=annotate -a /nfs/users/nfs_s/sb43/scripts/annotatevcf_github/tests/tmpout/tmp_jp6ts6o/genome.tab.gz -i '(FILTER="PASS") && (INFO/VC="stop_lost" || INFO/VC="start_lost" || INFO/VC="ess_splice" || INFO/VC="frameshift" || INFO/VC="nonsense")' -h /nfs/users/nfs_s/sb43/scripts/annotatevcf_github/tests/test_input_lof/info.header -c CHROM,FROM,TO,INFO/DRV /nfs/users/nfs_s/sb43/scripts/annotatevcf_github/tests/test_input_lof/input.vcf.gz; Date=Sat Aug 29 15:57:54 2020 -#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NORMAL TUMOUR -chr1 161193208 77c913be-df72-11e9-aae8-d600ec72acc9 C A . PASS DP=63;MP=1;GP=1.8e-07;TG=CC/AACCC;TP=0.89;SG=CC/AAACC;SP=0.091;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=ADAMTS4|CCDS1223.1|r.2340+5g>u|c.1911+5G>T|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;VC=ess_splice;VW=ADAMTS4|CCDS1223.1|r.2340+5g>u|c.1911+5G>T|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:12:0:0:0:15:0:0:0 0|1:9:12:0:0:5:9:1:0:0.39 -chr1 219210652 77cc542a-df72-11e9-aae8-d600ec72acc9 G A . PASS DP=91;MP=1;GP=3e-13;TG=GG/AAAAG;TP=0.64;SG=GG/AAAGG;SP=0.36;ASRD=0.92;CLPM=0;ASMD=139.5;VT=Sub;VD=LYPLAL1|CCDS1522.1|r.524+5g>a|c.477+5G>A|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;VC=ess_splice;VW=LYPLAL1|CCDS1522.1|r.524+5g>a|c.477+5G>A|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:0:26:0:0:0:21:0:0 0|1:17:1:7:0:13:0:6:0:0.68 -chr1 247934046 77ce1eae-df72-11e9-aae8-d600ec72acc9 C A . PASS DP=76;MP=1;GP=1.5e-13;TG=CC/AACCC;TP=0.7;SG=CC/ACCCC;SP=0.28;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=OR2AJ1|ENST00000318244|r.580c>a|c.278C>A|p.S93*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=OR2AJ1|ENST00000318244|r.580c>a|c.278C>A|p.S93*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:22:0:0:0:26:0:0:0 0|1:2:9:0:0:7:10:0:0:0.32 -chr10 113160663 77deb084-df72-11e9-aae8-d600ec72acc9 C T . PASS DP=72;MP=1;GP=1.1e-09;TG=CC/CCTTT;TP=0.54;SG=CC/CCCTT;SP=0.46;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=TCF7L2|CCDS53577.1|r.1713c>u|c.1363C>T|p.R455*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=TCF7L2|CCDS53577.1|r.1713c>u|c.1363C>T|p.R455*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:17:0:0:1:17:0:0:0 0|1:0:13:0:8:0:6:0:10:0.49 -chr13 43888891 780b9c20-df72-11e9-aae8-d600ec72acc9 G T . PASS DP=89;MP=1;GP=1.9e-12;TG=GG/GGGGT;TP=1;SG=GG/GGGTT;SP=0.0017;ASRD=0.93;CLPM=0;ASMD=141;VT=Sub;VD=LACC1|CCDS9391.1|r.1527g>u|c.1042G>T|p.E348*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=LACC1|CCDS9391.1|r.1527g>u|c.1042G>T|p.E348*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:0:23:0:0:0:21:0:0 0|1:0:0:22:3:0:0:17:3:0.13 -chr15 44715437 781d409c-df72-11e9-aae8-d600ec72acc9 C T . PASS DP=77;MP=1;GP=6.4e-14;TG=CC/TTTTT;TP=0.96;SG=CC/CTTTT;SP=0.036;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=B2M-TEST|CCDS10113.1|r.152c>u|c.82C>T|p.Q28*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=B2M|CCDS10113.1|r.152c>u|c.82C>T|p.Q28*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:33:0:0:0:16:1:0:0 1|1:0:0:0:7:0:1:0:19:0.96 -chr18 56686854 783e6100-df72-11e9-aae8-d600ec72acc9 G T . PASS DP=69;MP=1;GP=1.7e-13;TG=GG/GGTTT;TP=0.75;SG=GG/GTTTT;SP=0.13;ASRD=0.87;CLPM=0;ASMD=131;VT=Sub;VD=WDR7|CCDS11962.1|r.809-1g>u|c.598-1G>T|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;VC=ess_splice;VW=WDR7|CCDS11962.1|r.809-1g>u|c.598-1G>T|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:0:29:0:0:0:19:0:0 0|1:0:0:6:7:1:0:2:5:0.57 -chr19 45821379 784421ee-df72-11e9-aae8-d600ec72acc9 C A . PASS DP=51;MP=1;GP=2.8e-06;TG=CC/AAACC;TP=0.85;SG=CC/AAAAC;SP=0.1;ASRD=0.93;CLPM=0;ASMD=141;VT=Sub;VD=SYMPK|CCDS12676.2|r.3138+5g>u|c.2893+5G>T|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;VC=ess_splice;VW=SYMPK|CCDS12676.2|r.3138+5g>u|c.2893+5G>T|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:14:0:0:0:9:0:0:0 0|1:8:5:0:0:9:6:0:0:0.61 -chr2 1453776 78468510-df72-11e9-aae8-d600ec72acc9 C T . PASS DP=71;MP=1;GP=8.3e-12;TG=CC/CCCTT;TP=0.68;SG=CC/CCTTT;SP=0.31;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=TPO|CCDS1643.1|r.656c>u|c.565C>T|p.R189*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=TPO|CCDS1643.1|r.656c>u|c.565C>T|p.R189*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:25:0:0:0:17:0:0:0 0|1:0:9:0:6:0:7:0:7:0.45 -chr2 96610725 785c6560-df72-11e9-aae8-d600ec72acc9 C T . PASS DP=81;MP=0.88;GP=2.5e-09;TG=CC/CCCCT;TP=0.88;SG=CC/CCCCC;SP=0.12;ASRD=0.93;CLPM=0;ASMD=141;VT=Sub;VD=KANSL3|CCDS46361.1|r.1396+1g>a|c.1319+1G>A|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;VC=ess_splice;VW=KANSL3|CCDS46361.1|r.1396+1g>a|c.1319+1G>A|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:21:0:0:0:12:0:0:0 0|1:0:23:0:3:0:20:0:2:0.1 -chr2 165901790 78635988-df72-11e9-aae8-d600ec72acc9 G A . PASS DP=81;MP=1;GP=2.1e-12;TG=GG/AAAAG;TP=0.65;SG=GG/AAAGG;SP=0.35;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=TTC21B|CCDS33315.1|r.2827c>u|c.2689C>T|p.Q897*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=TTC21B|CCDS33315.1|r.2827c>u|c.2689C>T|p.Q897*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:0:22:0:0:0:22:0:0 0|1:15:0:7:0:11:0:4:0:0.7 -chr2 178775881 7864149a-df72-11e9-aae8-d600ec72acc9 C A . PASS DP=67;MP=1;GP=4.5e-10;TG=CC/AAACC;TP=0.52;SG=CC/AACCC;SP=0.48;ASRD=0.93;CLPM=0;ASMD=141;VT=Sub;VD=TTN|CCDS59435.1|r.6208g>u|c.5983G>T|p.E1995*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=TTN|CCDS59435.1|r.6208g>u|c.5983G>T|p.E1995*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:18:0:0:0:18:0:0:0 0|1:10:6:0:0:5:10:0:0:0.48 -chr4 47645090 78b1b89e-df72-11e9-aae8-d600ec72acc9 T A . PASS DP=71;MP=1;GP=1.6e-09;TG=TT/ATTTT;TP=0.99;SG=TT/AATTT;SP=0.014;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=CORIN|CCDS3477.1|r.1948a>u|c.1948A>T|p.K650*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=CORIN|CCDS3477.1|r.1948a>u|c.1948A>T|p.K650*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:0:0:18:0:0:0:16:0 0|1:3:0:0:19:3:0:0:12:0.16 -chr5 17634694 78c6c4be-df72-11e9-aae8-d600ec72acc9 C T . PASS DP=85;MP=1;GP=2.3e-12;TG=CC/CCCCT;TP=0.61;SG=CC/CCCTT;SP=0.39;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=AC233724.12|ENST00000512227|r.235c>u|c.235C>T|p.Q79*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=AC233724.12|ENST00000512227|r.235c>u|c.235C>T|p.Q79*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:23:0:0:0:21:0:0:0 0|1:0:10:0:7:0:20:0:4:0.27 -chr5 112815507 78d23984-df72-11e9-aae8-d600ec72acc9 C T . PASS DP=74;MP=1;GP=3.7e-15;TG=CC/TTTTT;TP=0.87;SG=CC/CTTTT;SP=0.13;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=APC-TEST|CCDS4107.1|r.903c>u|c.847C>T|p.R283*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=APC|CCDS4107.1|r.903c>u|c.847C>T|p.R283*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:28:0:0:0:25:0:0:0 1|1:0:0:0:11:0:1:0:9:0.95 -chrX 135545510 7928ae68-df72-11e9-aae8-d600ec72acc9 A T . PASS DP=84;MP=1;GP=2.7e-11;TG=AA/AAAAT;TP=1;SG=AA/AAATT;SP=0.0022;ASRD=0.95;CLPM=0;ASMD=143.5;VT=Sub;VD=INTS6L|CCDS35401.1|r.611a>u|c.277A>T|p.R93*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=INTS6L|CCDS35401.1|r.611a>u|c.277A>T|p.R93*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:18:0:0:0:22:0:0:0:0 0|1:18:0:0:3:20:0:0:3:0.14 diff --git a/tests/test_output_lof/input_genes_lof.vcf.gz b/tests/test_output_lof/input_genes_lof.vcf.gz index 0b535f1710d50fc46c508767912ef98d825c931a..a6b37d2e848f368a792b2b724649de9cb06c54d5 100644 GIT binary patch literal 3285 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 TLPG)o8vp|U0000000000Wcg2c literal 2851 zcmV+;3*7V{iwFb&00000{{{d;LjnK>3)NX`bJ{u@{!D*`CY?E_-8IJY9f&hSA)(BK z%K<0d%j_`1$l$Za_VFcccJkx*m23!xx{x#<&Ph{ZWa)Wtk6yi!-oJM}pSoeZA*prW zy?IbY{ODiyl zLvCr3pma?Fgc}OlWGM+!M0}t6G(lf!OwpBvWDPAyLeU=?@xAo%5Og{zV|K#_8j}@8 zUrB=eod6S&V2Oh8yHeaRgO^?aUEzxtCn=Iaq0mJH#gr`3hh*)!DP1B-luYEt;f8lj zQWB>en0`xXu-taogaFFL7BH+c2l8pKO4lC`jTnx~MhtfVfTuBp1GV8@y7Le&d#G#< zM9^7NW;z7ZKNLK%4+NLRz+V&w@JrFsi>bppF>P|E;CRV;gkJ%kwMS8ycqwyB3_khD z9Rpe<)Cu8fO?-FX7b2RKUvN-pNr@LEx$a@=xv1ao{<~xUr=Mf}ke zMDEDLpJ%=EJh1jw>n*96;Y%8&YcOHO`o6#y{lR(iR^S5P1D|-1E&P{AxW5}#h**O& zAPXEMQ1CHLAiiwYKwN!FAgf^nF~P2VwX$aCSR%9X;?)vfZp}~0>&>?E#A=IrpJqXX z20bS2zd`slK(o>0K=08`acQeKIe^)f75VxPRWn*HU?5_(;^WDRWhbjMoAyq7sRMJs zO_2*~K()8@fVCg?HcE&rf6o%A7-2Kvd#hl>Duu*hyQ5;mkf3B8e%xk6{A&E64Yuh?&jz6i_a0g))b*ECaf5%?|xBe4RhI;q+%LzwezfA@0d4 zW-@xzC7GY1P5|`e+p7bxFE0S&`Jx93!N$uAv!oi;J_|Lsk_l$|O z6$4w*?RN7;(q^6Eh} zp%ePnm;Owc@#=L%Hq`oJ&j$7G_;x&(ByGMBW>5w@)DjN_+jqn9-N7y}ubJOQFotEj zB-Uk-P^u7c z)0CT4Q!l3z*04YVl<62D1~t~geIA~eg=g611)4jQ>2sOz}39Os-mlk zY@URuCZ=Ras$$^N5Y^0t+1rhEe&D61>!$s9ecQAT~Bt{Ujm&QJp1pNtGaL zpF;R&r3!{D8!A2tFsxKT*YxkukyWfcl2R*QkYu)2#ngpkOIYu%h7V4749+$W*6#Rn{-6ndm@T2!@gdZbBrGgeU9VW#mk?-ntvwwChri`tfM2e+ z61~6^0!!8)Gn%@%AR7T#bT{mbgf)x?%2>Og!mlSp+qy>BSVj2xsFYV!-trraA`AFP zBKTPC`fPXWBJ8Kc)&GPr*Aq zcHnIHm9qpq)>yMy*yvBYYsH+qneWfH(`KH~bRGfjdH2`lw=)aJO~cSnAVdXCo@;!dR$W)?D_7TvYbbwTr-|<^ z>ctyVtFN%`>awGK52qV$z@nwK{f_DcH3BzjWC=)MPxGXaEL5eDtC=*mJ;D0<3a(VL z1voW<7wIMf9;&OYy_LA^>@$pwwU%%Q+_?&Z+fl6+} z3*1m#!%+alt?r=i=jnJT+^`ROEO5~f`ZtpWPX+DTh%cNoxK`?9DKHO{oMx?Cvuk3FMYYzOSccIaPAuH+Pb^(jX&tL= zyKi;74V(S6?Fn0;^!ALmb$Q!t!dE-J%?_>DYopChi!7p<~`)16>BDb zel*%ZzAg9K_g|Rue+|8Xxz=rXQ|sF;xJhfl1y>91omy}m)Ph@@7F?dR;7+3jR}HPn zuqHi8Evcm_Es6gF0hm41@DnbY4A#v4H(MjWpBUcWImqkiD8hQdeA)_!H##apLf!WpWV2;&L}WYgpSsX! z^<@ErsKK+-=~_R!jZe;=yl3a-LwEDHWeNyZ24&lAzIL&i@A&0iC(A!q*7FQ{I2IJNkbo-)}*Z1}p82&Rb$fJ4Lnc?kGM@|L?4i!e2dH~&AGiT7X{6?XP)hT Rz{_0^(+p__W^gEi2mr>igctw- literal 338 zcmb2|=3rp}f&Xj_PR>jW9~s`>*~ojyK!EjvF|SZggNDErg}@X>s}(mJ+Gb5MlxW_l zA<@8jz(U}t@REvY=lree*MI2WT`T44GVjW)^Q%gK&Aj|`Q|_m`HS^;?3+>hOda_YR zF7IjeUjK{s-#w=*dQMWogHA4-T^(-z`qI{4uVZ^9o`1Vmub;hleRbsg&3evwHR3T7 zBE|kj`b<{uX@>s{4Dx6`c4l~c)RB{cfrG_hbIkt`H9;2d6W=1UN^@>+%SA!+?U^;I StV7-PFwKx=U=W0Id9c&vdfD`?-G%#Scr-1 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 G0001n(7g%( literal 2986 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 delta 240 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 literal 0 HcmV?d00001 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 new file mode 100644 index 0000000000000000000000000000000000000000..a576936c7594f8178dc3c4de1007a1dc9bf28e79 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/tests/test_output_no_vaf_vcf/input_genes.vcf b/tests/test_output_no_vaf_vcf/input_genes.vcf new file mode 100644 index 0000000..11b5f03 --- /dev/null +++ b/tests/test_output_no_vaf_vcf/input_genes.vcf @@ -0,0 +1,97 @@ +##fileformat=VCFv4.1 +##FILTER= +##FILTER== 25 base quality"> +##FILTER= +##FILTER== 15 base quality found in the matched normal"> +##FILTER= +##FILTER= +##FILTER= +##FILTER= +##FILTER= +##FILTER= +##FILTER= +##FILTER== 3 mutant allele present in at least 1 percent unmatched normal samples in the unmatched VCF."> +##FILTER== 10 on each strand but mutant allele is only present on one strand"> +##FILTER= +##FORMAT= +##FORMAT= +##FORMAT= +##FORMAT= +##FORMAT= +##FORMAT= +##FORMAT= +##FORMAT= +##FORMAT= +##FORMAT= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##INFO= +##SAMPLE= +##SAMPLE= +##cavemanVersion=1.14.1 +##cgpAnalysisProc_20200116.1=5524663 +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##contig= +##fileDate=20200115 +##reference=/lustre/scratch119/casm/team78pipelines/canpipe/live/data/analysis/2126_2577635/CaVEMan/genome.fa +##source_20200119.1=AnnotateVcf.pl +##vcfProcessLog=,InputVCFSource=,InputVCFParam=> +##vcfProcessLog_20200116.1=,InputVCFSource=,InputVCFVer=<1.8.9>,InputVCFParam=> +##vcfProcessLog_20200119.1=,InputVCFSource=,InputVCFVer=<3.5.2>,InputVCFParam=> +##bcftools_viewVersion=1.12+htslib-1.12 +##bcftools_viewCommand=view -R lof_pos.txt /lustre/scratch117/casm/team215/sb43/organoid_analysis/WGS/p2126/out_vafcorrect//WTSI-COLO_005_1pre.caveman_c.annot.vcf.gz; Date=Tue Mar 30 14:23:07 2021 +##INFO= +##bcftools_annotateVersion=1.12+htslib-1.12 +##bcftools_annotateCommand=annotate -a test_output/tmpdtvu0kq9/genome.tab.gz -i '(FILTER="PASS" ) && ( INFO/VC="stop_lost,start_lost,ess_splice,frameshift,nonsense")' -h /nfs/users/nfs_s/sb43/scripts/annotatevcf_github/annotate/config/info.header -c CHROM,FROM,TO,INFO/DRV input.vcf.gz; Date=Tue Mar 30 16:55:58 2021 +#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NORMAL TUMOUR +chr1 161193208 3883f734-37d6-11ea-a6a1-4d80907df7c2 C A . PASS DP=63;MP=1;GP=1.5e-07;TG=CC/ACC;TP=0.99;SG=CC/AAC;SP=0.014;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=ADAMTS4|CCDS1223.1|r.2340+5g>u|c.1911+5G>T|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;VC=ess_splice;VW=ADAMTS4|CCDS1223.1|r.2340+5g>u|c.1911+5G>T|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:12:0:0:0:15:0:0:0 0|1:9:12:0:0:5:9:1:0:0.39 +chr1 219210652 38868fa8-37d6-11ea-a6a1-4d80907df7c2 G A . PASS DP=91;MP=1;GP=2.6e-13;TG=GG/AAG;TP=1;SG=GG/AGG;SP=3.4e-06;ASRD=0.92;CLPM=0;ASMD=139.5;VT=Sub;VD=LYPLAL1|CCDS1522.1|r.524+5g>a|c.477+5G>A|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;VC=ess_splice;VW=LYPLAL1|CCDS1522.1|r.524+5g>a|c.477+5G>A|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:0:26:0:0:0:21:0:0 0|1:17:1:7:0:13:0:6:0:0.68 +chr1 247934046 3887f190-37d6-11ea-a6a1-4d80907df7c2 C A . PASS DP=76;MP=1;GP=1.3e-13;TG=CC/ACC;TP=1;SG=CC/AAC;SP=0.0014;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=OR2AJ1|ENST00000318244|r.580c>a|c.278C>A|p.S93*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=OR2AJ1|ENST00000318244|r.580c>a|c.278C>A|p.S93*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:22:0:0:0:26:0:0:0 0|1:2:9:0:0:7:10:0:0:0.32 +chr10 113160663 38932966-37d6-11ea-a6a1-4d80907df7c2 C T . PASS DP=72;MP=1;GP=9.3e-10;TG=CC/CCT;TP=0.52;SG=CC/CTT;SP=0.48;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=TCF7L2|CCDS53577.1|r.1713c>u|c.1363C>T|p.R455*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=TCF7L2|CCDS53577.1|r.1713c>u|c.1363C>T|p.R455*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:17:0:0:1:17:0:0:0 0|1:0:13:0:8:0:6:0:10:0.49 +chr13 43888891 38b522aa-37d6-11ea-a6a1-4d80907df7c2 G T . PASS DP=89;MP=1;GP=2e-12;TG=GG/GGGT;TP=1;SG=GG/GGTT;SP=1.6e-05;ASRD=0.93;CLPM=0;ASMD=141;VT=Sub;VD=LACC1|CCDS9391.1|r.1527g>u|c.1042G>T|p.E348*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=LACC1|CCDS9391.1|r.1527g>u|c.1042G>T|p.E348*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:0:23:0:0:0:21:0:0 0|1:0:0:22:3:0:0:17:3:0.13 +chr15 44715437 38c39ba0-37d6-11ea-a6a1-4d80907df7c2 C T . PASS DP=77;MP=1;GP=6.8e-14;TG=CC/TT;TP=1;SG=CC/CT;SP=6.5e-06;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=B2M|CCDS10113.1|r.152c>u|c.82C>T|p.Q28*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=B2M|CCDS10113.1|r.152c>u|c.82C>T|p.Q28*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:33:0:0:0:16:1:0:0 1|1:0:0:0:7:0:1:0:19:0.96 +chr18 56686854 38d994dc-37d6-11ea-a6a1-4d80907df7c2 G T . PASS DP=69;MP=1;GP=1.2e-13;TG=GG/GT;TP=1;SG=GT/GT;SP=1.2e-13;ASRD=0.87;CLPM=0;ASMD=131;VT=Sub;VD=WDR7|CCDS11962.1|r.809-1g>u|c.598-1G>T|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;VC=ess_splice;VW=WDR7|CCDS11962.1|r.809-1g>u|c.598-1G>T|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:0:29:0:0:0:19:0:0 0|1:0:0:6:7:1:0:2:5:0.57 +chr19 45821379 38ddcfca-37d6-11ea-a6a1-4d80907df7c2 C A . PASS DP=51;MP=1;GP=2.3e-06;TG=CC/AAC;TP=0.99;SG=CC/ACC;SP=0.01;ASRD=0.93;CLPM=0;ASMD=141;VT=Sub;VD=SYMPK|CCDS12676.2|r.3138+5g>u|c.2893+5G>T|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;VC=ess_splice;VW=SYMPK|CCDS12676.2|r.3138+5g>u|c.2893+5G>T|p.?|protein_coding:CDS:extended_cis_splice_site:substitution:splice_site_variant:transcript_variant|SO:0000010:SO:0000316:SO:0001993:SO:1000002:SO:0001629:SO:0001576;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:14:0:0:0:9:0:0:0 0|1:8:5:0:0:9:6:0:0:0.61 +chr2 1453776 38df3004-37d6-11ea-a6a1-4d80907df7c2 C T . PASS DP=71;MP=1;GP=7.7e-12;TG=CC/CCTT;TP=0.94;SG=CC/CCCT;SP=0.056;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=TPO|CCDS1643.1|r.656c>u|c.565C>T|p.R189*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=TPO|CCDS1643.1|r.656c>u|c.565C>T|p.R189*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:25:0:0:0:17:0:0:0 0|1:0:9:0:6:0:7:0:7:0.45 +chr2 165901790 38f5dd86-37d6-11ea-a6a1-4d80907df7c2 G A . PASS DP=81;MP=1;GP=1.8e-12;TG=GG/AAG;TP=1;SG=GG/AGG;SP=1.6e-05;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=TTC21B|CCDS33315.1|r.2827c>u|c.2689C>T|p.Q897*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=TTC21B|CCDS33315.1|r.2827c>u|c.2689C>T|p.Q897*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:0:22:0:0:0:22:0:0 0|1:15:0:7:0:11:0:4:0:0.7 +chr2 178775881 38f67ec6-37d6-11ea-a6a1-4d80907df7c2 C A . PASS DP=67;MP=1;GP=4.2e-10;TG=CC/AACC;TP=0.98;SG=CC/ACCC;SP=0.013;ASRD=0.93;CLPM=0;ASMD=141;VT=Sub;VD=TTN|CCDS59435.1|r.6208g>u|c.5983G>T|p.E1995*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=TTN|CCDS59435.1|r.6208g>u|c.5983G>T|p.E1995*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:18:0:0:0:18:0:0:0 0|1:10:6:0:0:5:10:0:0:0.48 +chr4 47645090 392fb844-37d6-11ea-a6a1-4d80907df7c2 T A . PASS DP=71;MP=1;GP=1.4e-09;TG=TT/ATT;TP=1;SG=TT/TTT;SP=1.3e-05;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=CORIN|CCDS3477.1|r.1948a>u|c.1948A>T|p.K650*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=CORIN|CCDS3477.1|r.1948a>u|c.1948A>T|p.K650*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:0:0:18:0:0:0:16:0 0|1:3:0:0:19:3:0:0:12:0.16 +chr5 17634694 393ed4e6-37d6-11ea-a6a1-4d80907df7c2 C T . PASS DP=85;MP=1;GP=1.9e-12;TG=CC/CCT;TP=1;SG=CC/CTT;SP=4.3e-06;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=AC233724.12|ENST00000512227|r.235c>u|c.235C>T|p.Q79*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=AC233724.12|ENST00000512227|r.235c>u|c.235C>T|p.Q79*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:23:0:0:0:21:0:0:0 0|1:0:10:0:7:0:20:0:4:0.27 +chr5 112815507 3948d8a6-37d6-11ea-a6a1-4d80907df7c2 C T . PASS DP=74;MP=1;GP=3.8e-15;TG=CC/TT;TP=1;SG=CC/CT;SP=0.00055;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=APC|CCDS4107.1|r.903c>u|c.847C>T|p.R283*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=APC|CCDS4107.1|r.903c>u|c.847C>T|p.R283*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:28:0:0:0:25:0:0:0 1|1:0:0:0:11:0:1:0:9:0.95 +chrX 135545510 398ea07a-37d6-11ea-a6a1-4d80907df7c2 A T . PASS DP=84;MP=1;GP=2.8e-11;TG=AA/AAAT;TP=1;SG=AA/AATT;SP=2.3e-05;ASRD=0.95;CLPM=0;ASMD=143.5;VT=Sub;VD=INTS6L|CCDS35401.1|r.611a>u|c.277A>T|p.R93*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=INTS6L|CCDS35401.1|r.611a>u|c.277A>T|p.R93*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:18:0:0:0:22:0:0:0:0 0|1:18:0:0:3:20:0:0:3:0.14 diff --git a/tests/test_output_lof/input_genes_lof.vcf b/tests/test_output_no_vaf_vcf/input_genes_lof.vcf similarity index 69% rename from tests/test_output_lof/input_genes_lof.vcf rename to tests/test_output_no_vaf_vcf/input_genes_lof.vcf index 52fe81d..ea73295 100644 --- a/tests/test_output_lof/input_genes_lof.vcf +++ b/tests/test_output_no_vaf_vcf/input_genes_lof.vcf @@ -41,8 +41,8 @@ ##INFO= ##SAMPLE= ##SAMPLE= -##cavemanVersion=1.13.14 -##cgpAnalysisProc_20190930.1=5346618 +##cavemanVersion=1.14.1 +##cgpAnalysisProc_20200116.1=5524663 ##contig= ##contig= ##contig= @@ -68,15 +68,17 @@ ##contig= ##contig= ##contig= -##fileDate=20190924 +##fileDate=20200115 ##reference=/lustre/scratch119/casm/team78pipelines/canpipe/live/data/analysis/2126_2577635/CaVEMan/genome.fa -##source_20190930.1=AnnotateVcf.pl -##vcfProcessLog=,InputVCFSource=,InputVCFParam=> -##vcfProcessLog_20190930.1=,InputVCFSource=,InputVCFVer=<1.8.8>,InputVCFParam=> -##vcfProcessLog_20190930.2=,InputVCFSource=,InputVCFVer=<3.5.0>,InputVCFParam=> +##source_20200119.1=AnnotateVcf.pl +##vcfProcessLog=,InputVCFSource=,InputVCFParam=> +##vcfProcessLog_20200116.1=,InputVCFSource=,InputVCFVer=<1.8.9>,InputVCFParam=> +##vcfProcessLog_20200119.1=,InputVCFSource=,InputVCFVer=<3.5.2>,InputVCFParam=> +##bcftools_viewVersion=1.12+htslib-1.12 +##bcftools_viewCommand=view -R lof_pos.txt /lustre/scratch117/casm/team215/sb43/organoid_analysis/WGS/p2126/out_vafcorrect//WTSI-COLO_005_1pre.caveman_c.annot.vcf.gz; Date=Tue Mar 30 14:23:07 2021 ##INFO= -##bcftools_annotateVersion=1.10.2-64-gf66af73+htslib-1.10.2-85-g16f62c5 -##bcftools_annotateCommand=annotate -a /nfs/users/nfs_s/sb43/scripts/annotatevcf_github/tests/tmpout/tmp_jp6ts6o/genome.tab.gz -i '(FILTER="PASS") && (INFO/VC="stop_lost" || INFO/VC="start_lost" || INFO/VC="ess_splice" || INFO/VC="frameshift" || INFO/VC="nonsense")' -h /nfs/users/nfs_s/sb43/scripts/annotatevcf_github/tests/test_input_lof/info.header -c CHROM,FROM,TO,INFO/DRV /nfs/users/nfs_s/sb43/scripts/annotatevcf_github/tests/test_input_lof/input.vcf.gz; Date=Sat Aug 29 15:57:54 2020 +##bcftools_annotateVersion=1.12+htslib-1.12 +##bcftools_annotateCommand=annotate -a test_output/tmpdtvu0kq9/genome.tab.gz -i '(FILTER="PASS" ) && ( INFO/VC="stop_lost,start_lost,ess_splice,frameshift,nonsense")' -h /nfs/users/nfs_s/sb43/scripts/annotatevcf_github/annotate/config/info.header -c CHROM,FROM,TO,INFO/DRV input.vcf.gz; Date=Tue Mar 30 16:55:58 2021 #CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NORMAL TUMOUR -chr15 44715437 781d409c-df72-11e9-aae8-d600ec72acc9 C T . PASS DP=77;MP=1;GP=6.4e-14;TG=CC/TTTTT;TP=0.96;SG=CC/CTTTT;SP=0.036;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=B2M-TEST|CCDS10113.1|r.152c>u|c.82C>T|p.Q28*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=B2M|CCDS10113.1|r.152c>u|c.82C>T|p.Q28*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:33:0:0:0:16:1:0:0 1|1:0:0:0:7:0:1:0:19:0.96 -chr5 112815507 78d23984-df72-11e9-aae8-d600ec72acc9 C T . PASS DP=74;MP=1;GP=3.7e-15;TG=CC/TTTTT;TP=0.87;SG=CC/CTTTT;SP=0.13;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=APC-TEST|CCDS4107.1|r.903c>u|c.847C>T|p.R283*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=APC|CCDS4107.1|r.903c>u|c.847C>T|p.R283*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:28:0:0:0:25:0:0:0 1|1:0:0:0:11:0:1:0:9:0.95 +chr15 44715437 38c39ba0-37d6-11ea-a6a1-4d80907df7c2 C T . PASS DP=77;MP=1;GP=6.8e-14;TG=CC/TT;TP=1;SG=CC/CT;SP=6.5e-06;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=B2M|CCDS10113.1|r.152c>u|c.82C>T|p.Q28*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=B2M|CCDS10113.1|r.152c>u|c.82C>T|p.Q28*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:33:0:0:0:16:1:0:0 1|1:0:0:0:7:0:1:0:19:0.96 +chr5 112815507 3948d8a6-37d6-11ea-a6a1-4d80907df7c2 C T . PASS DP=74;MP=1;GP=3.8e-15;TG=CC/TT;TP=1;SG=CC/CT;SP=0.00055;ASRD=0.97;CLPM=0;ASMD=146;VT=Sub;VD=APC|CCDS4107.1|r.903c>u|c.847C>T|p.R283*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;VC=nonsense;VW=APC|CCDS4107.1|r.903c>u|c.847C>T|p.R283*|protein_coding:exon:CDS:substitution:codon_variant:stop_gained|SO:0000010:SO:0000147:SO:0000316:SO:1000002:SO:0001581:SO:0001587;DRV=LoF GT:FAZ:FCZ:FGZ:FTZ:RAZ:RCZ:RGZ:RTZ:PM 0|0:0:28:0:0:0:25:0:0:0 1|1:0:0:0:11:0:1:0:9:0.95 diff --git a/tests/test_output_no_vaf_vcf/input_genes_lof.vcf.gz b/tests/test_output_no_vaf_vcf/input_genes_lof.vcf.gz new file mode 100644 index 0000000000000000000000000000000000000000..7c0e10b2c750be3d21c90f4e50d95bff8dd2e137 GIT binary patch literal 2879 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 d2m}BC000301^_}s0stET0{{R3000000051VctZdH literal 0 HcmV?d00001 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 new file mode 100644 index 0000000000000000000000000000000000000000..e9182b3f8fd42330b9c23dee5deffce4437db22d GIT binary patch literal 337 zcmb2|=3rp}f&Xj_PR>jW9~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 literal 0 HcmV?d00001 diff --git a/tests/test_output_no_vaf_vcf/input_muts.vcf.gz b/tests/test_output_no_vaf_vcf/input_muts.vcf.gz new file mode 100644 index 0000000000000000000000000000000000000000..96f4c332232e6015bbec7ce4c3c12aa44dab9f9f GIT binary patch literal 3033 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 b000000RIL6LPG)o8vp|U0000000000b)M4u literal 0 HcmV?d00001 diff --git a/tests/test_output_no_vaf_vcf/input_muts.vcf.gz.tbi b/tests/test_output_no_vaf_vcf/input_muts.vcf.gz.tbi new file mode 100644 index 0000000000000000000000000000000000000000..d9dcc1aa8f51bc7e7912197e0c8960fd9f89a1df GIT binary patch literal 398 zcmb2|=3rp}f&Xj_PR>jW?-<^mHsm_wAi#RzZin0fuQe?RniAUCYk6)|GD~OoPtva7 z*H3#qi?_x1DdW8ZXPWod=P&o3(<-oPOW_CeuMdpg{{5Kq?XT^Z?>DyJ(%XK2_MMzI zeZwim_nzk5`n~3OkBa9cYNC_%Yc9owD;`M+e*R|b*=@0P^Pd?`F^=z%MYY9ye~Y4S z6vKZ826;5^HZi|X}9$owAa?#uWpGEGsJ=?2DgqL)VE|-1%bkn-FY)mIeGcbcA07L)) DjIf<3 literal 0 HcmV?d00001 From 3572fb3e5f2a87dd877b9c16db8cd289d2f86714 Mon Sep 17 00:00:00 2001 From: Shriram Bhosle Date: Wed, 31 Mar 2021 11:19:35 +0100 Subject: [PATCH 2/2] updated CHANGES.md Dockerfile and setup.py version --- CHANGES.md | 4 ++++ Dockerfile | 4 ++-- setup.py | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index e7e5f82..227193e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,7 @@ + +## 1.2.0 +* Added json config paramter to accept filtering paramaters +* removed commandline paramaters that are now read from config file ## 1.1.4 * updated regex to get genename ## 1.1.3 diff --git a/Dockerfile b/Dockerfile index c3dc72b..596ba43 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ USER root MAINTAINER cgphelp@sanger.ac.uk -ENV ANNOTATEVCF_VER '1.1.4' +ENV ANNOTATEVCF_VER '1.2.0' # install system tools RUN apt-get -yq update @@ -40,7 +40,7 @@ RUN pip3 install --install-option="--prefix=$CGP_OPT/python-lib" dist/$(ls -1 di FROM ubuntu:20.04 LABEL uk.ac.sanger.cgp="Cancer Genome Project, Wellcome Sanger Institute" \ - version="1.0.0" \ + version="1.2.0" \ description="Tool to perform vcf file annotation" ### security upgrades and cleanup diff --git a/setup.py b/setup.py index 6d2ac4f..8939e02 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ from setuptools import setup config = { - 'version': '1.1.4', + 'version': '1.2.0', 'name': 'annotateVcf', 'description': 'Tool to annotate and filter vcf files...', 'author': 'Shriram Bhosle',