コード例 #1
0
ファイル: __init__.py プロジェクト: yohell/msaview
 def from_file(cls, f, sequence_id=None):
     if sequence_id is None:
         sequence_id = os.path.splitext(os.path.basename(f.name))[0]
     sequence = []
     prediction = []
     for line in f:
         words = line.split()
         if len(words) != 2:
             continue
         linetype = words[0].lower()
         if linetype == 'aa:':
             sequence.append(words[1])
         elif linetype == 'pred:':
             prediction.append(words[1])
     regions = make_regions(''.join(prediction), '*')
     return cls(sequence_id, sequence=''.join(sequence), regions=regions)
コード例 #2
0
ファイル: __init__.py プロジェクト: yohell/msaview
 def handle_msa_change(self, msa, change):
     if not change.has_changed('sequences'):
         return
     if msa.ungapped is None:
         self.backbones = None
         self.gaps = None
         return
     self.backbones = [ContiguousRegion(make_regions(u, bool)) for u in msa.ungapped]
     self.gaps = []
     for backbone in self.backbones:
         gap_parts = []
         previous = None
         for part in backbone.parts:
             if previous is None:
                 previous = part
                 continue
             gap_start = previous.start + previous.length
             gap_parts.append(Region(gap_start, part.start - gap_start))
         self.gaps.append(ContiguousRegion(gap_parts))
     self.emit('changed', Change('visualization'))