comparison Contra/scripts/vcf_out.py @ 0:7564f3b1e675

Uploaded
author fcaramia
date Thu, 13 Sep 2012 02:31:43 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:7564f3b1e675
1 # ----------------------------------------------------------------------#
2 # Copyright (c) 2011, Richard Lupat & Jason Li.
3 #
4 # > Source License <
5 # This file is part of CONTRA.
6 #
7 # CONTRA is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
11 #
12 # CONTRA is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with CONTRA. If not, see <http://www.gnu.org/licenses/>.
19 #
20 #
21 #-----------------------------------------------------------------------#
22 # Last Updated : 09 Apr 2011 11:00AM
23
24 def vcf_out(inF, outF):
25 import math
26 f = file.readlines(open(inF))
27 vcf = open(outF, "w")
28
29 #header
30 vcf.write("##fileformat=VCFv4.0\n")
31 vcf.write("##reference=1000GenomesPilot-NCBI36\n")
32 vcf.write('##INFO=<ID=SVTYPE,Number=1,Type=String,Description="Type of structural variant"\n')
33 vcf.write('##INFO=<ID=END,Number=1,Type=Integer,Description="End position of the variant described in this record"\n')
34 vcf.write('##ALT=<ID=CNV,Description="Copy number variable region"\n')
35 vcf.write("#CHROM \tPOS \tID \tREF \tALT \tQUAL \tFILTER \tINFO\n")
36
37 count = 0
38 while count < len(f):
39 if (count % 2 == 0):
40 region = f[count].strip(">\n")
41 region = region.split(":")
42 chr = region[0]
43
44 adjPVal = float(region[2])
45 if adjPVal <= 0:
46 adjPVal = 0
47 else:
48 adjPVal = -10 * math.log(adjPVal, 10)
49 adjPVal = str(round(adjPVal,3))
50 region[1] = region[1].split("-")
51 start = region[1][0]
52 end = region[1][1]
53 else:
54 ref = f[count].strip("\n")
55 vcf.write(chr +"\t"+ start + "\t" + "." + "\t" + ref + "\t")
56 vcf.write("<CNV>" + "\t" + adjPVal + "\t" + "PASS" + "\t")
57 vcf.write("SVTYPE=CNV;END="+ end + "\n")
58 count += 1
59
60 vcf.close()
61
62
63
64