본문 바로가기

전체 글78

URL로 FASTA 서열 가져오기 보호되어 있는 글 입니다. 2023. 5. 22.
[ROSALIND] 단백질 서열로 번역하기 문제 (풀어보기) RNA 서열이 주어졌을 때 단백질 서열로 번역하시오. 다만, RNA 서열은 항상 AUG로 시작하고 stop codon으로 끝나기 때문에 3 frame을 고려할 필요는 없다. 예시 AUGGCCAUGGCGCCCAGAACUGAGAUCAAUAGUACCCGUAUUAACGGGUGA 예상 결과 MAMAPRTEINSTRING 해결 codon = {} with open("aa_codon.txt", "r") as f: for line in f.readlines(): aa = line.split() for i in range(0, len(aa), 2): codon[aa[i]] = aa[i+1] def translation(rna): protein = '' for i in range(0, len(rna), .. 2023. 5. 14.
파이썬 벡터 사용하기 Goal 1. 딥러닝에서 벡터화(vectorization)의 장점 알아보기 2. 파이썬의 다양한 벡터화 연산 코드 알아보기 벡터화(Vectorization)을 사용하는 이유 딥러닝에선 엄청 많은 양의 데이터를 다루게 된다. 이 때, 많은 양의 데이터간에 곱셈와 같은 어떤 연산을 하게 되면 시간이 너무 오래 걸리는게 큰 문제가 된다. 예를 들어, 각각 백만개의 숫자를 가진 a와 b 배열에서 a와 b간의 모든 숫자를 곱하여 더해야한다면 일반적으로는 for문을 통해 할 수 있을 것이다. 하지만 시간이 너무 오래 걸리기 때문에 이럴 때 파이썬 numpy 라이브러리에 내제되어 있는 벡터 함수들을 사용하면 아주 빠르게 같은 작업을 수행할 수 있다! import numpy as np import time a = np.. 2023. 5. 13.
그리디 알고리즘(Greedy algorithm)이란? Goal 1. 그리디 알고리즘에 대해 알아보기 2. 예시 문제 풀어보기 그리디 알고리즘이란? 그리디(Greedy)란 단어는 탐욕이란 뜻을 가지고 있다. 그래서 그냥 쉽게 생각해서 코딩 문제를 풀 때 욕심쟁이처럼 지금 현재 가장 좋은 선택, 가장 최적의 선택만 하면 된다! 나중에 어떻게 되든간에 일단은 제일 최선의 선택을 계속 해나가면서 전체적으로도 그냥 최적의 선택이었기를 바라는 것이다. 예제 문제 (백준 5585번) 잔돈을 주는데 거스름돈 개수가 가장 적에 만들어보는 문제이다. 잔돈으로는 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 무한개가 있다고 생각하면 된다. Hint 1. 개수가 가장 적으려면 금액이 큰거부터 주면 될까 작은거부터 주면 될까? 해결 # 문제에서 준 입력값은 내야할 금액이므.. 2023. 5. 12.
딥러닝 표준 기호 Goal 1. 딥러닝 논문에서 흔히 사용하는 표준 기호 알아보기 딥러닝 표준 기호 딥러닝을 설명할 때 흔히 수학 기호를 볼 수 있는데 하나씩 알아보자! 기본적인 기호 x(1), x(2), ... x(m) 값들은 각각 몇만개의 데이터값들을 가질수 있기 때문에 매트릭스 형태로 바꾸어 표기하는게 훨씬 간편하다. X 매트릭스는 m개의 열과 nx개의 행을 가지게 된다. 이것을 수학 기호로는 이렇게 표기한다: 이 정보를 파이썬으로는 이렇게 얻는다: print(X.shape)# (nx, m)가 출력된다. Y 매트릭스는 이렇게 표기한다: 수학 기호로 표기하면 이렇게: print(Y.shape)# (1, m)가 출력된다. 보시다시피 X와 Y 매트릭스 둘 다 m개의 열을 가지고 있다. 즉, m개의 데이터로 모델 학습을 한.. 2023. 5. 11.
바이오마커란? Goal 1. 바이오마커가 의미하는게 뭔지 설명하기 2. 바이오마커의 종류 알아보기 바이오마커란? 사람의 상태에 대한 정보를 주는 것은 여러가지가 있다. 예를 들어, 코를 훌쩍이고 목이 아프다면 감기일 것이라고 예상할 수 있다. 이처럼 바이오마커란 사람의 상태 변화에 대해 정보를 주는 것 중에 우리몸에서 수치화 시킬 수 있는 분자적 물질, 특히 DNA, RNA, 단백질 같은걸 얘기한다. 위에서 말한거처럼 감기 같은 질병에 대한 상태 정보를 주기도 하지만 약물에 어떤 반응이 있는지를 측정하기 위해 사용하기도 한다. 특히 새로운 약물을 개발할 때 여러 검증 및 동물 시험을 하지만 실패율이 높은 이유는 약물의 효능과 부작용을 더 정확하게 알려줄 수 있는 좋은 바이오마커를 찾기 힘들기 때문이다. 바이오마커의 예.. 2023. 5. 10.
[ROSALIND] DNA 변이 개수 세기 문제 (풀어보기) Hamming distance란 같은 길이를 가진 2개의 문자열 간의 다른 문자 개수를 얘기합니다. DNA 염기서열 2개가 주어졌을 때, Hamming distance를 구하시오. 예시 GAGCCTACTAACGGGAT CATCGTAATGACGGCCT 예상 결과 7 해결 seq1, seq2 = '', '' with open("rosalind_hamm.txt", "r") as file: seq1 = file.readline().strip() seq2 = file.readline().strip() print(sum(seq1[i] != seq2[i] for i in range(len(seq1)))) 2023. 5. 9.
[ROSALIND] GC 비율 문제 (풀어보기) GC 비율이란 DNA 염기서열 전체 중 'G'와 'C'가 차지하는 비율이다. 최대 10개의 DNA 서열이 주어졌을 때, 가장 높은 GC 비율을 가진 서열의 이름과 GC 비율(%)을 구하시오. 예시 >Rosalind_6404 CCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCC TCCCACTAATAATTCTGAGG >Rosalind_5959 CCATCGGTAGCGCATCCTTAGTCCAATTAAGTCCCTATCCAGGCGCTCCGCCGAAGGTCT ATATCCATTTGTCAGCAGACACGC >Rosalind_0808 CCACCCTCGTGGTATGGCTAGGCATTCAGGAACCGGAGAACGCTTCAGACCAGCCCGGAC TGGG.. 2023. 5. 8.
[ROSALIND] 피보나치 숫자 문제 피보나치 숫자 0,1,1,2,3,5,8,13,21,34,… 의 패턴은 매우 간단하다. 그 다음 올 숫자는 그 전 두 숫자를 더한 값이다. n번째로 오는 숫자를 반환하시오. 예시 6 예상 결과 8 해결 def fibonacci(n): a,b = 0,1 for i in range(2, n+1): a,b = b,a+b print(b) 첫번째와 두번째 숫자가 각각 0과 1이라는 것을 알기 때문에 for문으로 간단하게 더해가면 된다. 2023. 5. 7.