annotate span_wrapper.py @ 6:70500fd87b60 draft

Advanced options: threads and memory configuration
author jetbrains
date Wed, 21 Nov 2018 10:31:58 -0500
parents 4130e95bd6c8
children
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
6
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
14 MEMORY = argv[0]
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
15 THREADS = argv[1]
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
16 ACTION = argv[2]
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
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
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
26 if not os.path.exists(result):
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
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
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
31 if ACTION == 'model_with_control':
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
32 (chrom_sizes, chrom_sizes_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
33 treatment, treatment_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
34 control, control_file,
6
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
35 bin) = argv
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
36 cmd = 'java -Xmx{}m -jar {} analyze --threads {} ' \
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
37 '--chrom.sizes {} --treatment {} --control {} --bin {}'.format(
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
38 MEMORY, SPAN_JAR, THREADS,
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
39 link(chrom_sizes, chrom_sizes_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
40 link(treatment, treatment_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
41 link(control, control_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
42 bin)
6
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
43
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
44 elif ACTION == 'model_without_control':
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
45 (chrom_sizes, chrom_sizes_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
46 treatment, treatment_file,
6
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
47 bin) = argv
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
48 cmd = 'java -Xmx{}m -jar {} analyze --threads {} ' \
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
49 '--chrom.sizes {} --treatment {} --bin {}'.format(
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
50 MEMORY, SPAN_JAR, THREADS,
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
51 link(chrom_sizes, chrom_sizes_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
52 link(treatment, treatment_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
53 bin)
6
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
54
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
55 elif ACTION == "peaks_with_control":
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
56 (chrom_sizes, chrom_sizes_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
57 treatment, treatment_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
58 control, control_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
59 bin,
6
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
60 fdr, gap) = argv
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
61 cmd = 'java -Xmx{}m -jar {} analyze --threads {} ' \
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
62 '--chrom.sizes {} --treatment {} --control {} --bin {} --fdr {} --gap {} --peaks {}'.format(
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
63 MEMORY, SPAN_JAR, THREADS,
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
64 link(chrom_sizes, chrom_sizes_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
65 link(treatment, treatment_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
66 link(control, control_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
67 bin, fdr, gap,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
68 os.path.join(working_dir, 'result.peak'))
6
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
69
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
70 elif ACTION == 'peaks_without_control':
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
71 (chrom_sizes, chrom_sizes_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
72 treatment, treatment_file,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
73 bin,
6
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
74 fdr, gap) = argv
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
75 cmd = 'java -Xmx{}m -jar {} analyze --threads {} ' \
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
76 '--chrom.sizes {} --treatment {} -bin {} --fdr {} --gap {} --peaks {}'.format(
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
77 MEMORY, SPAN_JAR, THREADS,
3
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
78 link(chrom_sizes, chrom_sizes_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
79 link(treatment, treatment_file),
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
80 bin, fdr, gap,
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
81 os.path.join(working_dir, 'result.peak'))
6
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
82 (chrom_sizes, chrom_sizes_file,
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
83 treatment, treatment_file,
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
84 bin,
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
85 fdr, gap) = argv
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
86
0
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
87 else:
6
70500fd87b60 Advanced options: threads and memory configuration
jetbrains
parents: 3
diff changeset
88 raise Exception("Unknown action command {}".format(ACTION))
0
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
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
1f0c4f0a9c3b Initial version of SPAN for ToolShed
jetbrains
parents:
diff changeset
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
4130e95bd6c8 Batch processing mode supported
jetbrains
parents: 2
diff changeset
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"))