Sequence record 객체
이번 장에서는 Sequence record 객체의 속성에 대해 알아보고 FASTA파일과 GenBank파일을 읽어 SeqRecord객체를 만들어보도록 합니다.
1. SeqRecord 객체
SeqRecord(Sequence recod) 객체는 Chapter4에서 학습한 Seq객체에 추가적인 정보를 넣을 수 있는 객체입니다. 단순히 서열만 다룬다면 Seq객체를 사용하면 지만 서열 외에 서열의 이름, NCBI의 ID 등과 같이 추가적인 정보들을 한 객체 안에 넣어야 한다면 SeqRecord를 사용하는 것이 바람직합니다.
1) SeqRecord 객체 생성 방법 1. 문자열(Seq객체)로부터 SeqRecord 객체 만들기
In [1]:
#1. Seq 객체에서 SeqRecord 객체 생성하기
from Bio.Seq import Seq
from Bio.SeqRecord import SeqRecord
#먼저 Sequence 객체를 만듭니다.
my_seq = Seq("ACGT")
#SeqRecord 객체를 만듭니다.
my_seqRecord = SeqRecord(my_seq)
print(my_seqRecord)
Sequence객체만 넣어서 SeqRecord객체를 만들었기 때문에 Seq을 제외한 나머지 속성들은 unknown으로 표기 된 것입니다. 이제 각 속성에 정보를 대입하는 것을 해봅니다.
In [2]:
#2. SeqRecord 객체생성시 초기값 넣기
my_seq = Seq("ATGC")
my_seqRecord = SeqRecord(my_seq, id= "NC_1111", name= "Test") #SeqRecord친 뒤 shift+tab누르면 대입할 수 있는 속성값 정보가 나옵니다.
print(my_seqRecord)
SeqRecord(
seq, 서열을 의미
id= Locus와 같은 ID를 의미
name= 서열의 이름을 의미하며 유전자 이름과 같은 것이 들어갈 수도 있다.
description= 추가 설명
dbxrefs= 추가 데이터베이스가 있다면 내용이 들어간다.
features= 서열 구간에 대한 특징이 들어간다.
annotations= 추가 설명이 파이썬 사전형 형태로 넣을 수 있다.
letter_annotations= 파이썬 사전형 형태로 사용자가 추가 설명을 키-값 싸응로 넣을 수 있다.
)
In [3]:
#3. 각 속성값에 접근하기 : dot notation을 사용하면 됩니다.
my_seqRecord.name = "another Test"
print(my_seqRecord)
2) SeqRecord 객체 생성 방법 2. FASTA 파일로부터 SeqRecord 객체 만들기
In [4]:
#4. FASTA파일에서 SeqRecord 객체 생성하기
#먼저 FASTA파일을 읽어 SeqRecord객체로 만들기 위해 바이오파이썬의 SeqIO.read()메서드를 사용합니다.
#SeqIO.read(파일, 파일 종류)
from Bio import SeqIO
my_FASTA = SeqIO.read("NC_005816.fna", "fasta")
print(type(my_FASTA))
print(my_FASTA)
3) SeqRecord 객체 생성 방법 3. GenBank 파일로부터 SeqRecord 객체 만들기
In [5]:
#5. GenBank파일에서 SeqRecord 객체 생성하기
from Bio import SeqIO
my_genbank = SeqIO.read("NC_005816.gb", "genbank")
print(type(my_genbank))
print(my_genbank)
그 외에도 biopython에서 지원하는 파일 형식 목록은 http://www.biopython.org/wiki/SeqIO#file-formats
출처: https://korbillgates.tistory.com/89 [생물정보학자의 블로그]
2. SeqRecord 객체 간 비교하기
SeqRecord 자체를 통째로 비교연산자를 사용해서 비교하면 NotImplementedError가 발생한다. 즉, SeqRecord의 각 속성을 비교해야 한다.
In [6]:
#6. SeqRecord 객체 간 속성 비교
from Bio.Seq import Seq
from Bio.SeqRecord import SeqRecord
seq1 = Seq("ACGT")
record1 = SeqRecord(seq1)
seq2 = Seq("ACGT")
record2 = SeqRecord(seq2)
print(record1.seq == record2.seq)
'Data Science > Bioinformatics with Biopython' 카테고리의 다른 글
8. Chapter7. Multiple Sequence Alignment (1) | 2020.03.20 |
---|---|
6. Chapter4-2. Gene Sequences - Sequence object (0) | 2020.03.13 |
5. Chapter4-1. Gene Sequences - Sequence object (0) | 2020.03.10 |
4. Chapter3. Introduction of the Bioinformatics File Format (0) | 2020.03.08 |
3. Chapter2. Biopython Installation (0) | 2020.03.08 |