ABOUT ME

이민규 MinGyu Lee holo@wisewolf.org

Chung-Ang Uinv Computer Science & Engineering Bachelor's degree, ZeroPage, CLUG, Kakao corp

Today
-
Yesterday
-
Total
-
  • Open Reading Frames
    Bioinformatics/Rosalind 2019. 3. 2. 00:30

    http://rosalind.info/problems/orf/

    ORF를 찾는 문제.


    Open Reading Frame은 개시코돈으로 시작하고 종결코돈으로 끝나는 seqence이다. 물론 triplet codon이어야하므로 ATGATAA같은경우는 ORF에 해당하지 않는다.


    regex를 사용하면 간단하지만 겹쳐있는경우는 찾기가 어려워 그냥 dna sequence의 sub sequence들에서 전부 찾았다.


    from util.read import read_fasta
    from textwrap import wrap
    import re
    from util.func_tools import DNA_CODON_TABLE

    seq = read_fasta('rosalind_orf.txt')[0][1]
    complement = ''.join(list(map(lambda base: 'A' if base is 'T' else 'T' if base is 'A' else 'C' if base is 'G' else 'G', seq))[::-1])

    result = set()
    for idx in range(len(seq)):
    try:
    orf = re.search('ATG(...)*?(?=TAA|TAG|TGA)', seq[idx:]).group()
    result.add(''.join(map(lambda triplet: DNA_CODON_TABLE[triplet], wrap(orf, 3))))
    except:
    pass
    try:
    orf = re.search('ATG(...)*?(?=TAA|TAG|TGA)', complement[idx:]).group()
    result.add(''.join(map(lambda triplet: DNA_CODON_TABLE[triplet], wrap(orf, 3))))
    except:
    pass
    print('\n'.join(result))

    사실 이 정규식이 전부다.

    ATG(...)*?(?=TAA|TAG|TGA)


    https://github.com/elwlwlwk/Rosalind

    'Bioinformatics > Rosalind' 카테고리의 다른 글

    Independent Alleles  (0) 2019.06.08
    Locating Restriction Sites  (0) 2019.03.04
    RNA Splicing  (0) 2019.03.03
    Calculating Protein Mass  (0) 2019.03.02
    github  (0) 2019.01.31

    댓글

Designed by Tistory.