2023.06.07 : R풀이 추가
| Problem
한 줄로 주어진 DNA서열에서 'A', 'C', 'G', 'T' 순으로 4개의 염기 숫자 세기
| 데이터와 결과
- Sample Dataset
'AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC'
- Sample Output
20 12 17 21
| Python
내 풀이
element = ['A','C','G','T']
with open('rosalind_dna.txt','r') as f :
DNA = f.readline()
for i in element :
print(DNA.count(i), end=' ') # end=' '가 자동 줄바꿈은 없에면서 출력시 띄어쓰기 가능하게 함
추천 높은 풀이 by Maurício Verardo da Costa
def qt(s):
return s.count("A"), s.count("G"), s.count("C"), s.count("T")
이거 실행은 안되긴 하는데 일단 다른 풀이보다 엄청 빠르다고 함
일단 대단하다
file = open('./rosalind1.txt', 'r')
string = file.read()
freq = {'A': 0, 'C': 0, 'G': 0, 'U': 0}
for i in string:
freq[i] = freq[i] + 1
print freq['A'], freq['C'], freq['G'], freq['U']
count를 4번 시행하는 것보단 이렇게 읽어가면서 하나씩 추가하는게 빠를것 같기두 하다
- 다른 풀이 by Tintin Emilou
nucleotides = file('rosalind_dna.txt').read()
print [nucleotide.count(c) for c in 'ACGT']
| R
library(dplyr)
library(stringr)
seq <- "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC"
a <- c()
for(i in c("A", "C", "G", "T")) {
c(a, str_extract_all(seq, i) %>% unlist %>% length)
}
a
반응형