annotate sequenza_wrapper.py @ 11:3b7cb5a0ebf8 draft

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