| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- Kaggle
- MERS
- HMM
- 인공지능
- BLaST
- 자바
- 인공지능 수학
- RNN
- 캐글
- 블록체인
- Java
- bioinformatics
- AP
- 결정트리
- SVM
- 딥러닝
- 바이오인포매틱스
- 서열정렬
- COVID
- 생물정보학
- AP Computer Science A
- 이항분포
- 인공신경망
- 시그모이드
- CNN
- 생명정보학
- 파이썬
- 오류역전파
- 바이오파이썬
- ncbi
- Today
- Total
데이터 과학
슬라이싱 시퀀스 본문
파이썬과 같은 스크립트 언어들의 강점은 텍스트 마이닝과 같은 텍스트 분석이 쉽다는 점입니다.
바이오파이썬도 이런 기능들이 있어 단순 서열 정렬에 대한 분석이 가능합니다.
https://www.ncbi.nlm.nih.gov/nuccore/NR_073443.2?report=fasta
Homo sapiens histone deacetylase 2 (HDAC2), transcript variant 3, non- - Nucleotide - NCBI
no features Feature First Previous Next Last Details
www.ncbi.nlm.nih.gov
>NR_073443.2 Homo sapiens histone deacetylase 2 (HDAC2) 일부 서열을 가져다가 분석을 해 보면 다음과 같습니다.
>>>from Bio.Seq import Seq
>>>my_seq = Seq("AACCCGTTCCCGGCCCGGCACAGTTAGAACGAGACCCTCTTCCTGGCGCAGCCCCCGCGGTTCCTGCGGG")
>>>my_seq[3:15]
3:15는 4번째 위치 부터 15번째 위치까지의 결과를 화면에 나타낸다. Seq('CCGTTCCCGGCC') 결과가 나타납니다.
:: 은 시작위치와 끝나는 위치에 대한 반복을 표현한다. codon값을 찾아낼때 유용하게 쓰입니다.
>>>my_seq[0::3] // 첫번째 핵산
Seq('ACTCGCCATAGACTCGCCCCTCCG')
>>>my_seq[1::3] //두번째 핵산
Seq('ACTCCGAGAAACTTTCACCGTTG')
>>>my_seq[2::3] //세번째 핵산
Seq('CGCGCGCTGCGCCCGGGCGGCGG')
전체 서열 표현
>>>str(my_seq)
'AACCCGTTCCCGGCCCGGCACAGTTAGAACGAGACCCTCTTCCTGGCGCAGCCCCCGCGGTTCCTGCGGG'
문자열로 결과가 표현되는 것과 달리 print 명령어를 쓰면
AACCCGTTCCCGGCCCGGCACAGTTAGAACGAGACCCTCTTCCTGGCGCAGCCCCCGCGGTTCCTGCGGG
으로 결과가 나타납니다.
FASTA 형식으로 서열을 표현하려면 다음과 같은 명령어를 사용하면 됩니다.
Name에다 이름을 넣어주고 서열 출력.
>>>fasta_format_string = ">Name\n%s\n" % my_seq
>>>print(fasta_format_string)
>Name AACCCGTTCCCGGCCCGGCACAGTTAGAACGAGACCCTCTTCCTGGCGCAGCCCCCGCGGTTCCTGCGGG
fasta_format_string = ">NR_073443.2 Homo sapiens histone deacetylase 2 (HDAC2) \n%s\n" % my_seq
print(fasta_format_string)
>NR_073443.2 Homo sapiens histone deacetylase 2 (HDAC2) AACCCGTTCCCGGCCCGGCACAGTTAGAACGAGACCCTCTTCCTGGCGCAGCCCCCGCGGTTCCTGCGGG
연결자 연산자(+)를 이용해서 두개의 서열을 합치는 명령어는 다음과 같습니다.
>>>protein_seq = Seq("MESLVLGVNEKTHVQ")
>>>dna_seq = Seq("AACCCGTT")
>>>protein_seq + dna_seq
Seq('MESLVLGVNEKTHVQAACCCGTT')
파이썬 명령어인 list를 이용해서 서열을 연결하는 방법도 있습니다.
>>>list_of_seqs = [Seq("ACGT"), Seq("AACC"), Seq("GGTT")]
>>>concatenated = Seq("")
>>>for s in list_of_seqs:
>>> concatenated += s
>>>concatenated
결과 다음과 같이 나타납니다.
Seq('ACGTAACCGGTT')
이를 바이오파이썬 명령어인 join을 이용하면 연결자와 비슷하거나 향상된 기능을 만들어 낼 수 있습니다.
>>>contigs = [Seq("ATG"), Seq("ATCCCG"), Seq("TTGCA")]
>>>spacer = Seq("N"*10)
>>>spacer.join(contigs)
결과는 중간에 N을 10번 반복하라는 명령어를 추가합니다.
Seq('ATGNNNNNNNNNNATCCCGNNNNNNNNNNTTGCA')
upper() 함수와 lower()함수를 이용하면 핵산을 대소문자로 바꿀 수 있습니다.
>>>dna_seq = Seq("acgtACGT")
>>>dna_seq
Seq('acgtACGT')
>>>dna_seq.upper()
Seq('ACGTACGT')
>>>dna_seq.lower()
Seq('aacccgtt')
핵산 서열(Nucleotide sequence)를 유전적 대응(complement, A<->T, C<->G) 값으로 나타내거나 reverse 할 수 있습니다.
>>>my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC")
>>>my_seq
Seq('GATCGATGGGCCTATATAGGATCGAAAATCGC')
>>>my_seq.complement()
Seq('CTAGCTACCCGGATATATCCTAGCTTTTAGCG')
>>>my_seq.reverse_complement()
Seq('GCGATTTTCGATCCTATATAGGCCCATCGATC')
여기까지가 바이오파이썬 튜토리얼 chapter 3.6까지의 내용이었습니다.
이후에 다시 chapter 3을 마무리 하도록 하겠습니다.
'생명정보학 & 화학정보학 > 바이오파이썬' 카테고리의 다른 글
| GenBank 정보 불러오기 (2) | 2021.08.15 |
|---|---|
| 바이오파이썬 단백질 분석 : COVID-19 게놈(Genome) (1) | 2021.07.27 |
| COVID-19: Biopython으로 단백질 식별하는 방법 (Kaggle) (1) | 2021.07.18 |
| 간단한 예제 (1) | 2021.07.10 |
| 바이오 파이썬 설치 방법 (1) | 2021.07.09 |