Web Services Description
Jump to navigation
Jump to search
the web services are accessible at http://gurgendev.bkslab.org:8080/aggregate_lookup/xml-rpc/. {LINK NO LONGER WORKING} The interaction with the service is based on following requests
Description of Methods
method: '''similarity.getExactMatch'''.
returns aggregators and non-aggregators that match the query molecule exactly
params: '''<string>smile</string>''' query string
This method queries the web service for an exact match(over 95% similarity)
'''response''':
<struct>
<respcode><string>00</string></respcode> //00 in case of success, 90 if no results are found, 99 internal server error
<msg><string> Message</string></msg> //optional, only when respcode != 00
<smile><string><string></smile> //filtered smile that was used for query
<aggregators>
<array>
<struct>
<formula><string>Formula</string></formula>//chemical formula of the compound
<smile><string>SMILE</stiring></smile>//SMILE of the formula
<similarity><double>Similarity</double> //similarity level of the molecule to query
<reference><string>Reference</string></reference>// reference to where the aggregator was published
</struct>
</array>
</aggregators>
<non-aggregators>
<array>
<struct>
<formula><string>Formula</string></formula>//chemical formula of the compound
<smile><string>SMILE</stiring></smile>//SMILE of the formula
<similarity><double>Similarity</double> //similarity level of the molecule to query
<reference><string>Reference</string></reference>// reference to where the aggregator was published
</struct>
</array>
</non-aggregators>
</struct>
method: '''similarity.getSimilar'''. returns similar aggregators and ambigous that match the query molecule exactly
params: '''<string>smile</string>''' query string
This method queries the web service for an exact match(over 65% similarity)
'''response''':
<struct>
<respcode><string>00</string></respcode> //00 in case of success, 90 if no results are found, 99 internal server error
<msg><string> Message</string></msg> //optional, only when respcode != 00
<smile><string><string></smile> //filtered smile that was used for query
<aggregators>
<array>
<struct>
<formula><string>Formula</string></formula>//chemical formula of the compound
<smile><string>SMILE</string></smile>//SMILE of the formula
<similarity><double>Similarity</double> //similarity level of the molecule to query
<reference><string>Reference</string></reference>// reference to where the aggregator was published
</struct>
</array>
</aggregators>
< ambiguous >
<array>
<struct>
<formula><string>Formula</string></formula>//chemical formula of the compound
<smile><string>SMILE</stiring></smile>//SMILE of the formula
<similarity><double>Similarity</double> //similarity level of the molecule to query
<reference><string>Reference</string></reference>// reference to where the aggregator was published
</struct>
</array>
</ambiguous>
</struct>
method: '''similarity.getMurcoSimilars'''. returns similar aggregators and ambigous that match the query molecule exactly
params: '''<string>smile</string>''' query string
This method queries the web service for matches which have similar(over 95% similarity) murco scaffold. The murco scaffold is calculated using MIB tools
'''response''':
<struct>
<respcode><string>00</string></respcode> //00 in case of success, 90 if no results are found, 99 internal server error
<msg><string> Message</string></msg> //optional, only when respcode != 00
<smile><string><string></smile> //smile for murco scaffold that was used for query
<aggregators>
<array>
<struct>
<formula><string>Formula</string></formula>//chemical formula of the compound
<smile><string>SMILE</string></smile>//SMILE of the formula
<similarity><double>Similarity</double> //similarity level of the molecule to query
<reference><string>Reference</string></reference>// reference to where the aggregator was published
</struct>
</array>
</aggregators>
< ambiguous >
<array>
<struct>
<formula><string>Formula</string></formula>//chemical formula of the compound
<smile><string>SMILE</stiring></smile>//SMILE of the formula
<similarity><double>Similarity</double> //similarity level of the molecule to query
<reference><string>Reference</string></reference>// reference to where the aggregator was published
</struct>
</array>
</ambiguous>
</struct>
method: '''similarity.getLogP'''. calculates and returns logP value for a molecule
params: '''<string>smile</string>''' query string
This method queries the web service for an exact match(over 65% similarity)
'''response''':
<struct>
<respcode><string>00</string></respcode> //00 in case of success, 99 internal server error
<msg><string> Message</string></msg> //optional, only when respcode != 00
<logP><double>LogP</double></logP> //LogP value as calculated by MIButils
</struct>
method: '''similarity.getAggregators'''. returns known aggregators from database
params: '''<start><string>Start</string><start><count><count>''' start is the id of the aggregator, count is the number of aggregators to retrieve. Web service returns aggregators in the range [start, start+count]
'''response''':
<struct>
<respcode><string>00</string></respcode> //00 in case of success, 90 if no results are found, 99 internal server error
<count><int> Count</int></count> //total number of aggreagtors in the database
<aggregators>
<array>
<struct>
<formula><string>Formula</string></formula>//chemical formula of the compound
<smile><string>SMILE</string></smile>//SMILE of the formula
<similarity><double>Similarity</double> //similarity level of the molecule to query
<reference><string>Reference</string></reference>// reference to where the aggregator was published
</struct>
</array>
</aggregators>
</struct>
===Example Client===
Any XML-RPC client is compatible with this web-service. When using Java I recommend using '''Redstone XML-RPC''' (http://xmlrpc.sourceforge.net/), since it is lightweight and easy to use. Below is an example code for interating with the web servce.
import redstone.xmlrpc.XmlRpcClient;
import java.util.HashMap;
import java.util.ArrayList;
public class Test{
public static void main( String[] args )
{
try{
XmlRpcClient client = new XmlRpcClient( "http://localhost:8080/aggregate_lookup/xml-rpc/", false );
java.util.HashMap result = (java.util.HashMap)client.invoke("similarity.getSimilar", new Object[] {"c1cc(O)c2C(=O)C(O)=C(Oc2c1)c3ccc(O)c(O)c3"});
System.out.println("result retreived");
java.util.ArrayList agg = (java.util.ArrayList)result.get("aggregators");
System.out.println("retreived agg.size:"+agg.size());
for(int i=0; i< agg.size(); i++){
HashMap hit = (HashMap)agg.get(i);
String formula =(String) hit.get("formula");
String reference =(String) hit.get("reference");
Double score =(Double) hit.get("dissimilarity");
System.out.println("Formula:"+formula+"\tReference:"+reference+"\tScore:"+score+"\n");
}
}catch(Exception ex)
{
ex.printStackTrace();
}
}
}