annotate sequenza_wrapper.py @ 27:e61ad7276f18 draft

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