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
|
from collections import defaultdict
class realign:
def __init__(self):
self.sequence = ""
self.precursors = defaultdict(isomir)
self.score = []
self.best_hits = [] # maybe sam object?
def set_precursor(self, precursor, isomir):
self.precursors[precursor] = isomir
def remove_precursor(self, precursor):
del self.precursors[precursor]
class isomir:
def __init__(self):
self.t5 = "0"
self.t3 = "0"
self.add = []
self.subs = []
self.align = None
self.start = 0
self.mirna = None
def format(self, sep="\t"):
subs = "".join(["".join(map(str, mism)) for mism in self.subs])
if not subs:
subs = "0"
add = "0" if not self.add else self.add
return "%s%s%s%s%s%s%s" % (subs, sep, add, sep,
self.t5, sep, self.t3)
def get_score(self, sc):
for a in self.add:
if a in ['A', 'T']:
sc -= 0.25
else:
sc -= 0.75
for e in self.subs:
sc -= 1
return sc
|