-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAmino.py
34 lines (27 loc) · 1.35 KB
/
Amino.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
import numpy as np
class Amino:
def __init__(self, features=[]):
self.residues = features[:22]
self.secondary_structure = features[22:31]
self.terminals = features[31:33]
self.accessibility = features[33:35]
self.sequence_profile = features[35:]
def isFirst(self):
return self.terminals[0]==1
def isLast(self):
return self.terminals[1]==1
def getResidueLetter(self):
primary_letters = ['A', 'C', 'E', 'D', 'G', 'F', 'I', 'H', 'K', 'M', 'L', 'N', 'Q', 'P', 'S', 'R', 'T', 'W', 'V', 'Y', 'X','NoSeq']
return primary_letters[self.residues.tolist().index(1)]
def getSecondaryLetter(self):
secondary_letters = ['L', 'B', 'E', 'G', 'I', 'H', 'S', 'T','NoSeq']
return secondary_letters[self.secondary_structure.tolist().index(1)]
def updateFeatures(self,residues=[],secondary=[],terminals=[],accs=[],sequence=[]):
if(residues!=[]): self.residues = residues
if(secondary!=[]): self.secondary_structure = secondary
if(terminals!=[]): self.terminals = terminals
if(accs!=[]): self.accessibility = accs
if(sequence!=[]): self.sequence_profile = sequence
def toArray(self):
a = np.concatenate((self.residues,self.secondary_structure,self.terminals,self.accessibility,self.sequence_profile))
return a