Ruby에서 KEGG 검색

결론부터 쓰면 BioRuby의 TogoWS 클래스를 사용하면 됩니다.

KEGG란?



KEGG 교토 대학 화학 연구소에서 만들어진 대사 경로의 데이터베이스입니다. 패스웨이 분석에 자주 사용되는 것 같습니다.

BioRuby란?



Ruby에서 유전자 정보 등을 다루는 라이브러리입니다.
htps : // 기주 b. 코 m / 비오루 by / 비오루 by
인터넷에 있는 BioRuby의 정보는 오래된 경우가 많기 때문에, 레퍼런스는 최신의 것을 보는 것이 좋다고 생각됩니다.
htps //w w. 하는 by c. 인후 / 게 ms / 비오

설치
gem install bio

TogoWS란?



(NCBI, EBI) 및 (DDBJ, KEGG, PDBj, CBRC)에서 제공하는 주요 데이터베이스와 분석 서비스를 통합하여 이용하기 위해 생명과학 통합 데이터베이스 센터가 작성한 서비스입니다.
h tp : ///와 ws. dbcls. jp/

Ruby에서 TogoWS 사용



먼저 사용할 수 있는 데이터베이스를 확인합니다.

항목에서 검색할 수 있는 데이터베이스 목록을 표시합니다.
Bio::TogoWS::REST.entry_database_list

검색할 수 있는 데이터베이스 목록을 표시합니다.
Bio::TogoWS::REST.search_database_list

grep에서 KEGG와 관련된 데이터베이스를 추출합니다.
Bio::TogoWS::REST.search_database_list.grep(/kegg/)





kegg-compound
compound

kegg-drug
drug

kegg-enzyme
enzyme

kegg-genes
genes

kegg-glycan
glycan

kegg-orthology
orthology

kegg-reaction
reaction

kegg-module
module

kegg-pathway
pathway


KEGG에서 PD-1 검색하기



이번에는 2018년 혼쇼 선생님의 노벨상을 기념하여 "PD-1"을 검색해 보겠습니다.

PD-1에 대해 쓰면, 이 분자는 백혈구의 표면에 자라는 스위치와 같은 것으로, 암세포가 PD-L1이라는 전용 단백질로 이것과 결합하면 백혈구의 공격을 회피한다 수 있다고 합니다. 따라서 암세포에 백혈구의 스위치를 만지지 않는 것이 중요합니다. 거기서, 혈액 중에 스위치의 커버를 대량으로 흘리는 것으로, 백혈구의 스위치를 먼저 덮어 버려, 암세포에 스위치를 만지지 않도록 해 버리는 약이 옵시보라고 이해하고 있습니다. (잘못하면 죄송합니다.)

TogoWS에서 kegg-gene에서 PD-1을 검색해보십시오.
puts Bio::TogoWS::REST.search("kegg-genes", "PD-1")
# たくさん情報が出るので、人間(hsa)にしぼる
puts Bio::TogoWS::REST.search("kegg-genes", "PD-1").split("\n").grep(/hsa/)

결과
hsa:100526842   RPL17-C18orf32, PD-1, RPL17; RPL17-C18orf32 readthrough
hsa:6139    RPL17, L17, PD-1, RPL23; ribosomal protein L17
hsa:64115   VSIR, B7-H5, B7H5, C10orf54, DD1alpha, GI24, PD-1H, PP2135, SISP1, VISTA; V-set immunoregulatory receptor
hsa:5133    PDCD1, CD279, PD-1, PD1, SLEB2, hPD-1, hPD-l, hSLE1; programmed cell death 1

4건 히트했습니다. 맨 아래의 엔트리가 요구하는 PD-1이라고 생각됩니다. hsa:5133 은 hsapiens(인간)에서 KEGG 엔트리 넘버가 5133번이라는 의미라고 생각됩니다. 그런 다음 이 항목 번호를 사용하여 PD-1 정보를 표시합니다.
pd1 = Bio::TogoWS::REST.entry("kegg-genes", "hsa:5133")
pd1.class
# => String
puts pd1

다음과 같이 표시된다고 생각합니다. (글꼴: 미카짱 )


이것은 캐릭터 라인이므로, 프로그램으로 취급하기 쉽도록 KEGG::GENES 클래스의 인스턴스를 작성합니다.
pd1 = Bio::KEGG::GENES.new(pd1)

pd1.class
# => Bio::KEGG::GENES
pd1.entry
=> {"id"=>"5133", "division"=>"CDS", "organism"=>"T01001"}
pd1.name
# => "PDCD1, CD279, PD-1, PD1, SLEB2, hPD-1, hPD-l, hSLE1"

PD-1이 포함된 경로를 살펴봅니다.
pd1.pathways
# => {"hsa04514"=>"Cell adhesion molecules (CAMs)",
# "hsa04660"=>"T cell receptor signaling pathway"}

두 가지가 있습니다. 이 중 T cell receptor signaling pathway (T 세포 수용체 시그널 패스웨이)의 정보를 취득해 보겠습니다.

그 전에 패스웨이의 이미지를 보고 싶은 곳입니다만, 불행하게도 현행(1.5.2)의 BioRuby로 패스웨이의 이미지를 취득하는 방법을 몰랐습니다. 거기서 wget 로 수동으로 취득합니다. 왼쪽 상단에 PD-1이 있다는 것을 알 수 있습니다.
wget https://www.genome.jp/kegg/pathway/hsa/hsa04660.png



다시 TogoWS에 액세스하여 Bio::KEGG::PATHWAY 클래스의 인스턴스를 만듭니다.
str = Bio::TogoWS::REST.entry("kegg-pathway","hsa04660")
tcell_pathway = Bio::KEGG::PATHWAY.new(str)

이 pathway에 포함된 유전자를 열거해 보겠습니다.
tcell_pathway.genes

# => {"915"=>"CD3D; CD3d molecule [KO:K06450]",
#  "916"=>"CD3E; CD3e molecule [KO:K06451]",
#  "917"=>"CD3G; CD3g molecule [KO:K06452]",
#  "919"=>"CD247; CD247 molecule [KO:K06453]",
#  "920"=>"CD4; CD4 molecule [KO:K06454]",
#  "925"=>"CD8A; CD8a molecule [KO:K06458]",
#  "926"=>"CD8B; CD8b molecule [KO:K06459]",
#  "5788"=>"PTPRC; protein tyrosine phosphatase, receptor type C [KO:K06478] [EC:3.1.3.48]",
#  "3932"=>"LCK; LCK proto-oncogene, Src family tyrosine kinase [KO:K05856] [EC:2.7.10.2]",
#  "2534"=>"FYN; FYN proto-oncogene, Src family tyrosine kinase [KO:K05703] [EC:2.7.10.2]",
#  "7535"=>"ZAP70; zeta chain of T cell receptor associated protein kinase 70 [KO:K07360] [EC:2.7.10.2]",
# 以下略

좀처럼 부드럽게 보이지는 않지만 Ruby에서 TogoWS를 통해 KEGG를 검색하는 방법을 썼습니다.
여기는 이러한 편이 좋다, 등 있으면 코멘트란 등에서 지적해 주시면 다행입니다.

좋은 웹페이지 즐겨찾기