본문 바로가기
생물정보학/Biopython (바이오파이썬)

[바이오파이썬] 4.1. Sequence Record 객체

by HanJoohyun 2017. 10. 29.
반응형



안녕하세요 한주현 입니다.



오늘은 Sequence Record 객체에 대해 알아보겠습니다.




이전 03. Sequence 객체 단원에서는 문자열 같은 Sequence 객체에 대해서 알아보았는데요,


오늘 말씀드릴 Sequence Record는 서열 뿐만 아니라 여러 정보를 가지고 있는 객체입니다.



4.1 SeqRecord 객체

 .seq - Sequence 그 자체 입니다 [Seq 객체]

 .id - primary ID 로 sequence를 판별할 때 사용하며 대부분의 경우 accession number입니다. [문자열]

 .name - sequence의 이름으로 accession number와 같을 수도 있습니다. [문자열]

 .description - 사람이 읽을 수 있는 설명입니다 [문자열]

 .letter_annotations - letter 단위의 annotation을 사전형으로 가지고 있습니다. [사전형]

 .annotations - sequence의 추가적 정보를 사전형으로 가지고 있습니다.[사전형]

 .features - sequence 특징을 더 구조적으로 보여줍니다. (genome에서 gene의 위치, domain, 단백질 서열 등) [리스트]

 .dbxrefs - cross-reference 데이터베이스[리스트]




4.2 SeqRecord 만들기 - Seq객체로부터 만들기


SeqRecord를 만드는 것은 간단합니다.


아래 처럼 우선 Seq 객체를 만듭시다.


1
2
from Bio.Seq import Seq
simple_seq = Seq("GATC")
cs

그 다음 Seq 객체를 가지고 SeqRecord를 만듭니다.

단순히 Sequence만 가진 최소한의 정보만으로도 SeqRecord를 만들 수 있습니다.


1
2
3
from Bio.SeqRecord import SeqRecord
simple_seq_r = SeqRecord(simple_seq)
print(simple_seq_r)
cs


위의 코드에서 SeqRecord를 출력해보면,


ID: <unknown id>

Name: <unknown name>

Description: <unknown description>

Number of features: 0

Seq('GATC', Alphabet())


과 같이 결과가 나옵니다.


1
print(simple_seq_r.id)
cs


ID: <unknown id>


SeqRecord 객체에 각 메서드로 값들에 접근 할 수 있습니다.


메서드에 접근하듯이 값을 넣을 수도 있습니다.


1
2
3
simple_seq_r.id = "AC12345"
simple_seq_r.description = "Made up sequence I wish I could write a paper about"
print(simple_seq_r)
cs


값을 넣은 뒤 출력해보면 이렇게 결과가 나옵니다.


ID: AC12345

Name: <unknown name>

Description: Made up sequence I wish I could write a paper about

Number of features: 0

Seq('GATC', Alphabet())




이렇게 간단히 Seq 객체로 부터 SeqRecord 객체를 만들 수 있으며,

처음에 SeqRecord를 생성할 때 부터 정보를 넣어 줄 수도 있습니다.


id를 넣으면서 SeqRecord를 생성해보겠습니다.


1
2
3
4
5
from Bio.Seq import Seq
simple_seq1 = Seq("GATC")
from Bio.SeqRecord import SeqRecord
simple_seq_r1 = SeqRecord(simple_seq1, id="AC12345")
print(simple_seq_r1)
cs


ID: AC12345

Name: <unknown name>

Description: <unknown description>

Number of features: 0

Seq('GATC', Alphabet())



생성된 SeqRecords 객체에 annotations를 직접 넣어 보겠습니다


1
2
simple_seq_r.annotations["evidence"= "None. I just made it up."
print(simple_seq_r.annotations)
cs


{'evidence': 'None. I just made it up.'}



annotation과 letter_annotations은 dictionary key-value 쌍으로 집어 넣을 수 있습니다.


1
2
3
simple_seq_r.letter_annotations["phred_quality"= [40,40,38,30]
print(simple_seq_r.letter_annotations)
print(simple_seq_r)
cs


{'phred_quality': [40, 40, 38, 30]}

ID: AC12345

Name: <unknown name>

Description: Made up sequence I wish I could write a paper about

Number of features: 0

/evidence=None. I just made it up. 

Per letter annotation for: phred_quality

Seq('GATC', Alphabet())  





오늘은 여기까지 포스팅 하겠습니다 ㅎㅎ


다음시간에는 SeqRecord를 직접 입력하는 것이 아닌 FASTA파일로 부터 생성하는 방법에 대해 알아보겠습니다



그럼 다음시간에 만나요~~~






반응형

댓글