fRNAdb::API
Table of Contents
Introduction
fRNAdb API is a web service using fRNAdb via an application program. fRNAdb API provides search and data retrieval services via REST and SOAP services. The REST service can be accessed using HTTP GET method and the SOAP service can be accessed using HTTP POST method.
REST Service
If you want to search using the keyword "miRNA", you access the following URL via your web browser:
http://www.ncrna.org/frnadb/api/search/miRNA
You can also use a more complex query that combines terms, operators, and parentheses (see fRNAdb API Query Syntax). You will receive the following XML response.
<?xml version="1.0" encoding="UTF-8"?>
<result version="3.0" xmlns="http://www.ncrna.org/frnadb/api/XMLSchema/search">
<query>
<offset>0</offset>
<limit>100</limit>
<query_string>miRNA</query_string>
</query>
<count>70110</count>
<entry_list next="http://www.ncrna.org/frnadb/api/search/miRNA/100,100">
<entry id="FR000003" link="http://www.ncrna.org/frnadb/api/entry/FR000003" />
:
<entry id="FR000608" link="http://www.ncrna.org/frnadb/api/entry/FR000608" />
</entry_list>
</result>
Hit count is found between <count>tag, value is 70,110.
Hit entries are listed between <entry_list>tag. If hit count is more than 100, only first 100 entries are returned. Next 100 entries are returned by next request:
http://www.ncrna.org/frnadb/api/search/miRNA/100,100
Response details are described in fRNAdb API Response.
The REST service provides the following API. The API response is in XML.
| URL | Description | Response |
| BaseURL/search/query | Returns hit count and hit entry list (only first 100 entries). | Search Response |
| BaseURL/search/query/offset,limit | Returns hit count and hit entry list. Entry list range can be requested by offset and limit. offset=100, limit=100 → 101-200th entries Default value of limit is 100. Max value of limit is 5000. |
Search Response |
| BaseURL/search/query/count | Returns only hit count. | Search Response |
| BaseURL/entry/EntryID | Returns all features of requested entry. | Entry Response |
| BaseURL/entry/EntryID/feature | Returns only requested feature of requested entry. | Entry Response |
| BaseURL/entry/EntryID/map/info | Returns genome list. Listed genomes have map feature of requested entry. | Genome Response |
| BaseURL/entry/EntryID/map/genome | Returns map feature of requested entry for requested genome. | Entry Response |
| BaseURL : http://www.ncrna.org/frnadb/api |
||
Feature details are described in fRNAdb API Entry Feature
For several features, a non-XML response can be requested.
Available URL is as following.
| URL | Format |
| BaseURL/entry/EntryID/map/genome.gff | Sanger Institute GFF |
| BaseURL/entry/EntryID/map/genome.bed | UCSC BED |
| BaseURL/entry/EntryID/seq.fasta | NCBI FASTA |
REST Example
| Request | URL Sample |
| Database search | http://www.ncrna.org/frnadb/api/search/miRNA |
| Database search (offset,limit requested) | http://www.ncrna.org/frnadb/api/search/miRNA/101,100 |
| Database search (return only hit count) | http://www.ncrna.org/frnadb/api/search/miRNA/count |
| Entry retrieval (all feature) | http://www.ncrna.org/frnadb/api/entry/FR000001 |
| Entry retrieval (seq feature) | http://www.ncrna.org/frnadb/api/entry/FR000001/seq |
| Entry retrieval (FASTA formated sequence) | http://www.ncrna.org/frnadb/api/entry/FR000001/seq.fasta |
| Entry retrieval (mapped genome list) | http://www.ncrna.org/frnadb/api/entry/FR000120/map/info |
| Entry retrieval (map feature) | http://www.ncrna.org/frnadb/api/entry/FR000120/map/hg18 |
| Entry retrieval (GFF formated map feature) | http://www.ncrna.org/frnadb/api/entry/FR000120/map/hg18.gff |
| Entry retrieval (BED formated map feature) | http://www.ncrna.org/frnadb/api/entry/FR000120/map/hg18.bed |
SOAP Service
You can use the search and data retrieval services with SOAP.
The SOAP clients Perl, Python, Ruby and Java are supported.
For Perl, as an example, install the SOAP::Lite module (and other required modules) and write a client script to call the SOAP service.
The script must include the WSDL specification and some of following methods.
| Method | Parameters | Description |
| search_count | query_string | Returns only hit count. |
| search | query_string, offset, limit |
Returns hit count and hit entry list. Set region with offset and limit. offset=100, limit=100 → 101-200 entries . Default value of limit is 100. Max value of limit is 5000. |
| entry | query_string, feature, map_genome |
Returns features of requested entry. Either all features or a requested feature. Feature details are described in fRNAdb API Entry Feature. NOTE: 'map_genome' limits mapping information to a specific genome. 'map_genome' can have a value only when 'feature' is "map". (the SOAPFault is triggered when 'map_genome' has a value and 'feature' is not "map".) |
| entry_mapinfo | query_string, genome |
Returns genome list for requested entry map. Either all genomes or a requested genome. |
Response of SOAP is almost the same as that of REST. There are no REST-links (like next attribute of <entry_list> element). See Entry Response.
Only XML format is supported.
SOAP Example (Perl)
Here is sample Perl codes with SOAP::Lite.
sample1.pl
#!/usr/bin/perl
# Fetch number of IDs whose organism is "human"
use SOAP::Lite;
wsdl = "http://www.ncrna.org/frnadb/doc/soap.wsdl"
$serv = SOAP::Lite
->service($wsdl)
->outputxml(1);
$query_string = "org=human";
$d = SOAP::Custom::XML::Deserializer->deserialize($serv->search_count($query_string));
if ($d->valueof('//Fault/faultcode')) {
print "### SOAP FAULT !!!\n";
print " faultcode: ", $d->valueof('//Fault/faultcode'), "\n";
print " faultstring: ", $d->valueof('//Fault/faultstring'), "\n";
print " detail: ", $d->valueof('//Fault/detail'), "\n";
} else {
print "count = ", $d->valueof('//result/count'), "\n";
}
exit(0);
shell> perl sample1.pl count = 126672
sample2.pl
#!/usr/bin/perl
# Fetch 10 IDs whose organism is "human"
use SOAP::Lite;
wsdl = "http://www.ncrna.org/frnadb/doc/soap.wsdl"
$serv = SOAP::Lite
->service($wsdl)
->outputxml(1);
$query_string = "org=human";
$offset = 0;
$limit = 10;
$d = SOAP::Custom::XML::Deserializer->deserialize($serv->search($query_string,$offset,$limit));
if ($d->valueof('//Fault/faultcode')) {
print "### SOAP FAULT !!!\n";
print " faultcode: ", $d->valueof('//Fault/faultcode'), "\n";
print " faultstring: ", $d->valueof('//Fault/faultstring'), "\n";
print " detail: ", $d->valueof('//Fault/detail'), "\n";
} else {
for $t ($d->valueof('//result/entry_list/entry')) {
print "entry.id = ", $t->attr->{'id'}, "\n";
}
}
exit(0);
shell> perl sample2.pl entry.id = FR000003 entry.id = FR000009 entry.id = FR000010 entry.id = FR000012 entry.id = FR000015 entry.id = FR000020 entry.id = FR000021 entry.id = FR000023 entry.id = FR000026 entry.id = FR000027
sample3.pl
#!/usr/bin/perl
# Fetch description of fRNAdbID:FR000001
use SOAP::Lite;
wsdl = "http://www.ncrna.org/frnadb/doc/soap.wsdl"
$serv = SOAP::Lite
->service($wsdl)
->outputxml(1);
$query_string = "FR000001";
$feature = "";
$map_genome = "";
$d = SOAP::Custom::XML::Deserializer->deserialize($serv->entry($query_string,$feature,$map_genome));
if ($d->valueof('//Fault/faultcode')) {
print "### SOAP FAULT !!!\n";
print " faultcode: ", $d->valueof('//Fault/faultcode'), "\n";
print " faultstring: ", $d->valueof('//Fault/faultstring'), "\n";
print " detail: ", $d->valueof('//Fault/detail'), "\n";
} else {
print "description = ", $d->valueof('//result/entry_list/entry/description'), "\n";
}
exit(0);
shell> perl sample3.pl description = Group II intron
sample4.pl
#!/usr/bin/perl
# Fetch genomes to which fRNAdbID:FR000003 maps
use SOAP::Lite;
wsdl = "http://www.ncrna.org/frnadb/doc/soap.wsdl"
$serv = SOAP::Lite
->service($wsdl)
->outputxml(1);
$query_string = "FR000003";
$genome = "";
$d = SOAP::Custom::XML::Deserializer->deserialize($serv->entry_mapinfo($query_string,$genome));
if ($d->valueof('//Fault/faultcode')) {
print "### SOAP FAULT !!!\n";
print " faultcode: ", $d->valueof('//Fault/faultcode'), "\n";
print " faultstring: ", $d->valueof('//Fault/faultstring'), "\n";
print " detail: ", $d->valueof('//Fault/detail'), "\n";
} else {
for $t ($d->valueof('//result/entry_list/entry/genome_list/genome')) {
print "genome.name = ", $t->attr->{'name'}, "\n";
}
}
exit(0);
shell> perl sample4.pl genome.name = hg17 genome.name = hg18
SOAP Example (Python)
Here is sample Python codes with SOAPpy.
sample1.py
#!/usr/bin/python # Fetch number of IDs whose organism is "human" from SOAPpy import WSDL wsdl = "http://www.ncrna.org/frnadb/doc/soap.wsdl" serv = WSDL.Proxy(wsdl) result = serv.search_count(query_string="org=human") print "count = " + result['count']
shell> python sample1.py count = 126672
sample2.py
#!/usr/bin/python
# Fetch 10 IDs whose organism is "human"
from SOAPpy import *
from StringIO import StringIO
import sys, xml.parsers.expat
Config.dumpSOAPIn = 1
buf = StringIO()
sys.stdout = buf
wsdl = "http://www.ncrna.org/frnadb/doc/soap.wsdl"
serv = WSDL.Proxy(wsdl)
try:
result = serv.search(query_string="org=human", offset=0, limit=10)
except:
sys.stderr.write("Error\n")
else:
sys.stdout = sys.__stdout__
buf = buf.getvalue()
buf = buf.strip()
lines = buf.split('\n')
lines = lines[1:-1]
def start_element(name, attrs):
if name == 'fs:entry':
print "entry.id = " + attrs['id']
p = xml.parsers.expat.ParserCreate()
p.StartElementHandler = start_element
p.Parse(''.join(lines))
shell> python sample2.py entry.id = FR000003 entry.id = FR000009 entry.id = FR000010 entry.id = FR000012 entry.id = FR000015 entry.id = FR000020 entry.id = FR000021 entry.id = FR000023 entry.id = FR000026 entry.id = FR000027
sample3.py
#!/usr/bin/python # Fetch description of fRNAdbID:FR000001 from SOAPpy import WSDL wsdl = "http://www.ncrna.org/frnadb/doc/soap.wsdl" serv = WSDL.Proxy(wsdl) result = serv.entry(query_string="FR000001", feature="", map_genome="") print "description = " + result['entry_list']['entry']['description']
shell> python sample3.py description = Group II intron
sample4.py
#!/usr/bin/python
# Fetch genomes to which fRNAdbID:FR000003 maps
from SOAPpy import *
from StringIO import StringIO
import sys, xml.parsers.expat
Config.dumpSOAPIn = 1
buf = StringIO()
sys.stdout = buf
wsdl = "http://www.ncrna.org/frnadb/doc/soap.wsdl"
serv = WSDL.Proxy(wsdl)
try:
result = serv.entry_mapinfo(query_string="FR000003", genome="")
except:
sys.stderr.write("Error\n")
else:
sys.stdout = sys.__stdout__
buf = buf.getvalue()
buf = buf.strip()
lines = buf.split('\n')
lines = lines[1:-1]
def start_element(name, attrs):
if name == 'fg:genome':
print "genome.name = " + attrs['name']
p = xml.parsers.expat.ParserCreate()
p.StartElementHandler = start_element
p.Parse(''.join(lines))
shell> python sample4.py genome.name = hg17 genome.name = hg18
SOAP Example (Ruby)
Here is sample Ruby codes with SOAP4R.
sample1.rb
#!/usr/bin/env ruby
# Fetch number of IDs whose organism is "human"
require 'soap/wsdlDriver'
wsdl = "http://www.ncrna.org/frnadb/doc/soap.wsdl"
serv = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
serv.generate_explicit_type = true
result = serv.search_count(query_string="org=human")
print "count = #{result['count']}\n"
shell> ruby sample1.rb count = 126672
sample2.rb
#!/usr/bin/env ruby
# Fetch 10 IDs whose organism is "human"
require 'soap/wsdlDriver'
wsdl = "http://www.ncrna.org/frnadb/doc/soap.wsdl"
serv = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
serv.generate_explicit_type = true
result = serv.search(query_string="org=human", offset=0, limit=10)
for entry in result['entry_list']['entry']:
attr = (entry.__xmlattr).to_a
print "entry.id = #{attr[0][1]}\n"
end
shell> ruby sample2.rb entry.id = FR000003 entry.id = FR000009 entry.id = FR000010 entry.id = FR000012 entry.id = FR000015 entry.id = FR000020 entry.id = FR000021 entry.id = FR000023 entry.id = FR000026 entry.id = FR000027
sample3.rb
#!/usr/bin/env ruby
# Fetch description of fRNAdbID:FR000001
require 'soap/wsdlDriver'
wsdl = "http://www.ncrna.org/frnadb/doc/soap.wsdl"
serv = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
serv.generate_explicit_type = true
result = serv.entry(query_string="FR000001", feature="", map_genome="")
desc = result['entry_list']['entry']['description']
print "description = #{desc}\n"
shell> ruby sample3.rb description = Group II intron
sample4.rb
#!/usr/bin/env ruby
# Fetch genomes to which fRNAdbID:FR000003 maps
require 'soap/wsdlDriver'
wsdl = "http://www.ncrna.org/frnadb/doc/soap.wsdl"
serv = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
serv.generate_explicit_type = true
result = serv.entry_mapinfo(query_string="FR000003", genome="")
for genome in result['entry_list']['entry']['genome_list']['genome']:
attr = (genome.__xmlattr).to_a
print "genome.name = #{attr[0][1]}\n"
end
shell> ruby sample4.rb genome.name = hg17 genome.name = hg18
SOAP Example (Java)
Here is sample Java codes with Apache Axis.
You may generate the java classes with WSDL2Java in Apache Axis.
NOTE: Please change String_Element Type to String Type.
shell> java org.apache.axis.wsdl.WSDL2Java -p frnadb http://www.ncrna.org/frnadb/doc/soap.wsdl
sample1.java
// Fetch number of IDs whose organism is "human"
import frnadb.*;
import org.apache.axis.types.*;
public class sample1 {
public static void main(String[] args){
try {
FRNAdbServiceLocator locator = new FRNAdbServiceLocator();
FRNAdbPort_PortType serv = locator.getfRNAdbPort();
String query_string = new String("org=human");
SearchResult_TYPE result = new SearchResult_TYPE();
result = serv.search_count(query_string);
NonNegativeInteger count = result.getCount();
System.out.printf("count = %d", count);
System.out.println();
} catch (Exception e) {
e.printStackTrace();
}
}
}
shell> javac sample1.java shell> java sample1 count = 126672
sample2.java
// Fetch 10 IDs whose organism is "human"
import frnadb.*;
import org.apache.axis.types.*;
public class sample2 {
public static void main(String[] args){
try {
FRNAdbServiceLocator locator = new FRNAdbServiceLocator();
FRNAdbPort_PortType serv = locator.getfRNAdbPort();
String query_string = new String("org=human");
NonNegativeInteger offset = new NonNegativeInteger("0");
NonNegativeInteger limit = new NonNegativeInteger("10");
SearchResult_TYPE result = new SearchResult_TYPE();
result = serv.search(query_string, offset, limit);
SearchEntry_TYPE[] entry_list = result.getEntry_list();
for(int i=0; i<java.lang.reflect.Array.getLength(entry_list); i++){
System.out.printf("entry.id = %s", entry_list[i].getId());
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
shell> javac sample2.java shell> java sample2 entry.id = FR000003 entry.id = FR000009 entry.id = FR000010 entry.id = FR000012 entry.id = FR000015 entry.id = FR000020 entry.id = FR000021 entry.id = FR000023 entry.id = FR000026 entry.id = FR000027
sample3.java
// Fetch description of fRNAdbID:FR000001
import frnadb.*;
import org.apache.axis.types.*;
public class sample3 {
public static void main(String[] args){
try {
FRNAdbServiceLocator locator = new FRNAdbServiceLocator();
FRNAdbPort_PortType serv = locator.getfRNAdbPort();
String query_string = new String("FR000001");
String feature = new String("");
String map_genome = new String("");
EntryResult_TYPE result = new EntryResult_TYPE();
result = serv.entry(query_string, feature, map_genome);
Entry_TYPE[] entry_list = result.getEntry_list();
String description = entry_list[0].getDescription();
System.out.printf("description = %s", description);
System.out.println();
} catch (Exception e) {
e.printStackTrace();
}
}
}
shell> javac sample3.java shell> java sample3 description = Group II intron
sample4.java
// Fetch genomes to which fRNAdbID:FR000003 maps
import frnadb.*;
import org.apache.axis.types.*;
public class sample4 {
public static void main(String[] args){
try {
FRNAdbServiceLocator locator = new FRNAdbServiceLocator();
FRNAdbPort_PortType serv = locator.getfRNAdbPort();
String query_string = new String("FR000003");
String genome = new String("");
GenomeResult_TYPE result = new GenomeResult_TYPE();
result = serv.entry_mapinfo(query_string, genome);
GenomeEntry_TYPE[] entry_list = result.getEntry_list();
Genome_TYPE[] genome_list = entry_list[0].getGenome_list();
for(int i=0; i<java.lang.reflect.Array.getLength(genome_list); i++){
System.out.printf("genome.name = %s", genome_list[i].getName());
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
shell> javac sample4.java shell> java sample4 genome.name = hg17 genome.name = hg18
fRNAdb API Query Syntax
The service is query compliant with CQL-1.2.
Query is case-insensitive. "mirna and trna" and "MIRNA AND TRNA" are treated as a same query.
-
Simple queries
Search entries containing the word "miRNA":
http://www.ncrna.org/frnadb/api/search/miRNA
Search entries containing the phrase "mature miRNA":
http://www.ncrna.org/frnadb/api/search/"mature miRNA"
-
Booleans (and, or, not)
Search entries containing both "snoRNA" and "U13":
http://www.ncrna.org/frnadb/api/search/snoRNA and U13
Search entries containing either "snoRNA" or "U13":
http://www.ncrna.org/frnadb/api/search/snoRNA or U13
Search entries containing "snoRNA" not "U13":
http://www.ncrna.org/frnadb/api/search/snoRNA not U13
Evaluation order can be set with parentheses:
http://www.ncrna.org/frnadb/api/search/(mature and miRNA) or (snoRNA and U13)
-
Indexes
Qualifiers defined by fRNAdb GUI are usable.
Search entries containing "miRNA" in the description qualifier:
http://www.ncrna.org/frnadb/api/search/desc=miRNA
-
Relations (all, any)
'desc all "mature miRNA"' is the same as '(desc=mature) and (desc=miRNA)'
(NOTE: not the same as 'desc="mature miRNA"')
http://www.ncrna.org/frnadb/api/search/desc all "mature miRNA"
'desc any "mature miRNA"' is the same as '(desc=mature) or (desc=miRNA)'
http://www.ncrna.org/frnadb/api/search/desc any "mature miRNA"
NOTE:
Above is not true with "ti"(PubMed Title) and "ta"(PubMed Title or Abstract), qualifiers of reference. 'ti all "mature miRNA"' means references contain both "mature" and "miRNA" in the title. An entry linked to two references, where one contains only "mature" in the title and the other contains only "miRNA" in the title is searched with '(ti=mature) and (ti=miRNA)' and not 'ti all "mature miRNA"'.
-
Sequence Length
Search entries whose length is between 21 and 23:
http://www.ncrna.org/frnadb/api/search/len="21:23"
Search entries whose length is less than or equal to 21:
http://www.ncrna.org/frnadb/api/search/len=":21"
Search entries whose length is greater than or equal to 23:
http://www.ncrna.org/frnadb/api/search/len="23:"
Search entries whose length is 21 or 25:
http://www.ncrna.org/frnadb/api/search/len any "21 25"
-
Sorting (sortby)
Sort the result order ascendingly by length:
http://www.ncrna.org/frnadb/api/search/miRNA sortby len
Sort the result order descendingly by length:
http://www.ncrna.org/frnadb/api/search/miRNA sortby len%2Fsort.descending
fRNAdb API Entry Feature
| Feature | Contents |
| desc | Description |
| seq | Nucleotide sequence |
| acc | Genbank accession |
| org | Organism |
| so | SequenceOntology |
| pmid | PubMed reference |
| xid | CrossReference for entry itself (RNAdb, Rfam etc.) |
| assoc | CrossReference to entry associated genes (OMIM, KEGG etc.) |
| map | Genome mapping |
fRNAdb API Response
- Search Response
NOTE: There is no 'next' attribute of <entry_list> element and no 'link' attribute of <entry> element for SOAP services.
<?xml version="1.0" encoding="UTF-8"?> <result version="3.0" xmlns="http://www.ncrna.org/frnadb/api/XMLSchema/search"> <!-- Requested query --> <query> <offset>0</offset> <limit>100</limit> <query_string>miRNA</query_string> </query> <!-- Hit count --> <count>70110</count> <!-- Hit entry list --> <entry_list next="http://www.ncrna.org/frnadb/api/search/miRNA/100,100"> <entry id="FR000003" link="http://www.ncrna.org/frnadb/api/entry/FR000003"/> : <entry id="FR000608" link="http://www.ncrna.org/frnadb/api/entry/FR000608"/> </entry_list> </result> - Entry Response
<?xml version="1.0" encoding="UTF-8"?> <!-- This is nonexistent data. --> <result version="3.0" xmlns="http://www.ncrna.org/frnadb/XMLSchema/entry"> <!-- Requested query --> <query> <feature>all</feature> <entry_num>1</entry_num> <entry_string>FR000000</entry_string> </query> <entry_list> <entry id="FR000000"> <length>22</length> <sequence>CATGCCTTGAGTGTAGGACCGT</sequence> <description>mature micro RNA (miRNA) miR-532-5p or Piwi-interacting RNA (piRNA)</description> <ontology> <sequence_ontology id="SO:0001035" name="piRNA" version="2.3"> <synonym>piwi-associated RNA</synonym> </sequence_ontology> <sequence_ontology id="SO:0000276" name="miRNA" version="2.3"> <synonym>micro RNA</synonym> <synonym>microRNA</synonym> <synonym>micro</synonym> </sequence_ontology> </ontology> <organism> <ncbi_taxonomy id="9913" name="Bos taurus"> <synonym>Bos bovis</synonym> <synonym>Bos primigenius taurus</synonym> <synonym>bovine</synonym> <synonym>cattle</synonym> <synonym>cow</synonym> <synonym>domestic cattle</synonym> <synonym>domestic cow</synonym> </ncbi_taxonomy> <ncbi_taxonomy id="9606" name="Homo sapiens"> <synonym>human</synonym> <synonym>man</synonym> </ncbi_taxonomy> </organism> <accession_list> <ncbi_genbank>DQ708952</ncbi_genbank> <ncbi_genbank>AF499825</ncbi_genbank> </accession_list> <reference> <ncbi_pubmed id="15199136"> <title>Human box H/ACA pseudouridylation guide RNA machinery.</title> <authors>Kiss AM, Jady BE, Bertrand E, Kiss T</authors> <abstract>Pseudouridine, the most abundant modified nucleoside in RNA, is ... </abstract> <issue>Mol Cell Biol, 24(13):5797-807, 2004 Jul</issue> <cited_num>11</cited_num> </ncbi_pubmed> </reference> <!-- Cross Reference for entry itself --> <cross_reference> <link to="RNAdb" id="PIR217600" version="2.0" /> <link to="miRBase" id="MIMAT0003848" version="9.2" /> <link to="miRBase" id="MIMAT0002888" version="9.2" /> <link to="miRBase" id="MIMAT0002889" version="9.2" /> </cross_reference> <!-- Cross Reference to entry associated genes --> <gene_association> <link to="OMIM" id="156240" /> <link to="OMIM" id="606613" /> </gene_association> <!-- snoRNA specific Cross Reference --> <snorna_feature> <host_gene>RPL7A (ribosomal protein L7A)</host_gene> <target_rna>18S rRNA A668</target_rna> <overlapping_gene genome="hg18" type="UCSC Gene" name="uc001ape.1"> <genomebrowser_link>URI</genomebrowser_link> </overlapping_gene> <overlapping_gene genome="hg18" type="UCSC Gene" name="uc001apf.1"> <genomebrowser_link>URI</genomebrowser_link> </overlapping_gene> <overlapping_gene genome="hg18" type="RefSeq Gene" name="BC062342"> <genomebrowser_link>URI</genomebrowser_link> </overlapping_gene> <overlapping_gene genome="dm3" type="FlyBase Gene" name="CG15442-RA"> <genomebrowser_link>URI</genomebrowser_link> </overlapping_gene> </snorna_feature> <!-- mature micro RNA specific Cross Reference --> <mirna_feature> <precursor_mirna> <link to="miRBase" id="MI0003205" version="9.2" /> <link to="miRBase" id="MI0003206" version="9.2" /> <link to="miRBase" id="MI0005061" version="9.2" /> <link to="fRNAdb" id="FR212689" version="3.0" /> <link to="fRNAdb" id="FR336718" version="3.0" /> <link to="fRNAdb" id="FR060646" version="3.0" /> </precursor_mirna> </mirna_feature> <!-- Cross Reference to complementary sequence in fRNAdb --> <complementary_sequence> <link to="fRNAdb" id="FR000000" version="3.0" /> </complementary_sequence> <!-- Cross Reference to similar sequences in fRNAdb --> <highly_similar_sequence> <link to="fRNAdb" id="FR000000" version="3.0" /> <link to="fRNAdb" id="FR000000" version="3.0" /> </highly_similar_sequence> <!-- Genome mapping --> <map> <locus> <genome>hg17</genome> <cytoband>Xp11.23</cytoband> <chromosome>chrX</chromosome> <start>49470809</start> <end>49470830</end> <strand>+</strand> <exon_number>1</exon_number> <exon start="49470809" end="49470830" /> <evidence>BLAT</evidence> <identity>100</identity> <genomebrowser_link>URI</genomebrowser_link> </locus> </map> <!-- Expression data (GEO) --> <expression> <tissue description="S2 cells, AGO2 IP" read_number="2" evidence="varidated"> <ncbi_taxonomy id="7227" name="Drosophila melanogaster"> <synonym>Drosophila melangaster</synonym> <synonym>fruit fly</synonym> </ncbi_taxonomy> <ncbi_pubmed id="16778019"> <title>Characterization of the piRNA complex from rat testes.</title> <authors>Lau NC, Seto AG, Kim J, Kuramochi-Miyagawa S, Nakano T, Bartel DP, Kingston RE</authors> <abstract>Small noncoding RNAs regulate processes essential ... </abstract> <issue>Science, 313(5785):363-7, 2006 Jul, Epub 2006 Jun</issue> <cited_num>25</cited_num> </ncbi_pubmed> <link to="NCBI_GEO" id="GSM280089" /> <method>Illumina-Solexa</method> <experiment description="small RNAs" authors="Czech B, Malone CD, Zhou R, Stark A, ... Hannon GJ, Brennecke J" date="2008-04-30"> <ncbi_taxonomy id="7227" name="Drosophila melanogaster"> <synonym>Drosophila melangaster</synonym> <synonym>fruit fly</synonym> </ncbi_taxonomy> <link to="NCBI_GEO" id="GSE11086" /> </experiment> </tissue> </expression> </entry> </entry_list> </result> - Genome Response
NOTE: There is no 'link' attribute of <genome> element for SOAP services.
<?xml version="1.0" encoding="UTF-8"?> <result version="3.0" xmlns="http://www.ncrna.org/frnadb/XMLSchema/genome"> <entry_list> <entry id="FR000000"> <genome_list link="http://www.ncrna.org/frnadb/FR000000/map"> <genome name="hg17" link="http://www.ncrna.org/frnadb/FR000000/map/hg17" /> <genome name="hg18" link="http://www.ncrna.org/frnadb/FR000000/map/hg18" /> </genome_list> </entry> </entry_list> </result>