Python40

2023-09-06  本文已影响0人  rong酱
#!/usr/bin/env python
##coding=utf-8

import os
import sys
import argparse
import re

parser = argparse.ArgumentParser(description="\n\033[1;32;40m \n python variant_stat.py -i mergy.norm.both.xls -o stat.xls \n")
parser.add_argument('-i', '--input', help = 'the pathway of the input vcf file ', required = True)
parser.add_argument('-o', '--output', help = 'the pathway of the output xls file', required = True)
argv = vars(parser.parse_args())
ifile = os.path.abspath(argv['input'].strip())
ofile = os.path.abspath(argv['output'].strip())

def trimfq(inputfile,outfile):
    oc=open(outfile,'w')
    oc.write("CHR\tPOS\tREF\tALT\tCase_Total_num\ttotal_num_pos\tProportion\tHet\tHom")
    with open(inputfile,'r') as v:
        for vi in v:
            num=0
            hetnum=0
            homnum=0
            if str(vi[0:6])=="#CHROM":
                vih = str(vi).strip().split('\t')
                lenght = len(vih)
            else:
                vic = str(vi).strip().split('\t')
                chr = vic[0]
                pos = vic[1]
                ref = vic[2]
                alt = vic[3]
                oc.write(chr+"\t"+pos+"\t"+ref+"\t"+alt+"\t")
                for i in range(4,int(lenght)):
                    icon = vic[i].strip().split(':')
                    if str(icon[0]) != "./.":
                        num+=1
                        if str(icon[0]) == "0/0" or str(icon[0]) == "0|0" or  str(icon[0]) == "1|" or str(icon[0]) == "1|1" or str(icon[0]) == "1/1":
                            homnum+=1
                        elif str(icon[0]) == "0/1" or str(icon[0]) == "0|1":
                            hetnum+=1
                pro=float('%.5f'%float(float(num)/float(lenght-4)))
                oc.write(str(num)+"\t"+str(lenght-4)+"\t"+str(pro)+"\t"+str(hetnum)+"\t"+str(homnum))
            oc.write("\n")

trimfq(ifile,ofile)
#!/usr/bin/env python
##coding=utf-8

import os
import sys
import argparse
import re

parser = argparse.ArgumentParser(description="\n\033[1;32;40m python vcf_table.py -i mergy.norm.both.vcf -o mergy.norm.both.xls \n \n")
parser.add_argument('-i', '--input', help = 'the pathway of the input vcf file ', required = True)
parser.add_argument('-o', '--output', help = 'the pathway of the output xls file', required = True)
argv = vars(parser.parse_args())
ifile = os.path.abspath(argv['input'].strip())
ofile = os.path.abspath(argv['output'].strip())

def trimfq(inputfile,outfile):
    oc=open(outfile,'w')
    with open(inputfile,'r') as v:
        for vi in v:
            if str(vi[0:2])=="##":
                continue
            elif str(vi[0:6])=="#CHROM":
                vicon=str(vi).strip().split('\t')
                length=len(vicon)
                oc.write(vicon[0]+"\t"+vicon[1]+"\t"+vicon[3]+"\t"+vicon[4]+"\t")
                for i in range(9,length):
                    oc.write(vicon[i]+"\t")
            else:
                vic = str(vi).strip().split('\t')
                chr = vic[0]
                pos = vic[1]
                ref = vic[3]
                alt = vic[4]
                oc.write(chr+"\t"+pos+"\t"+ref+"\t"+alt+"\t")
                for i in range(9,length):
                    icon = vic[i].strip().split(':')
                    ic=icon[0]+":"+icon[1]+":"+icon[2]
                    oc.write(ic+"\t")
            oc.write("\n")

trimfq(ifile,ofile)

大写无语

上一篇下一篇

猜你喜欢

热点阅读