[Rosalind] Computing GC Content

2022. 5. 12. 10:03· Bioinformatics/Rosalind
목차
  1. Problem
  2. Sample Dataset
  3. Sample Output
  4. 내가 쓴 답
  5.  
  6. 추천 많이 받은 답 by Gaik Tamazian

Problem

DNA서열 "AGCTATAG"의 GC비율을 37.5%= 3/8*100

가장 높은 GC-콘텐츠를 가진 문자열의 ID와 그 문자열의 GC-콘텐츠를 반환합니다

 

Sample Dataset

>Rosalind_6404
nCCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCCTCCCACTAATAATTCTGAGG
>Rosalind_5959
CCATCGGTAGCGCATCCTTAGTCCAATTAAGTCCCTATCCAGGCGCTCCGCCGAAGGTCTATATCCATTTGTCAGCAGACACG
>Rosalind_0808
CCACCCTCGTGGTATGGCTAGGCATTCAGGAACCGGAGAACGCTTCAGACCAGCCCGGACTGGGAACCTGCGGGCAGTAGGTGGAAT

Sample Output

Rosalind_0808
60.919540

내가 쓴 답

#파일 줄바꿈 없이 한번에 받기
with open('rosalind_gc.txt', 'r') as f :
    line = f.read().replace('\n', '').split('>')
 
line = line[1:len(line)] # line[0]이 ''로 나오길래 없애줌


#이름만 받기 
name=[]
seq=[]

for i in range(len(line)) :
    name.append(line[i][0:13])
    seq.append(line[i][13:])
    

#GC count세기
content=[]

for j in range(10):
    count = 0
    for i in range(len(seq[j])) : 
        if 'G' == seq[j][i] or 'C'==seq[j][i] :
            count+=1
    content.append(count/len(seq[j])*100)

# 답 출력하기
max_cg = max(content)
index = content.index(max_cg)
print(f'{name[index]}', f'{content[index]:.6f}', sep='\n')

 

 

추천 많이 받은 답 by Gaik Tamazian

f = open('rosalind_gc.txt', 'r')

max_gc_name, max_gc_content = '', 0

buf = f.readline().rstrip()
while buf:
    seq_name, seq = buf[1:], ''
    buf = f.readline().rstrip()
    while not buf.startswith('>') and buf:
        seq = seq + buf
        buf = f.readline().rstrip()
    seq_gc_content = (seq.count('C') + seq.count('G'))/float(len(seq))
    if seq_gc_content > max_gc_content:
        max_gc_name, max_gc_content = seq_name, seq_gc_content

print('%s\n%.6f%%' % (max_gc_name, max_gc_content * 100))
f.close()

이 코드로 실행하면 뒤에 %가 붙어서 출력되긴 하지만 내가 푼 방식 보다 Rosalind에서 의도한 풀이법임(값을 비교하여 큰값을max에 넣음)

 

 

반응형
저작자표시 비영리 (새창열림)
  1. Problem
  2. Sample Dataset
  3. Sample Output
  4. 내가 쓴 답
  5.  
  6. 추천 많이 받은 답 by Gaik Tamazian
'Bioinformatics/Rosalind' 카테고리의 다른 글
  • [Rosalind] Mendel's First Law
  • [Rosalind] Calculating Protein Mass
  • [Rosalind] Translating RNA into Protein
  • [Rosalind] Finding a Motif in DNA (Python/R)
김해김씨99대손
김해김씨99대손
kim.soyeon.bio@gmail.com 오류수정, 피드백, 질문 메일 언제든지 환영합니다!
김해김씨99대손
Bioinfo_newbie
김해김씨99대손

블로그 메뉴

  • 블로그홈
  • Github
  • 글쓰기
  • 설정
  • 분류 전체보기 (362)
    • 자기소개 (1)
    • Bioinformatics (213)
      • Sequencing data (24)
      • Taxonomy (12)
      • Metagenome (5)
      • Microbiome (5)
      • └ Qiime2 (13)
      • └ Dada2 (8)
      • └ R for microbiome (39)
      • └ 기타 (28)
      • Biopython (2)
      • 생물정보학 교육 (11)
      • Rosalind (18)
      • Article (25)
      • 기타 (20)
      • 채용 공고 (3)
    • Statistics (0)
    • Machine Learning (2)
    • Biology (16)
    • Big data (4)
      • 기타 (4)
    • Programming (2)
      • Python (2)
      • R (47)
      • R_Package function (2)
      • My R package (1)
      • Linux (7)
    • Database (2)
    • Management (0)
    • 대학원 (29)
      • 스크랩 (10)
    • 일상 (14)
      • Big picture (2)
      • 다이어리 (10)
    • 기타 (9)

공지사항

인기 글

최근 댓글

전체
오늘
어제
hELLO · Designed By 정상우.v4.2.2
김해김씨99대손
[Rosalind] Computing GC Content
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.