Mercurial > repos > yating-l > jbrowsearchivecreator
annotate util/subtools.py @ 19:62dee5369e80 draft
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit afd782e8741a859506794bea92475f620265c50e
| author | sargentl | 
|---|---|
| date | Thu, 13 Sep 2018 17:43:23 -0400 | 
| parents | 79b23a8afb15 | 
| children | 
| rev | line source | 
|---|---|
| 
19
 
62dee5369e80
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit afd782e8741a859506794bea92475f620265c50e
 
sargentl 
parents: 
18 
diff
changeset
 | 
1 #!/usr/bin/env python2 | 
| 
6
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
2 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
3 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
4 This file include common used functions for converting file format to gff3 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
5 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
6 from collections import OrderedDict | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
7 import json | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
8 import subprocess | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
9 import os | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
10 import sys | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
11 import tempfile | 
| 
7
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
12 import shutil | 
| 
6
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
13 import logging | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
14 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
15 class PopenError(Exception): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
16 def __init__(self, cmd, error, return_code): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
17 self.cmd = cmd | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
18 self.error = error | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
19 self.return_code = return_code | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
20 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
21 def __str__(self): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
22 message = "The subprocess {0} has returned the error: {1}.".format( | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
23 self.cmd, self.return_code) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
24 message = ','.join( | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
25 (message, "Its error message is: {0}".format(self.error))) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
26 return repr(message) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
27 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
28 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
29 def _handleExceptionAndCheckCall(array_call, **kwargs): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
30 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
31 This class handle exceptions and call the tool. | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
32 It maps the signature of subprocess.check_call: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
33 See https://docs.python.org/2/library/subprocess.html#subprocess.check_call | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
34 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
35 stdout = kwargs.get('stdout', subprocess.PIPE) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
36 stderr = kwargs.get('stderr', subprocess.PIPE) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
37 shell = kwargs.get('shell', False) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
38 stdin = kwargs.get('stdin', None) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
39 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
40 cmd = array_call[0] | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
41 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
42 output = None | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
43 error = None | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
44 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
45 # TODO: Check the value of array_call and <=[0] | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
46 logging.debug("Calling {0}:".format(cmd)) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
47 logging.debug("%s", array_call) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
48 logging.debug("---------") | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
49 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
50 # TODO: Use universal_newlines option from Popen? | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
51 try: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
52 p = subprocess.Popen(array_call, stdout=stdout, | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
53 stderr=stderr, shell=shell, stdin=stdin) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
54 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
55 # TODO: Change this because of possible memory issues => https://docs.python.org/2/library/subprocess.html#subprocess.Popen.communicate | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
56 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
57 output, error = p.communicate() | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
58 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
59 if stdout == subprocess.PIPE: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
60 logging.debug("\t{0}".format(output)) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
61 else: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
62 logging.debug("\tOutput in file {0}".format(stdout.name)) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
63 # If we detect an error from the subprocess, then we raise an exception | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
64 # TODO: Manage if we raise an exception for everything, or use CRITICAL etc... but not stop process | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
65 # TODO: The responsability of returning a sys.exit() should not be there, but up in the app. | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
66 if p.returncode: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
67 if stderr == subprocess.PIPE: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
68 raise PopenError(cmd, error, p.returncode) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
69 else: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
70 # TODO: To Handle properly with a design behind, if we received a option as a file for the error | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
71 raise Exception("Error when calling {0}. Error as been logged in your file {1}. Error code: {2}" | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
72 .format(cmd, stderr.name, p.returncode)) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
73 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
74 except OSError as e: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
75 message = "The subprocess {0} has encountered an OSError: {1}".format( | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
76 cmd, e.strerror) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
77 if e.filename: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
78 message = '\n'.join( | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
79 (message, ", against this file: {0}".format(e.filename))) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
80 logging.error(message) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
81 sys.exit(-1) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
82 except PopenError as p: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
83 message = "The subprocess {0} has returned the error: {1}.".format( | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
84 p.cmd, p.return_code) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
85 message = '\n'.join( | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
86 (message, "Its error message is: {0}".format(p.error))) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
87 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
88 logging.exception(message) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
89 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
90 sys.exit(p.return_code) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
91 except Exception as e: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
92 message = "The subprocess {0} has encountered an unknown error: {1}".format( | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
93 cmd, e) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
94 logging.exception(message) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
95 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
96 sys.exit(-1) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
97 return p | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
98 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
99 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
100 def write_features(field, attribute, gff3): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
101 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
102 The function write the features to gff3 format (defined in https://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
103 field, attribute are ordered dictionary | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
104 gff3 is the file handler | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
105 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
106 attr = [] | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
107 for v in field.values(): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
108 gff3.write(str(v) + '\t') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
109 for k, v in attribute.items(): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
110 s = str(k) + '=' + str(v) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
111 attr.append(s) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
112 gff3.write(';'.join(attr)) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
113 gff3.write('\n') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
114 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
115 def twoBitInfo(two_bit_file_name, two_bit_info_file): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
116 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
117 Call twoBitInfo and write the result into twoBit_info_file | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
118 :param two_bit_file_name: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
119 :param two_bit_info_file: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
120 :return the subprocess.check_call return object: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
121 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
122 array_call = ['twoBitInfo', two_bit_file_name, two_bit_info_file] | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
123 p = _handleExceptionAndCheckCall(array_call) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
124 return p | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
125 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
126 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
127 def faToTwoBit(fasta_file_name, twoBitFile): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
128 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
129 This function call faToTwoBit UCSC tool, and return the twoBitFile | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
130 :param fasta_file_name: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
131 :param mySpecieFolder: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
132 :return: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
133 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
134 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
135 array_call = ['faToTwoBit', fasta_file_name, twoBitFile] | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
136 _handleExceptionAndCheckCall(array_call) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
137 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
138 return twoBitFile | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
139 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
140 def sortChromSizes(two_bit_info_file_name, chrom_sizes_file_name): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
141 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
142 Call sort with -k2rn on two_bit_info_file_name and write the result into chrom_sizes_file_name | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
143 :param two_bit_info_file_name: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
144 :param chrom_sizes_file_name: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
145 :return: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
146 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
147 array_call = ['sort', '-k2rn', two_bit_info_file_name, | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
148 '-o', chrom_sizes_file_name] | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
149 p = _handleExceptionAndCheckCall(array_call) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
150 return p | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
151 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
152 def getChromSizes(reference, tool_dir): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
153 #TODO: find a better way instead of shipping the two exec files with the tool | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
154 faToTwoBit = os.path.join(tool_dir, 'faToTwoBit') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
155 twoBitInfo = os.path.join(tool_dir, 'twoBitInfo') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
156 try: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
157 twoBitFile = tempfile.NamedTemporaryFile(bufsize=0) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
158 chrom_sizes = tempfile.NamedTemporaryFile(bufsize=0, suffix='.chrom.sizes', delete=False) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
159 except IOError as err: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
160 print "Cannot create tempfile err({0}): {1}".format(err.errno, err.strerror) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
161 try: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
162 subprocess.call(['faToTwoBit', reference, twoBitFile.name]) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
163 except OSError as err: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
164 print "Cannot generate twoBitFile from faToTwoBit err({0}): {1}".format(err.errno, err.strerror) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
165 try: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
166 subprocess.call(['twoBitInfo', twoBitFile.name, chrom_sizes.name]) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
167 except OSError as err: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
168 print "Cannot generate chrom_sizes from twoBitInfo err({0}): {1}".format(err.errno, err.strerror) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
169 return chrom_sizes | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
170 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
171 def sequence_region(chrom_sizes): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
172 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
173 This function read from a chromatin size file generated by twoBitInfo and write the information to dict | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
174 return a dict | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
175 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
176 f = open(chrom_sizes, 'r') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
177 sizes = f.readlines() | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
178 sizes_dict = {} | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
179 for line in sizes: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
180 chrom_info = line.rstrip().split('\t') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
181 sizes_dict[chrom_info[0]] = chrom_info[1] | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
182 return sizes_dict | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
183 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
184 def child_blocks(parent_field, parent_attr, gff3, child_type): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
185 num = 0 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
186 blockcount = int(parent_attr['blockcount']) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
187 chromstart = parent_attr['chromstarts'].split(',') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
188 blocksize = parent_attr['blocksizes'].split(',') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
189 parent_start = parent_field['start'] | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
190 while num < blockcount: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
191 child_attr = OrderedDict() | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
192 child_field = parent_field | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
193 child_field['type'] = child_type | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
194 child_field['start'] = int(chromstart[num]) + int(parent_start) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
195 child_field['end'] = int(child_field['start']) + int(blocksize[num]) - 1 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
196 child_attr['ID'] = parent_attr['ID'] + '_part_' + str(num+1) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
197 child_attr['Parent'] = parent_attr['ID'] | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
198 write_features(child_field, child_attr, gff3) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
199 num = num + 1 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
200 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
201 def add_tracks_to_json(trackList_json, new_tracks, modify_type): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
202 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
203 Add to track configuration (trackList.json) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
204 # modify_type = 'add_tracks': add a new track like bam or bigwig, new_track = dict() | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
205 # modify_type = 'add_attr': add configuration to the existing track, new_track = dict(track_name: dict()) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
206 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
207 with open(trackList_json, 'r+') as f: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
208 data = json.load(f) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
209 if modify_type == 'add_tracks': | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
210 data['tracks'].append(new_tracks) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
211 elif modify_type == 'add_attr': | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
212 for k in new_tracks: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
213 for track in data['tracks']: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
214 if k.lower() in track['urlTemplate'].lower(): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
215 attr = new_tracks[k] | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
216 for k, v in attr.items(): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
217 track[k] = v | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
218 f.seek(0, 0) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
219 f.write(json.dumps(data, separators=(',' , ':'), indent=4)) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
220 f.truncate() | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
221 f.close() | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
222 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
223 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
224 def createBamIndex(bamfile): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
225 subprocess.call(['samtools', 'index', bamfile]) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
226 filename = bamfile + '.bai' | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
227 if os.path.exists(filename): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
228 return filename | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
229 else: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
230 raise ValueError('Did not find bai file') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
231 | 
| 
7
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
232 def createFastaIndex(fastaFile): | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
233 subprocess.call(['samtools', 'faidx', fastaFile]) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
234 filename = fastaFile + '.fai' | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
235 if os.path.exists(filename): | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
236 return filename | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
237 else: | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
238 raise ValueError('Did not find fai file') | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
239 | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
240 def generate_indexed_refseq_track(fastaFile, referenceName, outputFolder): | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
241 faiFile = createFastaIndex(fastaFile) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
242 refSeqFile = os.path.join(outputFolder, referenceName) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
243 refSeqIndexFile = os.path.join(outputFolder, referenceName+'.fai') | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
244 shutil.copy(fastaFile, refSeqFile) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
245 shutil.copy(faiFile, refSeqIndexFile) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
246 | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
247 def remove_gene_lines(gff3_file, gff3_filtered): | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
248 with open(gff3_file, 'r') as f: | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
249 with open(gff3_filtered, 'w') as out: | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
250 for line in f: | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
251 if not line.startswith('#'): | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
252 feature_type = line.split('\t')[2].rstrip() | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
253 if feature_type == 'transcript' or feature_type == 'mRNA': | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
254 arr = line.split('\t') | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
255 # as we remove the gene features, we should also remove the Parent attribute (gene id) from the transcript | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
256 arr[8] = ';'.join([item for item in arr[8].split(';') if 'Parent=' not in item]).rstrip() | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
257 line = '\t'.join(arr) + '\n' | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
258 if feature_type == 'gene': | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
259 continue | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
260 out.write(line) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
261 | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
262 def gff3sort(inputFile, outputFile, precise=False): | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
263 array_call = ['gff3sort.pl', inputFile] | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
264 if precise: | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
265 array_call.append('--precise') | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
266 p = _handleExceptionAndCheckCall(array_call, stdout=outputFile) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
267 return p | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
268 | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
269 def bedSort(inputFile, outputFile): | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
270 array_call = ['sort', '-k1,1', '-k2,2n', '-k6,6', inputFile] | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
271 p = _handleExceptionAndCheckCall(array_call, stdout=outputFile) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
272 return p | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
273 | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
274 def bgzip(inputFile): | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
275 subprocess.call(['bgzip', inputFile]) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
276 filename = inputFile + '.gz' | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
277 if os.path.exists(filename): | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
278 return filename | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
279 else: | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
280 raise ValueError('Did not find gz file') | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
281 | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
282 def createTabix(inputFile, dataType): | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
283 subprocess.call(['tabix', '-p', dataType, inputFile]) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
284 filename = inputFile + '.tbi' | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
285 if os.path.exists(filename): | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
286 return filename | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
287 else: | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
288 raise ValueError('Did not find tbi file') | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
289 | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
290 def generate_tabix_indexed_track(inputFile, dataType, trackName, outputFolder): | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
291 if "bed" in dataType: | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
292 fileType = 'bed' | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
293 sortedFile = tempfile.NamedTemporaryFile(bufsize=0) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
294 bedSort(inputFile, sortedFile) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
295 elif "gff" in dataType: | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
296 fileType = 'gff' | 
| 
17
 
315a40b0b694
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit 891eca7a697643c9b5365781bbab5b655972ffdc
 
yating-l 
parents: 
16 
diff
changeset
 | 
297 filteredFile = tempfile.NamedTemporaryFile(bufsize=0) | 
| 
 
315a40b0b694
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit 891eca7a697643c9b5365781bbab5b655972ffdc
 
yating-l 
parents: 
16 
diff
changeset
 | 
298 remove_gene_lines(inputFile, filteredFile.name) | 
| 
7
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
299 sortedFile = tempfile.NamedTemporaryFile(bufsize=0) | 
| 
17
 
315a40b0b694
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit 891eca7a697643c9b5365781bbab5b655972ffdc
 
yating-l 
parents: 
16 
diff
changeset
 | 
300 gff3sort(filteredFile.name, sortedFile) | 
| 
7
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
301 # add .gff3.gz extension to Tabix GFF3 files, in order to enable creating name index with generate-names.pl | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
302 trackName = trackName + '.gff3.gz' | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
303 compressedFile = bgzip(sortedFile.name) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
304 tabixFile = createTabix(compressedFile, fileType) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
305 trackPath = os.path.join(outputFolder, trackName) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
306 trackIndexPath = os.path.join(outputFolder, trackName+'.tbi') | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
307 shutil.copy(compressedFile, trackPath) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
308 shutil.copy(tabixFile, trackIndexPath) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
309 | 
| 
6
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
310 def flatfile_to_json(inputFile, dataType, trackType, trackLabel, outputFolder, options=None, compress=True): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
311 if "bed" in dataType: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
312 fileType = "--bed" | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
313 elif "gff" in dataType: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
314 fileType = "--gff" | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
315 else: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
316 raise ValueError("%s is not a valid filetype for flatfile_to_json" % dataType) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
317 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
318 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
319 array_call = ['flatfile-to-json.pl', | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
320 fileType, inputFile, | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
321 '--trackType', trackType, | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
322 '--trackLabel', trackLabel, | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
323 '--out', outputFolder] | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
324 if compress: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
325 array_call.append('--compress') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
326 if options: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
327 config = options.get("config") | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
328 clientConfig = options.get("clientConfig") | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
329 renderClassName = options.get('renderClassName') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
330 subfeatureClasses = options.get('subfeatureClasses') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
331 load_type = options.get("type") | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
332 if clientConfig: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
333 array_call.append('--clientConfig') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
334 array_call.append(clientConfig) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
335 if config: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
336 array_call.append('--config') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
337 array_call.append(config) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
338 if load_type: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
339 array_call.append('--type') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
340 array_call.append(load_type) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
341 if renderClassName: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
342 array_call.append('--renderClassName') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
343 array_call.append(renderClassName) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
344 if subfeatureClasses: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
345 array_call.append('--subfeatureClasses') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
346 array_call.append(json.dumps(subfeatureClasses)) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
347 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
348 p = _handleExceptionAndCheckCall(array_call) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
349 return p | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
350 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
351 def bam_to_json(inputFile, trackLabel, outputFolder, options=None, compress=False): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
352 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
353 array_call = ['bam-to-json.pl', | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
354 '--bam', inputFile, | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
355 '--trackLabel', trackLabel, | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
356 '--out', outputFolder] | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
357 if compress: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
358 array_call.append('--compress') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
359 if options: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
360 config = options.get('config') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
361 clientConfig = options.get('clientConfig') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
362 if clientConfig: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
363 array_call.append('--clientConfig') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
364 array_call.append(clientConfig) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
365 if config: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
366 array_call.append('--config') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
367 array_call.append(config) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
368 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
369 p = _handleExceptionAndCheckCall(array_call) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
370 return p | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
371 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
372 def add_track_json(trackList, track_json): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
373 track_json = json.dumps(track_json) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
374 new_track = subprocess.Popen(['echo', track_json], stdout=subprocess.PIPE) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
375 p = subprocess.call(['add-track-json.pl', trackList], stdin=new_track.stdout) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
376 return p | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
377 | 
| 
7
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
378 def prepare_refseqs(fastaFile, outputFolder): | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
379 #array_call = ['prepare-refseqs.pl', '--fasta', fasta_file_name, '--out', outputFolder] | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
380 createFastaIndex(fastaFile) | 
| 
 
5d5fdcb798da
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 12fb52d5b285935b2353d93a5aa291838df7893e
 
yating-l 
parents: 
6 
diff
changeset
 | 
381 array_call = ['prepare-refseqs.pl', '--indexed_fasta', fastaFile, '--out', outputFolder] | 
| 
6
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
382 p = _handleExceptionAndCheckCall(array_call) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
383 return p | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
384 | 
| 
13
 
43a700afd457
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit bcb239c4045d2c47a8acad5fbd29eea03663e187
 
yating-l 
parents: 
7 
diff
changeset
 | 
385 def generate_names(outputFolder, nameIndexTrackList, hashBits=4): | 
| 
 
43a700afd457
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit bcb239c4045d2c47a8acad5fbd29eea03663e187
 
yating-l 
parents: 
7 
diff
changeset
 | 
386 array_call = ['generate-names.pl', '--hashBits', str(hashBits), '-v', '--completionLimit', '0', '--out', outputFolder] | 
| 
18
 
79b23a8afb15
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit 398c2fd8d1cb38decddf8cd58574cf39b1b52eaa
 
yating-l 
parents: 
17 
diff
changeset
 | 
387 if nameIndexTrackList: | 
| 
 
79b23a8afb15
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit 398c2fd8d1cb38decddf8cd58574cf39b1b52eaa
 
yating-l 
parents: 
17 
diff
changeset
 | 
388 array_call.append('--tracks') | 
| 
 
79b23a8afb15
planemo upload for repository https://github.com/goeckslab/jbrowse-archive-creator.git commit 398c2fd8d1cb38decddf8cd58574cf39b1b52eaa
 
yating-l 
parents: 
17 
diff
changeset
 | 
389 array_call.append(','.join(nameIndexTrackList)) | 
| 
6
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
390 p = _handleExceptionAndCheckCall(array_call) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
391 return p | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
392 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
393 def validateFiles(input_file, chrom_sizes_file_name, file_type, options=None): | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
394 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
395 Call validateFiles on input_file, using chrom_sizes_file_name and file_type | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
396 :param input_file: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
397 :param chrom_sizes_file_name: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
398 :param file_type: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
399 :return: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
400 """ | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
401 | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
402 array_call = ['validateFiles', '-chromInfo=' + chrom_sizes_file_name, '-type='+ file_type, input_file] | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
403 if options: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
404 tab = options.get("tab") | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
405 autoSql = options.get("autoSql") | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
406 logging.debug("tab: {0}".format(tab)) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
407 logging.debug("autoSql: {0}".format(autoSql)) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
408 if autoSql: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
409 autoSql = ''.join(['-as=', autoSql]) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
410 array_call.append(autoSql) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
411 if tab: | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
412 array_call.append('-tab') | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
413 p = _handleExceptionAndCheckCall(array_call) | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
414 return p | 
| 
 
237707a6b74d
planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit a500f7ab2119cc5faaf80393bd87428389d06880-dirty
 
yating-l 
parents:  
diff
changeset
 | 
415 | 
