문제해결(PS)/ROSALIND

Computing GC Content (GC비율 계산하기)

곰탱이장 2024. 7. 21. 09:08

https://rosalind.info/problems/gc/

 

ROSALIND | Computing GC Content

It appears that your browser has JavaScript disabled. Rosalind requires your browser to be JavaScript enabled. Computing GC Content solved by 31087 2012년 8월 3일 12:00:00 오전 by Rosalind Team Topics: String Algorithms Identifying Unknown DNA Quickly

rosalind.info

 이 문제는 FASTA 파일이 주어지면 파일 안의 서열 중 가장 높은 GC 비율을 가진 서열의 ID와 그 서열의 GC 비율을 출력하면 되는 문제이다. 문제 자체는 어렵지 않지만 특정 모듈 없이 FASTA 파일을 다루는 것은 약간 난해한 일이다. 그렇기에 필자는 Biopython 모듈을 이용하여 문제를 풀었다. 

from Bio import SeqIO #바이오파이썬의 모듈

fasta_list = SeqIO.parse(r'파일경로','fasta')#파일을 fasta형식으로 읽음

Max_=-1
for a in fasta_list:#파일 안의 여러 서열
    GC=0
    seqA = a.seq
    for c in seqA:#서열에서
        if c == 'C' or c=='G':#GC개수 세기
            GC+=1
    GCc=GC/len(seqA)#GC비율
    if GCc > Max_:#최대인지 비교
        Max_=GCc
        MaxID=a.id

print(MaxID)
print(Max_*100)#비율이기에 100을 곱함