Использование KEGG API

Существенно облегчить работу с KEGG можно, написав скрипты, которые используют KEGG API. Приведены примеры для Perl и R.


По адресу http://www.genome.jp/kegg/soap/doc/keggapi_manual.html размещено описание API, который позволяет вызывать сервисы KEGG из ваших программ посредством SOAP. На странице описаны примеры использования для Perl, Java и Ruby, хотя по идее все должно работать с любым языком, поддерживающим SOAP/WSDL.

Пример вызова из Perl

use SOAP::Lite;     # конечно, этот модуль должен быть установлен
 
 
# произносим магическое заклинание и подсоединяемся к KEGG
$wsdl = 'http://soap.genome.jp/KEGG.wsdl';
$serv = SOAP::Lite -> service($wsdl);
 
# получить ген b1940 из E.Coli K12
$result = $serv -> bget("eco:b1940");
 
# получить все гены, которые принадлежат к кластеру KEGG Orthology
@result = $serv->get_genes_by_ko('ko:K02982', 'all');
 
# выделить заданные гены на картинке с гликолизом
$genes = SOAP::Data->type(array => ["eco:b1002", "eco:b2388"]);
$result = $serv -> mark_pathway_by_objects("path:eco00010", $genes);
print $result;    # здесь хранится URL сгенерированный картики
 
# получить все гены E.coli с заданной EC-классификацией
@result = $serv -> get_genes_by_enzyme('ec:1.2.1.1', 'eco')
 

 

Пример вызова из R

Вам потребуется установить пакеты XMLSchema и SSOAP. Оба этих пакета не включены в CRAN и их нужно брать отсюда - www.omegahat.org/SSOAP/ и www.omegahat.org/XMLSchema/ Пакеты поставляются только в исходниках, поэтому пользователям R под Windows нужно дополнительно установить RTools и скомпилировать пакеты.

Применение этих пакетов для KEGG SOAP показано в пакете KEGGSOAP (входит в Bioconductor). Однако там реализованы далеко не все функции KEGG API. Приведу пример заклинания для вызова произвольной функции KEGG API на примере get_genes_by_ko(), которая возвращает идентификаторы генов принадлежащих заданной группе ортологов.

 

 library(SSOAP); library(XMLSchema); 
 KEGGserver = SOAPServer("soap.genome.jp", url="/keggapi/request_v6.2.cgi");
 res = .SOAP(KEGGserver, "get_genes_by_ko",
             .soapArgs=list('ko_id' = 'ko:K08289', 'org'='all'),
             action="SOAP/KEGG", xmlns = "SOAP/KEGG",
             nameSpaces = SOAPNameSpaces(version="1.2")) 

 

Пользоваться всем этим очень удобно, работает относительно быстро. Если возникнут вопросы - задавайте их в комментах, попробуем вместе разобраться.

Добавить комментарий


Защитный код
Обновить