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 에서 잘 보임...
성공 !!!!!!!
'python' 카테고리의 다른 글
| beautiful Soup, PhantomJS 사용한 javacript web scraping ( pubmed ) (1) | 2014.09.24 |
|---|---|
| python debugging -- exception 발생한 file name, line number 찾기 (0) | 2014.09.19 |
| python -- self, 클래스멤버(변수) , 인스턴스멤버(변수), 생성자, 소멸자 (0) | 2014.08.27 |
| python anagram --- timeit 실행시간 확인 (0) | 2014.08.24 |
| python 으로 github api v3 접근하기 -- httplib (0) | 2014.08.22 |


