Skip to content

Commit de1ff81

Browse files
committed
Copy over deeptoolsintervals fixes
1 parent 42c84e3 commit de1ff81

File tree

4 files changed

+18
-12
lines changed

4 files changed

+18
-12
lines changed

CHANGES.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
2.3.3
2+
3+
* The deeptoolsinterval module was modified to speed up plotEnrichment, which was taking forever to finish.
4+
15
2.3.1
26

37
* This release has no real code changes, the 2.3.0 release on pypi was missing files.

deeptools/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
# This file is originally generated from Git information by running 'setup.py
33
# version'. Distribution tarballs contain a pre-generated copy of this file.
44

5-
__version__ = '2.3.1'
5+
__version__ = '2.3.2'

deeptoolsintervals/enrichment.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from deeptoolsintervals.parse import GTF, openPossiblyCompressed
55
import sys
66
from os.path import basename
7-
import shlex
7+
import csv
88

99

1010
class Enrichment(GTF):
@@ -110,9 +110,10 @@ def parseGTF(self, fp, line):
110110
strand = 1
111111

112112
feature = cols[2]
113-
s = shlex.split(cols[8])
114-
if "deepTools_group" in s and s[-1] != "deepTools_group":
115-
feature = s[s.index("deepTools_group") + 1].rstrip(";")
113+
if "deepTools_group" in cols[8]:
114+
s = next(csv.reader([cols[8]], delimiter=' '))
115+
if s[-1] != "deepTools_group":
116+
feature = s[s.index("deepTools_group") + 1].rstrip(";")
116117

117118
self.tree.addEnrichmentEntry(self.mungeChromosome(cols[0]), int(cols[3]) - 1, int(cols[4]), strand, cols[5], feature)
118119
if feature not in self.features:
@@ -134,9 +135,10 @@ def parseGTF(self, fp, line):
134135
strand = 1
135136

136137
feature = cols[2]
137-
s = shlex.split(cols[8])
138-
if "deepTools_group" in s and s[-1] != "deepTools_group":
139-
feature = s[s.index("deepTools_group") + 1].rstrip(";")
138+
if "deepTools_group" in cols[8]:
139+
s = next(csv.reader([cols[8]], delimiter=" "))
140+
if s[-1] != "deepTools_group":
141+
feature = s[s.index("deepTools_group") + 1].rstrip(";")
140142

141143
self.tree.addEnrichmentEntry(self.mungeChromosome(cols[0]), int(cols[3]) - 1, int(cols[4]), strand, cols[5], feature)
142144
if feature not in self.features:

deeptoolsintervals/parse.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
except:
1010
supportsBZ2 = False
1111
import os.path
12-
import shlex
12+
import csv
1313

1414

1515
def getNext(fp):
@@ -41,7 +41,7 @@ def seemsLikeGTF(cols):
4141
cols[6] in ['+', '-', '.']
4242
if cols[7] != '.':
4343
int(cols[7]) in [0, 1, 2]
44-
s = shlex.split(cols[8])
44+
s = next(csv.reader([cols[8]], delimiter=' '))
4545
assert("gene_id" in s)
4646
assert(s[-1] != "gene_id")
4747
return True
@@ -373,7 +373,7 @@ def parseGTFtranscript(self, cols, label):
373373
sys.stderr.write("Warning: non-GTF line encountered! {0}\n".format("\t".join(cols)))
374374
return
375375

376-
s = shlex.split(cols[8])
376+
s = next(csv.reader([cols[8]], delimiter=' '))
377377
if "deepTools_group" in s and s[-1] != "deepTools_group":
378378
label = s[s.index("deepTools_group") + 1].rstrip(";")
379379
elif self.defaultGroup is not None:
@@ -420,7 +420,7 @@ def parseGTFexon(self, cols):
420420
sys.stderr.write("Warning: Invalid start in '{0}', skipping\n".format("\t".join(cols)))
421421
return
422422

423-
s = shlex.split(cols[8])
423+
s = next(csv.reader([cols[8]], delimiter=' '))
424424
if self.transcript_id_designator not in s or s[-1] == self.transcript_id_designator:
425425
sys.stderr.write("Warning: {0} is malformed!\n".format("\t".join(cols)))
426426
return

0 commit comments

Comments
 (0)