Mercurial > repos > jetbrains > span
annotate span_wrapper.py @ 11:191a97fe6da5 draft
https://github.com/JetBrains-Research/galaxy-applications/commit/08f5cc4f954c99934870f39a4ccbeebaf1620634
author | jetbrains |
---|---|
date | Wed, 16 Jan 2019 12:18:16 -0500 |
parents | 70500fd87b60 |
children |
rev | line source |
---|---|
0 | 1 #!/usr/bin/env python |
2 | |
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 | 6 import sys |
2
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
7 |
0 | 8 argv = sys.argv[1:] |
9 print 'Arguments {0}'.format(argv) | |
10 | |
11 SPAN_JAR = os.environ.get("SPAN_JAR") | |
12 print 'Using SPAN Peak Analyzer distributive file {0}'.format(SPAN_JAR) | |
13 | |
6 | 14 MEMORY = argv[0] |
15 THREADS = argv[1] | |
16 ACTION = argv[2] | |
17 argv = argv[3:] | |
2
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
18 |
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
19 working_dir = os.path.abspath('.') |
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
20 print 'WORKING DIRECTORY: {}'.format(working_dir) |
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
21 |
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
22 |
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
23 def link(name, f): |
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
24 """ 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
|
25 result = os.path.join(working_dir, name) |
3 | 26 if not os.path.exists(result): |
27 os.symlink(f, result) | |
2
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
28 return result |
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
29 |
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
30 |
6 | 31 if ACTION == 'model_with_control': |
3 | 32 (chrom_sizes, chrom_sizes_file, |
33 treatment, treatment_file, | |
34 control, control_file, | |
6 | 35 bin) = argv |
36 cmd = 'java -Xmx{}m -jar {} analyze --threads {} ' \ | |
37 '--chrom.sizes {} --treatment {} --control {} --bin {}'.format( | |
38 MEMORY, SPAN_JAR, THREADS, | |
3 | 39 link(chrom_sizes, chrom_sizes_file), |
40 link(treatment, treatment_file), | |
41 link(control, control_file), | |
42 bin) | |
6 | 43 |
44 elif ACTION == 'model_without_control': | |
3 | 45 (chrom_sizes, chrom_sizes_file, |
46 treatment, treatment_file, | |
6 | 47 bin) = argv |
48 cmd = 'java -Xmx{}m -jar {} analyze --threads {} ' \ | |
49 '--chrom.sizes {} --treatment {} --bin {}'.format( | |
50 MEMORY, SPAN_JAR, THREADS, | |
3 | 51 link(chrom_sizes, chrom_sizes_file), |
52 link(treatment, treatment_file), | |
53 bin) | |
6 | 54 |
55 elif ACTION == "peaks_with_control": | |
3 | 56 (chrom_sizes, chrom_sizes_file, |
57 treatment, treatment_file, | |
58 control, control_file, | |
59 bin, | |
6 | 60 fdr, gap) = argv |
61 cmd = 'java -Xmx{}m -jar {} analyze --threads {} ' \ | |
62 '--chrom.sizes {} --treatment {} --control {} --bin {} --fdr {} --gap {} --peaks {}'.format( | |
63 MEMORY, SPAN_JAR, THREADS, | |
3 | 64 link(chrom_sizes, chrom_sizes_file), |
65 link(treatment, treatment_file), | |
66 link(control, control_file), | |
67 bin, fdr, gap, | |
68 os.path.join(working_dir, 'result.peak')) | |
6 | 69 |
70 elif ACTION == 'peaks_without_control': | |
3 | 71 (chrom_sizes, chrom_sizes_file, |
72 treatment, treatment_file, | |
73 bin, | |
6 | 74 fdr, gap) = argv |
75 cmd = 'java -Xmx{}m -jar {} analyze --threads {} ' \ | |
76 '--chrom.sizes {} --treatment {} -bin {} --fdr {} --gap {} --peaks {}'.format( | |
77 MEMORY, SPAN_JAR, THREADS, | |
3 | 78 link(chrom_sizes, chrom_sizes_file), |
79 link(treatment, treatment_file), | |
80 bin, fdr, gap, | |
81 os.path.join(working_dir, 'result.peak')) | |
6 | 82 (chrom_sizes, chrom_sizes_file, |
83 treatment, treatment_file, | |
84 bin, | |
85 fdr, gap) = argv | |
86 | |
0 | 87 else: |
6 | 88 raise Exception("Unknown action command {}".format(ACTION)) |
0 | 89 |
2
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
90 print 'Launching SPAN: {}'.format(cmd) |
0 | 91 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
|
92 |
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
93 # 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
|
94 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
|
95 model_original = os.path.join(fit_dir, os.listdir(fit_dir)[0]) |
3 | 96 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
|
97 |
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
98 # Move log file |
5b99943c4627
Span version https://github.com/JetBrains-Research/galaxy-applications/commit/cbbba255d66a4775cc35caf5cb85665396fdcd2a
jetbrains
parents:
0
diff
changeset
|
99 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
|
100 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
|
101 shutil.move(log_original, os.path.join(working_dir, "span.log")) |