-
Notifications
You must be signed in to change notification settings - Fork 1
/
Genic_Elements.py
131 lines (103 loc) · 3.29 KB
/
Genic_Elements.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# By Scott Teresi
# The below code contains my class for genes and transposons
from collections import defaultdict
#-------------------------------------
class Genic_Element(object):
def __init__(self, number, chromosome, start, stop ):
self.number = number
self.chromosome = chromosome
self.start = int(start)
self.stop = int(stop)
def getNumber(self):
return self.number
def getChromosome(self):
return self.chromosome
def getStart(self):
return self.start
def getStop(self):
return self.stop
def getLength(self):
return self.length
class TE(Genic_Element):
def __init__(self, number, chromosome, start, stop, length, te_type, family):
super().__init__(number, chromosome, start, stop)
self.te_type = te_type
self.family = family
self.length = length
def getTe_Type(self):
return self.te_type
def getFamily(self):
return self.family
class Gene(Genic_Element):
def __init__(self, number, chromosome, start, stop, maker_name):
super().__init__(number, chromosome, start, stop)
self.maker_name = maker_name
self.window_size = 0
# I am going to create a left, center, and right density for each TE element, including classes and families
# This is where things get obnoxiously complicated.
# Classes are my two distinctions (referred to in my code as type and fam)
# Classes:
self.DNA_left = 0
self.DNA_intra= 0
self.DNA_right = 0
self.LTR_left = 0
self.LTR_intra= 0
self.LTR_right = 0
self.Unknown_left = 0
self.Unknown_intra= 0
self.Unknown_right = 0
self.LINE_left = 0
self.LINE_intra= 0
self.LINE_right = 0
#-----------------
# families
self.MULE_left = 0
self.MULE_intra= 0
self.MULE_right = 0
self.Gypsy_left = 0
self.Gypsy_intra= 0
self.Gypsy_right = 0
self.Unknown_fam_left = 0
self.Unknown_fam_intra= 0
self.Unknown_fam_right= 0
self.CMC_EnSpm_left = 0
self.CMC_EnSpm_intra= 0
self.CMC_EnSpm_right = 0
self.Copia_left = 0
self.Copia_intra= 0
self.Copia_right = 0
self.LINE_fam_left = 0
self.LINE_fam_intra= 0
self.LINE_fam_right = 0
self.hAT_left = 0
self.hAT_intra= 0
self.hAT_right = 0
self.PIF_Harbinger_left = 0
self.PIF_Harbinger_intra= 0
self.PIF_Harbinger_right = 0
self.LTRUnknown_left = 0
self.LTRUnknown_intra = 0
self.LTRUnknown_right = 0
#------------------------
# Proximities
self.prox_left = None
self.prox_right = None
#------------------------
# TE_Count
self.they_are_inside = 0
def getMaker_Name(self):
return self.maker_name
def getFrag_Name(self):
return self.Frag_Name
def getleft(self):
return self.left_density
def getright(self):
return self.right_density
def getintra(self):
return self.intra_density
def getProxRight(self):
return self.prox_right
def getProxLeft(self):
return self.prox_left
if __name__ == '__main__':
pass