반응형

vienna format 으로 RNA 그리기


테스트환경 : windows 7 32bit


TEXT : Managing Your Biological Data with Python, 2014 

             - page 421. Recipe 8: Parsing RNA 2D Structures in the Vienna Format


참고 사이트 :   

        http://www.tbi.univie.ac.at/RNA/      ---> software download

        https://www.biostars.org/p/68894/    --->  cat myfold.txt | RNAplot -o svg

        http://rna.tbi.univie.ac.at/help.html#A6    ---> Dot bracket notation



 

class RNA_structure:
    def __init__(self, vienna):
        lines = vienna.split('\n')
        self.name = lines[0].strip()
        self.seq = lines[1].strip()
        self.bp = sorted(self.parse_bp(lines[2].strip()))
                         
    def parse_bp(self, dotbr):
        stack = []
        # print ' dotbracket ==> ', dotbr
        for i, char in enumerate(dotbr):
            if char == '(':
                stack.append(i)
            elif char == ')':
                j= stack.pop()
            # print 'stack ==> ', stack
        yield j,i


if __name__ == '__main__':
    
    vienna = """> two hairpin loops
    AAACCCCGUUUCGGGGAACCACCA
    ((((...)))).((((..)).)).
    """

    rna = RNA_structure(vienna)
    print rna.name
    print rna.seq
    print 'rna.bp == ', rna.bp
    
    for b1, b2 in rna.bp:
        print '(%i, %i)' % (b1,b2)
	


위의 다운로드 링크에서 ViennaRNA package 다운받아 설치한다. 

  * 내 경우에는  C:\Program Files\ViennaRNA Package  디렉토리에 설치됨.


위의 코드중에서 vienna 변수에 설정된게 vienna file format? 이므로, 이를 txt 파일로 따로 저장한다.




-- 위 처럼 ViennaRNA package 설치된 곳에 저장된게 확인 되면...

     이제는 svg 그림 파일로 만들어 보자.



     ===> linux  에서는 type 명령어 대신에 cat 명령어 사용하면 될 듯!




--> svg 파일 생성 된게 보인다.



svg 파일을 double click 하니..  IE 에서 잘 보임... 



성공 !!!!!!!























반응형
Posted by 자유프로그램
,