Mercurial > repos > jpayne > snp_pipeline
view snp-filter.py @ 63:fb44b003e29b
planemo upload
author | jpayne |
---|---|
date | Fri, 28 Jun 2024 23:03:53 -0400 |
parents | eefdd97a6749 |
children |
line wrap: on
line source
from Bio import SeqIO import vcf import argparse import os import sys def passes(vcf_feature, contigs, edge_length=500, window_size=1000, max_snps=3): return True def main(input_vcf, input_reference, output_included, output_excluded=os.devnull, *args, **kwargs) contigs = list(SeqIO.parse(input_reference, 'fasta')) included = vcf.Writer(output_included) excluded = vcf.Writer(output_excluded) for feature in vcf.Reader(input_vcf): if passes(feature, contigs, *args, **kwargs): included.write(feature) else: excluded.write(feature) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('input_vcf', type=argparse.FileType()) parser.add_argument('input_reference', type=argparse.FileType()) parser.add_argument('output_included', type=argparse.FileType('w')) parser.add_argument('--excluded', '-x', dest='output_excluded', type=argparse.FileType('w'), default=os.devnull)