Документ взят из кэша поисковой машины. Адрес оригинального документа : http://kodomo.fbb.msu.ru/hg/allpy/annotate/757f2a1f8732/lib/block.py
Дата изменения: Unknown
Дата индексирования: Sun Mar 2 02:36:01 2014
Кодировка:
allpy: lib/block.py annotate

allpy

annotate lib/block.py @ 0:757f2a1f8732

Initial commit with the lib modules
author Boris Burkov <BurkovBA@gmail.com>
date Fri, 21 May 2010 20:30:40 +0400
parents
children bbf3a797cc67
rev   line source
BurkovBA@0 1 #!usr/bin/python
BurkovBA@0 2
BurkovBA@0 3 import sys
BurkovBA@0 4
BurkovBA@0 5 import configure
BurkovBA@0 6 import project
BurkovBA@0 7 import sequence
BurkovBA@0 8 import monomer
BurkovBA@0 9 import rooted_tree
BurkovBA@0 10 from Lgamma import Lgamma
BurkovBA@0 11
BurkovBA@0 12 class Block(object):
BurkovBA@0 13 """
BurkovBA@0 14 Mandatory data:
BurkovBA@0 15 * self.project -- project object, which the block belongs to
BurkovBA@0 16 * self.sequences - list of sequence objects, that contain monomers
BurkovBA@0 17 and/or gaps, that constitute the block
BurkovBA@0 18 * self.positions -- positions of the project.alignment that are
BurkovBA@0 19 included in the block
BurkovBA@0 20
BurkovBA@0 21 How to create a new block:
BurkovBA@0 22 >>> import project
BurkovBA@0 23 >>> import block
BurkovBA@0 24 >>> proj = project.Project(open("test.fasta"))
BurkovBA@0 25 >>> block1 = block.Block(proj, proj.sequences, range(len(proj.alignment[proj.sequences[0]])))
BurkovBA@0 26
BurkovBA@0 27 """
BurkovBA@0 28
BurkovBA@0 29 def __init__(self,project,sequences,positions):
BurkovBA@0 30 self.project=project
BurkovBA@0 31 self.sequences=sequences
BurkovBA@0 32 self.positions=positions
BurkovBA@0 33
BurkovBA@0 34 def to_fasta(self,file):
BurkovBA@0 35 """writes the block as an alignment in fasta-format into the file.
BurkovBA@0 36
BurkovBA@0 37 No changes in the names, descriptions or order of the sequences
BurkovBA@0 38 are made.
BurkovBA@0 39
BurkovBA@0 40 """
BurkovBA@0 41 for sequence in self.sequences:
BurkovBA@0 42 file.write(">%s %s\n"%(sequence.name,sequence.description))
BurkovBA@0 43 string_index=0
BurkovBA@0 44 for position in self.positions:
BurkovBA@0 45 if string_index>=60:
BurkovBA@0 46 file.write("\n")
BurkovBA@0 47 string_index=0
BurkovBA@0 48 if self.project.alignment[sequence][position]==None:
BurkovBA@0 49 file.write("-")
BurkovBA@0 50 string_index+=1
BurkovBA@0 51 else:
BurkovBA@0 52 file.write(self.project.alignment[sequence][position].code)
BurkovBA@0 53 string_index+=1
BurkovBA@0 54 file.write("\n")
BurkovBA@0 55