annotate RaGOO/ragoo_utilities/GFFReader.py @ 13:b9a3aeb162ab draft default tip

Uploaded
author dereeper
date Mon, 26 Jul 2021 18:22:37 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
1 #!/usr/bin/env python
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
2
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
3
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
4 class GFFLine:
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
5
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
6 def __init__(self, in_fields):
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
7 self.seqname = in_fields[0]
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
8 self.source = in_fields[1]
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
9 self.feature = in_fields[2]
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
10 self.start = int(in_fields[3])
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
11 self.end = int(in_fields[4])
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
12 self.score = in_fields[5]
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
13 self.strand = in_fields[6]
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
14 self.frame = in_fields[7]
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
15 self.attribute = in_fields[8]
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
16
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
17 def __str__(self):
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
18 all_atts = [
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
19 self.seqname,
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
20 self.source,
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
21 self.feature,
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
22 self.start,
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
23 self.end,
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
24 self.score,
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
25 self.strand,
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
26 self.frame,
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
27 self.attribute
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
28 ]
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
29 all_atts = [str(i) for i in all_atts]
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
30 return '\t'.join(all_atts)
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
31
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
32
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
33 class GFFReader:
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
34
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
35 def __init__(self, in_gff_file):
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
36 self.gff_file = in_gff_file
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
37
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
38 def parse_gff(self):
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
39 with open(self.gff_file) as f:
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
40 for line in f:
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
41 if not line.startswith('#'):
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
42 L1 = line.rstrip().split('\t')
b9a3aeb162ab Uploaded
dereeper
parents:
diff changeset
43 yield GFFLine(L1)