[BioPython] 1. Seq 객체를 생성
2024. 9. 11. 07:44ㆍBioinformatics
0. 개요
- 라이브러리: BioPython은 생물학 관련 기능을 제공하는 여러 모듈이 포함된 라이브러리입니다.
- 모듈: Bio.Seq 모듈은 DNA 서열 관련 클래스와 함수들을 제공합니다.
- 클래스: Seq 클래스는 생물학적 서열을 나타내며, 관련 메서드와 속성을 정의합니다.
- 인스턴스: seq = Seq("ATGC")는 Seq 클래스의 인스턴스입니다.
- 속성: seq 인스턴스의 data 속성은 "ATGC"라는 서열 데이터를 저장합니다.
- 메서드: seq.reverse_complement()는 해당 서열의 역상보 서열을 반환하는 메서드입니다.
1. 사용법
>>> from Bio.Seq import Seq
>>> seq = Seq("ATGaacGGCUGA")
>>> seq
Seq('ATGaacGGCUGA')
>>> # seq to upper
>>> seq = seq.upper()
>>> seq
Seq('ATGAACGGCUGA')
>>> # count A
>>> countA = seq.count("A")
>>> countA
4
>>> # transcribtion and translation of the DNA
>>> mrna = seq.transcribe()
>>> mrna
Seq('AUGAACGGCUGA')
>>> ptn = seq.translate()
>>> ptn
Seq('MNG*')
>>> # If there is stop codon in the middle, we stopped it.
>>> seq = Seq('ATGUAGGGCUGA')
>>> ptn = seq.translate(to_stop = True)
>>> ptn
Seq('M')
>>>
1. Seq라는 객체를 생성한다. --> seq = Seq("서열입력")
2 Seq의 method를 이용한다. --> seq.count("염기서열") , seq.transcribe(), seq.translate(option으로 to_stop = true를 설정할 수 있다. 설정을 하면, seq중간에 stop codon이 있을 시, 번역이 종료된다.)
2. 종결코돈을 기준으로 단백질 서열 분리하기
>>> ## We are going to split the Seq by "*"
>>> # 1. Make the instance of Seq class
>>> mrna = Seq("AUGUUAUGACCGUAGCACUGA")
>>> # 2. Make split of the instance Seq
>>> ptn = mrna.translate()
>>> ptn = ptn.split('*')
>>> ptn
[Seq('ML'), Seq('P'), Seq('H'), Seq('')]
split 결과는 list 형태로 반환된다. 따라서, for loop를 통해서 출력해 주면 된다.
3. CodonTable
from Bio.Data import CodonTable
codon_t = CodonTable.unambiguous_dna_by_name["Standard"]
codon_t = CodonTable.unambiguous_dna_by_name["Vertebrate Mitochondrial"]
4. ORF 찾기
>>> tatabox_seq = Seq("tataaaggcAATATGCAGTAG")
>>> start_idx = tatabox_seq.find("ATG")
>>> end_idx = tatabox_seq.find("TAG", start_idx)
>>> orf = tatabox_seq[start_idx : end_idx + 3]
>>> orf
Seq('ATGCAGTAG')
5. Bio.SeqUtils
from Bio.SeqUtils import GC ---> from Bio.SeqUtils import gc_fraction
>>> from Bio.SeqUtils import six_frame_translations
>>> seq = Seq("ATGCCTTGAAATGTATAG")
>>> six_frame_translations(seq)
Seq('GC_Frame: a:6 t:6 g:4 c:2
Sequence: atgccttgaaatgtatag...I
')
>>> print(six_frame_translations(seq))
GC_Frame: a:6 t:6 g:4 c:2
Sequence: atgccttgaaatgtatag, 18 nt, 33.33 %GC
1/1
A L K C I
C L E M Y
M P * N V *
atgccttgaaatgtatag 33 %
tacggaactttacatatc
G Q F T Y
H R S I Y L
A K F H I
DNA상에서 가능한 6가지의 번역 경우의 수 표현하기
>>> from Bio.SeqUtils import MeltingTemp as mt
>>> from Bio.Seq import Seq
>>> seq = Seq("ATGGCCGCGCGAGATTGAAGC")
>>> print(mt.Tm_Wallace(seq))
68.0
Tm 계산 방식
Wallace Rule (월리스 법칙)
Wallace 법칙은 DNA 서열에서 A-T 결합과 G-C 결합의 개수를 기반으로 Tm을 추정하는 방법입니다.
Tm_Wallace(seq) 함수는 다음 식을 사용하여 서열의 Tm을 계산합니다:
Tm=2 ×(A-T pair count)+4 ×(G-C pair count)
참고자료 : 바이오파이썬으로 만나는 생물정보학 / 한주현
'Bioinformatics' 카테고리의 다른 글
| [M/O] Akkermansia muciniphila (0) | 2024.09.20 |
|---|---|
| [BioPython] Entrez (0) | 2024.09.19 |
| [BioPython] BLAST (0) | 2024.09.18 |
| [BioPython] FASTA,FASTQ,GENBANK : SeqIO,Entrez (0) | 2024.09.13 |
| [BioPython] wget을 이용해 github 데이터를 다운받을때 (0) | 2024.09.12 |