annotate sequenza_wrapper.py @ 39:31adf1afb841 draft default tip

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