0
|
1 #abims_sartools_deseq2_wrapper.py
|
|
2 #Author: Loraine Gueguen
|
|
3 # imports
|
|
4 import os, argparse
|
|
5
|
|
6
|
|
7
|
|
8 def main():
|
|
9
|
|
10 print("Start of galaxy wrapper")
|
|
11
|
|
12 #Check R and Rscript are installed
|
|
13 check_r_cmd="command -v R >/dev/null 2>&1 || { echo >&2 'This tool requires R but it is not installed. Aborting.'; exit 1; }"
|
|
14 check_rscript_cmd="command -v Rscript >/dev/null 2>&1 || { echo >&2 'This tool requires Rscript but it is not installed. Aborting.'; exit 1; }"
|
|
15 os.system(check_r_cmd)
|
|
16 os.system(check_rscript_cmd)
|
|
17
|
|
18 #Get arguments
|
|
19 parser = argparse.ArgumentParser()
|
|
20 parser.add_argument('--projectName')
|
|
21 parser.add_argument('--author')
|
|
22 parser.add_argument('--targetFile')
|
|
23 parser.add_argument('--rawDir')
|
|
24 parser.add_argument('--featuresToRemove')
|
|
25 parser.add_argument('--varInt')
|
|
26 parser.add_argument('--condRef')
|
|
27 parser.add_argument('--batch')
|
|
28 parser.add_argument('--fitType')
|
|
29 parser.add_argument('--cooksCutoff')
|
|
30 parser.add_argument('--independentFiltering')
|
|
31 parser.add_argument('--alpha')
|
|
32 parser.add_argument('--pAdjustMethod')
|
|
33 parser.add_argument('--typeTrans')
|
|
34 parser.add_argument('--locfunc')
|
|
35 parser.add_argument('--colors')
|
3
|
36 parser.add_argument('--forceCairoGraph')
|
0
|
37 parser.add_argument('--figures_html')
|
|
38 parser.add_argument('--figures_html_files_path')
|
|
39 parser.add_argument('--tables_html')
|
|
40 parser.add_argument('--tables_html_files_path')
|
|
41 parser.add_argument('--rdata')
|
|
42 parser.add_argument('--report_html')
|
|
43 parser.add_argument('--log')
|
|
44 args = parser.parse_args()
|
|
45 projectName=args.projectName
|
|
46 author=args.author
|
|
47 targetFile=args.targetFile
|
|
48 rawDir=args.rawDir
|
|
49 featuresToRemove=args.featuresToRemove
|
|
50 varInt=args.varInt
|
|
51 condRef=args.condRef
|
|
52 batch=args.batch
|
|
53 fitType=args.fitType
|
|
54 cooksCutoff=args.cooksCutoff
|
|
55 independentFiltering=args.independentFiltering
|
|
56 alpha=args.alpha
|
|
57 pAdjustMethod=args.pAdjustMethod
|
|
58 typeTrans=args.typeTrans
|
|
59 locfunc=args.locfunc
|
|
60 colors=args.colors
|
3
|
61 forceCairoGraph=args.forceCairoGraph
|
0
|
62 figures_html=args.figures_html
|
|
63 figures_html_files_path=args.figures_html_files_path
|
|
64 tables_html=args.tables_html
|
|
65 tables_html_files_path=args.tables_html_files_path
|
|
66 rdata=args.rdata
|
|
67 report_html=args.report_html
|
|
68 log=args.log
|
|
69 #Print the parameters selected
|
4
|
70 print("Wrapper arguments: %s" %(args))
|
0
|
71
|
|
72 #Get the working directory path
|
|
73 working_directory = os.getcwd()
|
|
74 #Get the script directory path
|
|
75 script_directory=os.path.dirname(os.path.realpath(__file__))
|
|
76
|
|
77 #Unzip files from rawDir
|
|
78 rawDir_unzipped_path=working_directory+"/rawDir_unzipped"
|
|
79 os.mkdir(rawDir_unzipped_path)
|
|
80 unzip_cmd="unzip -j %s -d %s" % (rawDir,rawDir_unzipped_path) #-j arg: junk paths
|
|
81 os.system(unzip_cmd)
|
|
82
|
|
83 #Create the command
|
|
84 cmd="Rscript --no-save --no-restore %s/template_script_DESeq2_CL.r --projectName %s --author %s " % (script_directory,projectName,author)
|
|
85 cmd+="--targetFile %s --rawDir %s --featuresToRemove %s --varInt %s --condRef %s " % (targetFile,rawDir_unzipped_path,featuresToRemove,varInt,condRef)
|
|
86 if batch and batch!="NULL":
|
|
87 cmd+="--batch %s " % (batch)
|
|
88 if fitType:
|
|
89 cmd+="--fitType %s " % (fitType)
|
|
90 if cooksCutoff:
|
|
91 cmd+="--cooksCutoff %s " % (cooksCutoff)
|
|
92 if independentFiltering:
|
|
93 cmd+="--independentFiltering %s " % (independentFiltering)
|
|
94 if alpha:
|
|
95 cmd+="--alpha %s " % (alpha)
|
|
96 if pAdjustMethod:
|
|
97 cmd+="--pAdjustMethod %s " % (pAdjustMethod)
|
|
98 if typeTrans:
|
|
99 cmd+="--typeTrans %s " % (typeTrans)
|
|
100 if locfunc:
|
|
101 cmd+="--locfunc %s " % (locfunc)
|
|
102 if colors:
|
|
103 cmd+="--colors %s " % (colors)
|
3
|
104 if forceCairoGraph:
|
|
105 cmd+="--forceCairoGraph %s " % (forceCairoGraph)
|
0
|
106 cmd+="> %s 2>&1" % (log)
|
4
|
107 print("Rscript command: %s" % (cmd))
|
0
|
108 os.system(cmd)
|
|
109
|
|
110 #Get output files
|
|
111 os.mkdir(figures_html_files_path)
|
|
112 os.mkdir(tables_html_files_path)
|
|
113 rsync_figures_dir_cmd="rsync -r figures/* %s/." % (figures_html_files_path)
|
|
114 rsync_tables_dir_cmd="rsync -r tables/* %s/." % (tables_html_files_path)
|
|
115 os.system(rsync_figures_dir_cmd)
|
|
116 os.system(rsync_tables_dir_cmd)
|
|
117 figures_html_create_cmd="python %s/make_html.py --tool SARTools_DESeq2 --output_type Figures --output_dir %s --output_html %s" % (script_directory,figures_html_files_path,figures_html)
|
|
118 tables_html_create_cmd="python %s/make_html.py --tool SARTools_DESeq2 --output_type Tables --output_dir %s --output_html %s" % (script_directory,tables_html_files_path,tables_html)
|
|
119 os.system(figures_html_create_cmd)
|
|
120 os.system(tables_html_create_cmd)
|
|
121 rsync_rdata_file_cmd="rsync %s.RData %s" % (projectName,rdata)
|
|
122 rsync_report_file_cmd="rsync %s_report.html %s" % (projectName,report_html)
|
|
123 os.system(rsync_rdata_file_cmd)
|
|
124 os.system(rsync_report_file_cmd)
|
|
125
|
|
126 print("End of galaxy wrapper")
|
|
127
|
|
128 if __name__ == '__main__':
|
|
129 main()
|
|
130
|
|
131
|