annotate span_wrapper.py @ 3:4130e95bd6c8 draft

Batch processing mode supported
author jetbrains
date Mon, 19 Nov 2018 08:24:04 -0500
parents 5b99943c4627
children 70500fd87b60
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
1 #!/usr/bin/env python
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
2
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
3 import os
2
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
4 import shutil
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
5 import subprocess
0
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
6 import sys
2
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
7
0
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
8 argv = sys.argv[1:]
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
9 print 'Arguments {0}'.format(argv)
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
10
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
11 SPAN_JAR = os.environ.get("SPAN_JAR")
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
12 print 'Using SPAN Peak Analyzer distributive file {0}'.format(SPAN_JAR)
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
13
2
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
14 # #if str($action.action_selector) == "model"
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
15 # #if str($control_file) != 'None':
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
16 # span_wrapper.py model_with_control
2
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
17 # "${genome_identifier}" "${genome_file}"
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
18 # "${treatment_identifier}" "${treatment_file}"
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
19 # "${control_identifier}" "${control_file}"
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
20 # "${bin}"
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
21 #
0
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
22 # #else
2
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
23 # span_wrapper.py model without_control
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
24 # "${genome_identifier}" "${genome_file}"
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
25 # "${treatment_identifier}" "${treatment_file}"
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
26 # "${bin}"
0
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
27 # #end if
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
28 # #else
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
29 # #if str($control_file) != 'None':
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
30 # span_wrapper.py peaks_with_control
2
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
31 # "${genome_identifier}" "${genome_file}"
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
32 # "${treatment_identifier}" "${treatment_file}"
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
33 # "${control_identifier}" "${control_file}"
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
34 # "${bin}"
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
35 # "${action.fdr}" "${action.gap}"
0
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
36 # #else
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
37 # span_wrapper.py peaks_without_control
2
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
38 # "${genome_identifier}" "${genome_file}"
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
39 # "${treatment_identifier}" "${treatment_file}"
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
40 # "${bin}"
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
41 # "${action.fdr}" "${action.gap}"
0
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
42 # #end if
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
43 # #end if
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
44 action = argv[0]
2
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
45
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
46 working_dir = os.path.abspath('.')
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
47 print 'WORKING DIRECTORY: {}'.format(working_dir)
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
48
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
49
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
50 def link(name, f):
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
51 """ SPAN uses file extension to detect input type, so original names are necessary, instead of Galaxy .dat files"""
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
52 result = os.path.join(working_dir, name)
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
53 if not os.path.exists(result):
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
54 os.symlink(f, result)
2
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
55 return result
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
56
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
57
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
58 if action == 'model_with_control':
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
59 (chrom_sizes, chrom_sizes_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
60 treatment, treatment_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
61 control, control_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
62 bin) = argv[1:]
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
63 cmd = 'java -jar {} analyze --chrom.sizes {} --treatment {} --control {} --bin {}'.format(
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
64 SPAN_JAR,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
65 link(chrom_sizes, chrom_sizes_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
66 link(treatment, treatment_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
67 link(control, control_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
68 bin)
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
69 elif action == 'model_without_control':
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
70 (chrom_sizes, chrom_sizes_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
71 treatment, treatment_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
72 bin) = argv[1:]
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
73 cmd = 'java -jar {} analyze --chrom.sizes {} --treatment {} --bin {}'.format(
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
74 SPAN_JAR,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
75 link(chrom_sizes, chrom_sizes_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
76 link(treatment, treatment_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
77 bin)
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
78 elif action == "peaks_with_control":
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
79 (chrom_sizes, chrom_sizes_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
80 treatment, treatment_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
81 control, control_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
82 bin,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
83 fdr, gap) = argv[1:]
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
84 cmd = 'java -jar {} analyze --chrom.sizes {} --treatment {} --control {} ' \
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
85 '--bin {} --fdr {} --gap {} --peaks {}'.format(
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
86 SPAN_JAR,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
87 link(chrom_sizes, chrom_sizes_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
88 link(treatment, treatment_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
89 link(control, control_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
90 bin, fdr, gap,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
91 os.path.join(working_dir, 'result.peak'))
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
92 elif action == 'peaks_without_control':
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
93 (chrom_sizes, chrom_sizes_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
94 treatment, treatment_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
95 bin,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
96 fdr, gap) = argv[1:]
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
97 cmd = 'java -jar {} analyze --chrom.sizes {} --treatment {} -' \
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
98 '-bin {} --fdr {} --gap {} --peaks {}'.format(
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
99 SPAN_JAR,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
100 link(chrom_sizes, chrom_sizes_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
101 link(treatment, treatment_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
102 bin, fdr, gap,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
103 os.path.join(working_dir, 'result.peak'))
0
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
104 else:
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
105 raise Exception("Unknown action command {}".format(action))
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
106
2
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
107 print 'Launching SPAN: {}'.format(cmd)
0
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
108 subprocess.check_call(cmd, cwd=None, shell=True)
2
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
109
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
110 # Move model to the the working dir with given name
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
111 fit_dir = os.path.join(working_dir, 'fit')
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
112 model_original = os.path.join(fit_dir, os.listdir(fit_dir)[0])
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
113 shutil.move(model_original, os.path.join(working_dir, 'model.span'))
2
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
114
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
115 # Move log file
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
116 logs_dir = os.path.join(working_dir, 'logs')
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
117 log_original = os.path.join(logs_dir, os.listdir(logs_dir)[0])
5b99943c4627 Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents: 0
diff changeset
118 shutil.move(log_original, os.path.join(working_dir, "span.log"))