File tree 2 files changed +39
-5
lines changed
2 files changed +39
-5
lines changed Original file line number Diff line number Diff line change 30
30
# strand=gene.getStrand()
31
31
# substrate=gene.getSubstrate()
32
32
# gff=gene.toGff()
33
+ # exons=gene.getMergedExons()
33
34
#
34
35
######################################################################
35
36
@@ -38,6 +39,27 @@ def __init__(self):
38
39
self .transcripts = []
39
40
self .transcriptHash = {}
40
41
42
+ def getMergedExons (self ):
43
+ transcripts = self .transcripts
44
+ exons = []
45
+ for transcript in transcripts :
46
+ raw = transcript .getRawExons ()
47
+ exons .extend (raw )
48
+ #print("RAW:",len(raw))
49
+ #for i in range(len(raw)):
50
+ #print("\t",raw[i].begin,raw[i].end)
51
+ #print()
52
+ exons .sort (key = lambda x : x .begin )
53
+ n = len (exons )
54
+ i = 0
55
+ while (i < n - 1 ):
56
+ if (exons [i ].overlaps (exons [i + 1 ])):
57
+ exons [i ].end = max (exons [i ].end ,exons [i + 1 ].end )
58
+ del exons [i + 1 ]
59
+ n -= 1
60
+ else : i += 1
61
+ return exons
62
+
41
63
def getStrand (self ):
42
64
transcripts = self .transcripts
43
65
transcript = transcripts [0 ]
Original file line number Diff line number Diff line change 15
15
#filename="/home/bmajoros/1000G/assembly/local-genes.gff"
16
16
#filename="/home/bmajoros/1000G/assembly/tmp.gff"
17
17
#filename="test/data/tmp.gff"
18
- filename = "test/data/local-genes.gff"
18
+ #filename="test/data/local-genes.gff"
19
+ filename = "/home/bmajoros/ensembl/protein-coding.gff"
19
20
20
21
reader = GffTranscriptReader ()
22
+ genes = reader .loadGenes (filename )
23
+ for gene in genes :
24
+ exons = gene .getMergedExons ()
25
+ unmerged = 0
26
+ for transcript in gene .transcripts :
27
+ unmerged += len (transcript .getRawExons ())
28
+ print (unmerged ,"exons merged to" ,len (exons ))
29
+ #for i in range(len(exons)):
30
+ # print("MERGED TO:",exons[i].begin,exons[i].end)
31
+ # print()
32
+
21
33
#transcripts=reader.loadGFF(filename)
22
34
#for transcript in transcripts:
23
35
#print(transcript.getID())
49
61
#for key in keys:
50
62
# print(key)
51
63
52
- hashTable = reader .loadGeneIdHash (filename )
53
- keys = hashTable .keys ()
54
- for key in keys :
55
- print (key )
64
+ # hashTable=reader.loadGeneIdHash(filename)
65
+ # keys=hashTable.keys()
66
+ # for key in keys:
67
+ # print(key)
56
68
You can’t perform that action at this time.
0 commit comments