view snp-filter.py @ 39:1fe3b14f7f1b

planemo upload commit 7f6183b769772449fbcee903686b8d5ec5b7439f-dirty
author jpayne
date Wed, 14 Feb 2018 13:06:44 -0500
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)