Skip to content

Commit 710ccb7

Browse files
committed
improves grabbing name from gff
1 parent 614537d commit 710ccb7

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

covviz/gff.py

+9-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@ def parse_gff(path, traces, exclude, ftype="gene", regex="Name="):
2020
trace_name = os.path.basename(path).partition(".gff")[0].partition(".gtf")[0]
2121
with gzopen(path) as fh:
2222
cleaned = filterfalse(lambda i: i[0] == "#", fh)
23-
name_re = re.compile(r"%s([^;]*)" % regex)
23+
24+
if regex != "Name=":
25+
name_re = re.compile(r"(?:%s([^;]*))|(?:gene_name=([^;]*))|(?:Name=([^;]*))|(?:name=([^;]*))" % regex)
26+
else:
27+
name_re = re.compile(r"(?:gene_name=([^;]*))|(?:Name=([^;]*))|(?:name=([^;]*))")
28+
2429
for chrom, entries in groupby(
2530
cleaned, key=lambda i: i.partition("\t")[0].lstrip("chr")
2631
):
@@ -48,10 +53,11 @@ def parse_gff(path, traces, exclude, ftype="gene", regex="Name="):
4853
start = int(toks[3])
4954
end = int(toks[4])
5055
try:
51-
name = name_re.findall(toks[8])[0]
56+
name = [i for i in name_re.findall(toks[8])[0] if i][0]
5257
name = name.strip('"').strip("'")
5358
except IndexError:
54-
name = ""
59+
# just grab the first item in the semi-colon delimited list
60+
name = re.findall(r"([^;]*)", toks[8])[0]
5561
genes.append([start, end, name])
5662
traces[chrom]["annotations"]["gff"].append([trace_name, genes])
5763
return traces

0 commit comments

Comments
 (0)