annotate sequenza_wrapper.py @ 21:15b36be51851 draft

Uploaded
author jbrayet
date Wed, 19 Aug 2015 05:08:03 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
1 #! /usr/bin/python
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
2 # -*- coding: utf8 -*-
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
3 """#Sequenza Galaxy - developed by Jocelyn Brayet <jocelyn.brayet@curie.fr>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
4 #Copyright (C) 2015 Institut Curie
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
5 #
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
6 #This program is free software: you can redistribute it and/or modify
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
7 #it under the terms of the GNU General Public License as published by
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
8 #the Free Software Foundation, either version 3 of the License, or
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
9 #(at your option) any later version.
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
10 #
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
11 #This program is distributed in the hope that it will be useful,
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
12 #but WITHOUT ANY WARRANTY; without even the implied warranty of
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
13 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
14 #GNU General Public License for more details.
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
15 #
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
16 #You should have received a copy of the GNU General Public License
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
17 #along with this program. If not, see <http://www.gnu.org/licenses/>.
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
18 #
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
19 ###########################################################'
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
20 #
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
21 #usage: sequenza_wrapper.py [-h] -normal <NORMAL_FILE> -tumor <TUMOR_FILE>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
22 # -name <SAMPLE_NAME> -gcContent <GC_FILE> -format
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
23 # <FILE_FORMAT> -estimation <ESTIMATION>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
24 # [-ref_file <REF_FILE>] [-cellularity <CELLULARITY>]
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
25 # [-ploidy <PLOIDY>] [-selector_index <SELECTOR>]
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
26 # [-samtools_options <SAMTOOLS_OPTIONS>] -outGalaxy
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
27 # <OUT_GALAXY>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
28 #
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
29 #Run Sequenza with Galaxy.
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
30 #
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
31 #optional arguments:
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
32 # -h, --help show this help message and exit
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
33 # -normal <NORMAL_FILE>, --normalFile <NORMAL_FILE>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
34 # Normal input file (BAM, pileup, pileup.gz).
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
35 # -tumor <TUMOR_FILE>, --tumorFile <TUMOR_FILE>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
36 # Tumor input file (BAM, pileup, pileup.gz).
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
37 # -name <SAMPLE_NAME>, --sampleName <SAMPLE_NAME>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
38 # Sample Name.
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
39 # -gcContent <GC_FILE>, --GCfile <GC_FILE>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
40 # GC content file (txt).
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
41 # -format <FILE_FORMAT>, --fileFormat <FILE_FORMAT>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
42 # Files format.
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
43 # -estimation <ESTIMATION>, --usePersonalEstimation <ESTIMATION>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
44 # To use sequenza estimation or not.
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
45 # -ref_file <REF_FILE>, --refFile <REF_FILE>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
46 # Index file to samtools mpileup.
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
47 # -cellularity <CELLULARITY>, --cellularityToUsed <CELLULARITY>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
48 # If estimation = no, cellularity used.
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
49 # -ploidy <PLOIDY>, --ploidyToUsed <PLOIDY>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
50 # If estimation = no, plody used.
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
51 # -selector_index <SELECTOR>, --selector <SELECTOR>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
52 # Source for the reference list.
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
53 # -samtools_options <SAMTOOLS_OPTIONS>, --samtoolsOptions <SAMTOOLS_OPTIONS>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
54 # Samtools options (-A, -B, -d, -q and -Q).
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
55 # -outGalaxy <OUT_GALAXY>, --outGalaxy <OUT_GALAXY>
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
56 #
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
57 #Version 1.2 - 05/08/2015 - Adapted from Jocelyn Brayet, France Genomique team
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
58 #
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
59 ###########################################################"""
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
60 __author__ = 'Jocelyn Brayet'
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
61
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
62 ###########################################################'
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
63 ## Import
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
64
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
65 import argparse
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
66 import glob
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
67 import os
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
68 import signal
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
69 import subprocess
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
70
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
71 ## Tested with python 2.6.6
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
72 sequenzaVersion = '1.2 - 05/08/2015'
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
73
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
74 ################################ functions ############################################################
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
75 ## Define a function to test arguments
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
76
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
77 def testNone(argument):
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
78 """
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
79 Test if argument is None or not.
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
80 argument -> argument gived by user (XML file)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
81 """
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
82
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
83 if not argument is None:
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
84 variable = argument[0]
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
85 else:
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
86 variable = ""
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
87 return variable
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
88
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
89 def subprocess_setup():
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
90 """
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
91 Python installs a SIGPIPE handler by default. This is usually not what non-Python subprocesses expect.
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
92 """
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
93
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
94 signal.signal(signal.SIGPIPE, signal.SIG_DFL)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
95
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
96 def createHTML(resultFile,resultPath,sample):
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
97 """
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
98 Building a result HTML displayed in Galaxy.
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
99 resultFile -> HTML file
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
100 resultPath -> Galaxy result path
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
101 sample -> sample name
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
102 """
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
103
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
104 resultHTML=open(resultFile,"w")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
105 resultHTML.write("<html>\n<head>\n</head>\n<body>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
106 resultHTML.write("<h1><a target='_top' href='http://cran.r-project.org/web/packages/sequenza/index.html'>Sequenza</a> - results</h1>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
107 resultHTML.write("<p align='center'>\n<table width=70% border=1>\n<font size='30pt'><tr>\n<th colspan=3>Additional files</th>\n</tr>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
108 resultHTML.write("<tr>\n<td><a href='out.seqz.gz'>Out Sequenza</a><br><a href='out.small.seqz.gz'>Out small Sequenza</a></td>\n<td><a href='"+sample+"_sequenza_cp_table.RData'>Cellularity and ploidy matrix (RData)</a><br><a href='"+sample+"_sequenza_extract.RData'>Sequenza extract (RData)</a></td><td><a href='logFile.txt'>Log file</a></td>\n</tr>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
109 resultHTML.write("</font>\n</table>\n</p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
110 resultHTML.write("<h2>Genome-wide view of the allele and copy number state</h2>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
111 resultHTML.write("<p align='center'><embed src='"+resultPath+sample+"_analyse.pdf' width='800px' height='590px'></p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
112 resultHTML.write("<p align='center'>Genome-wide allele-specific copy number profile obtained from exome sequencing (top), genome-wide absolute copy number profile obtained from exome sequencing (middle) and depth ratio (bottom).</p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
113
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
114 fileList=glob.glob(resultPath+"/segments_*.txt")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
115 alternativeSolutionsList=""
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
116
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
117 for segmentsFile in fileList:
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
118 if not "segments_1.txt" in segmentsFile:
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
119 alternativeSolutionsList = alternativeSolutionsList+" "+segmentsFile
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
120
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
121 os.system("mkdir "+resultPath+"/segments")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
122 os.system("mv "+alternativeSolutionsList+" "+resultPath+"/segments")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
123 cmdLine="cd "+resultPath+"; tar czf "+sample+"_segments.tar.gz segments"
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
124 os.system(cmdLine)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
125
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
126 resultHTML.write("<p align='center'>File (best solution or user solution): <a href='"+sample+"_segments.txt'>Segments</a></p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
127 resultHTML.write("<p align='center'>File (alternative solutions): <a href='"+sample+"_segments.tar.gz'>Segments</a></p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
128 resultHTML.write("<p align='center'>File : <a href='"+sample+"_mutations.txt'>Mutations</a></p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
129 resultHTML.write("<h2>Confidence intervals, confidence region and point estimate</h2>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
130 resultHTML.write("<p align='center'><embed src='"+sample+"_CP_contours.pdf' width='580px' height='580px'></p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
131 resultHTML.write("<p align='center'>Result from the inference over the defined range of cellularity and ploidy. Color intensity indicates the log posterior probability of corresponding cellularity/ploidy values.</p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
132 resultHTML.write("<p align='center'><embed src='"+sample+"_CN_bars.pdf' width='580px' height='580px'></p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
133 resultHTML.write("<p align='center'><embed src='"+sample+"_model_fit.pdf' width='580px' height='580px'></p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
134 resultHTML.write("<p align='center'>Observed depth ratio and BAF values for each genomic segment (black circles and dots) along with the representative joint LPP density (colors). The representative joint LPP density is calculated for the best cellularity and ploidy.</p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
135 resultHTML.write("<p align='center'>File : <a href='"+sample+"_cellularity_ploidy.txt'>Cellularity and ploidy</a></p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
136 resultHTML.write("<p align='center'><embed src='"+sample+"_alternative_fit.pdf' width='580px' height='580px'></p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
137 resultHTML.write("<p align='center'>Observed depth ratio and BAF values for each genomic segment (black circles and dots) along with the representative joint LPP density (colors). The representative joint LPP density is calculated for the alternative cellularity and ploidy (scroll).</p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
138 resultHTML.write("<p align='center'>File : <a href='"+sample+"_alternative_solutions.txt'>Alternative solutions</a></p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
139 resultHTML.write("<h2>Normalization of depth ratio</h2>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
140 resultHTML.write("<p align='center'><a href='"+sample+"_gc_stat.png'><img border='1' width='680px' height='300px' src='"+sample+"_gc_stat.png'></a></p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
141 resultHTML.write("<p align='center'>Visualization of depth.ratio bias in relation of GC content (left), and resulting normalization effect (right)</p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
142 resultHTML.write("<h2>Plot chromosome view with mutations, BAF, depth ratio and segments (best solution or user solution)</h2>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
143 resultHTML.write("<p align='center'><embed src='"+sample+"_chromosome_view.pdf' width='680px' height='680px'></p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
144 resultHTML.write("<p align='center'>Plots of mutant allele frequency (top), B allele frequency (middle) and depth ratio (bottom) vs. chromosome position (scroll).</p>\n")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
145 resultHTML.write("</body>\n</html>")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
146 resultHTML.close()
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
147
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
148 if __name__ == '__main__':
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
149
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
150 ########### sequenza arguments ####################
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
151 parser = argparse.ArgumentParser(description='Run Sequenza with Galaxy.', epilog='Version '+sequenzaVersion)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
152
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
153 parser.add_argument('-normal', '--normalFile', metavar='<NORMAL_FILE>', type=str, nargs=1, help='Normal input file (BAM, pileup, pileup.gz).', required=True)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
154 parser.add_argument('-tumor', '--tumorFile', metavar='<TUMOR_FILE>', type=str, nargs=1, help='Tumor input file (BAM, pileup, pileup.gz).', required=True)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
155 parser.add_argument('-name', '--sampleName', metavar='<SAMPLE_NAME>', type=str, nargs=1, help='Sample Name.', required=True)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
156 parser.add_argument('-gcContent', '--GCfile', metavar='<GC_FILE>', type=str, nargs=1, help='GC content file (txt).', required=True)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
157 parser.add_argument('-format', '--fileFormat', metavar='<FILE_FORMAT>', type=str, nargs=1, help='Files format.', required=True)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
158 parser.add_argument('-estimation', '--usePersonalEstimation', metavar='<ESTIMATION>', type=str, nargs=1, help='To use sequenza estimation or not.', required=True)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
159 parser.add_argument('-ref_file', '--refFile', metavar='<REF_FILE>', type=str, nargs=1, help='Index file to samtools mpileup.', required=False)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
160 parser.add_argument('-cellularity', '--cellularityToUsed', metavar='<CELLULARITY>', type=int, nargs=1, help='If estimation = no, cellularity used.', required=False)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
161 parser.add_argument('-ploidy', '--ploidyToUsed', metavar='<PLOIDY>', type=int, nargs=1, help='If estimation = no, plody used.', required=False)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
162 parser.add_argument('-selector_index', '--selector', metavar='<SELECTOR>', type=str, nargs=1, help='Source for the reference list.', required=False)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
163 parser.add_argument('-samtools_options', '--samtoolsOptions', metavar='<SAMTOOLS_OPTIONS>', type=str, nargs=1, help='Samtools options (-A, -B, -d, -q and -Q).', required=False)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
164
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
165 ################################ galaxy arguments ############################################################
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
166 parser.add_argument('-outGalaxy', '--outGalaxy', metavar='<OUT_GALAXY>', type=str, nargs=1, required=True)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
167 ###########################################################'
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
168
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
169 args = parser.parse_args()
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
170
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
171 normalFile = testNone(args.normalFile)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
172 tumorFile = testNone(args.tumorFile)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
173 sampleName = testNone(args.sampleName)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
174 gcContent = testNone(args.GCfile)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
175 fileFormat = testNone(args.fileFormat)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
176 usePersonalEstimation = testNone(args.usePersonalEstimation)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
177 refFile = testNone(args.refFile)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
178 cellularityToUsed = testNone(args.cellularityToUsed)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
179 ploidyToUsed = testNone(args.ploidyToUsed)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
180 selector = testNone(args.selector)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
181 samtoolsOptions = testNone(args.samtoolsOptions)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
182 outGalaxyValue = testNone(args.outGalaxy)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
183
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
184 ################Rscrip PATH#################
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
185 RscriptPath = "Rscript --vanilla "
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
186 ############################################
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
187
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
188 pathFile = os.path.dirname(os.path.realpath(__file__))
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
189 samtoolsPath = pathFile.replace("copy_number","samtools/")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
190 outGalaxyValueDir = outGalaxyValue.replace(".dat","_files")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
191 os.popen("mkdir "+outGalaxyValueDir)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
192 os.popen("chmod 777 -R "+outGalaxyValueDir)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
193
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
194 log = open(outGalaxyValueDir+"/logFile.txt", "w")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
195
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
196 log.write(samtoolsOptions)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
197
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
198 if fileFormat=="BAM" :
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
199 if selector=="cached":
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
200
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
201 cmd=samtoolsPath+"samtools_wrapper.py -p 'samtools mpileup' -p \'-f \""+refFile+"\"\' -d \" \" \""+normalFile+"\" \"bam\" \"bam_normal\" -p\' "+samtoolsOptions+" > \""+normalFile+".tmp\" \'"
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
202 proc = subprocess.Popen( args=cmd, shell=True)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
203 proc.wait()
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
204 os.system("gzip -f -c "+normalFile+".tmp > "+normalFile+".gz")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
205 os.system("rm -f "+normalFile+".tmp")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
206
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
207 cmd=samtoolsPath+"samtools_wrapper.py -p 'samtools mpileup' -p \'-f \""+refFile+"\"\' -d \" \" \""+tumorFile+"\" \"bam\" \"bam_normal\" -p\' "+samtoolsOptions+" > \""+tumorFile+".tmp\" \'"
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
208 proc = subprocess.Popen( args=cmd, shell=True)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
209 proc.wait()
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
210 os.system("gzip -f -c "+tumorFile+".tmp > "+tumorFile+".gz")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
211 os.system("rm -f "+tumorFile+".tmp")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
212
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
213 else:
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
214
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
215 cmd=samtoolsPath+"samtools_wrapper.py -p 'samtools mpileup' -d \'-f \""+refFile+"\"\' \"fa\" \"reference_input\" -d \" \" \""+normalFile+"\" \"bam\" \"bam_normal\" -p\' "+samtoolsOptions+" > \""+normalFile+".tmp\" \'"
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
216 proc = subprocess.Popen( args=cmd, shell=True)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
217 proc.wait()
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
218 os.system("gzip -f -c "+normalFile+".tmp > "+normalFile+".gz")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
219 os.system("rm -f "+normalFile+".tmp")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
220
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
221 cmd=samtoolsPath+"samtools_wrapper.py -p 'samtools mpileup' -d \'-f \""+refFile+"\"\' \"fa\" \"reference_input\" -d \" \" \""+tumorFile+"\" \"bam\" \"bam_normal\" -p\' "+samtoolsOptions+" > \""+tumorFile+".tmp\" \'"
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
222 proc = subprocess.Popen( args=cmd, shell=True)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
223 proc.wait()
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
224 os.system("gzip -f -c "+tumorFile+".tmp > "+tumorFile+".gz")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
225 os.system("rm -f "+tumorFile+".tmp")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
226
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
227 if fileFormat=="pileup" :
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
228 os.system("gzip -f -c "+normalFile+" > "+ normalFile+".gz")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
229 os.system("gzip -f -c "+tumorFile+" > "+tumorFile+".gz")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
230
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
231 if fileFormat=="pileup_gz" :
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
232 os.system("cp -f "+normalFile+" "+normalFile+".gz")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
233 os.system("cp -f "+tumorFile+" "+tumorFile+".gz")
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
234
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
235
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
236
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
237
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
238 #############################################################
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
239
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
240 if usePersonalEstimation=="yes":
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
241
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
242 cellularityToUsed = float(cellularityToUsed)/100
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
243 command = RscriptPath+pathFile+"/Sequenza_analysis.R -normal "+normalFile+".gz"+" -tumor "+tumorFile+".gz"+" -out "+outGalaxyValueDir+" -gcContent "+gcContent+" -name "+sampleName+ " -cellularity "+str(cellularityToUsed)+" -ploidy "+str(ploidyToUsed)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
244 log.write(str(command))
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
245
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
246 Rscrpit = subprocess.Popen(command, preexec_fn=subprocess_setup, stdout=log, stderr=log, shell=True)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
247 Rscrpit.wait()
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
248
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
249 else :
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
250
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
251 command = RscriptPath+pathFile+"/Sequenza_analysis.R -normal "+normalFile+".gz"+" -tumor "+tumorFile+".gz"+" -out "+outGalaxyValueDir+" -gcContent "+gcContent+" -name "+sampleName+ " -cellularity 0 -ploidy 0"
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
252 log.write(str(command))
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
253
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
254 Rscrpit = subprocess.Popen(command, preexec_fn=subprocess_setup, stdout=log, stderr=log, shell=True)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
255 Rscrpit.wait()
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
256
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
257 #############################################################
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
258
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
259 createHTML(outGalaxyValue,outGalaxyValueDir,sampleName)
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
260
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
261
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
262 log.close()
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
263
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
264
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
265
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
266
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
267
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
268
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
269
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
270
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
271
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
272
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
273
15b36be51851 Uploaded
jbrayet
parents:
diff changeset
274