annotate sequenza_wrapper.py @ 23:7b216ed8b91e draft

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