Archive for the How ChemSpider Runs Category

As the ChemSpider content and data mappings have continued to expand, the demands on our web services have increased dramatically. With the popularity of the site continuing to increase we anticipate even heavier usage of our web services. This is true for our involvement with the Open PHACTS project as well as from a number of software packages served up by analytical instrument vendors, especially in the mass spectrometry domain. Because of the increasing load on our systems, we have taken steps to prevent us from outgrowing our existing infrastructure and have implemented a new scalable, future-proof web services offering that your applications can rely upon.

Continual availability and business continuity for subscribers and academics

We have reinvented our web service infrastructure using Microsoft SQL Server replication technology in order to maintain multiple copies of the ChemSpider database. As a result all system resources are dedicated purely to web services with no background tasks running to affect the performance. Also, the databases are read-only which results in database lock contention being completely eliminated.

A standalone and scalable web service establishment for faster response times

The ChemSpider servers run on the VMWare virtualization platform which allows us to scale out the hardware by assigning more resources as required. In the future we can easily provide a consistently high-performance service even as usage further increases.

Over 1/4 million calls in the first 18 hours

Although ChemSpider web services are fast becoming a priority for us, we are still dedicated to ensuring the website experience is optimal. The changes we have implemented will reduce traffic to the website so you should already have noticed improvements in website performance and reliability.

Some examples of implementations of ChemSpider web service usage can be found here.

Access to the ChemSpider API is free to academic users; for commercial use please contact us at chemspider-at-rsc.org.

Recently I have been programming a java plug-in from which I needed to call the ChemSpider webservices, and I found that this wasn’t as straightforward as I was expecting, so I thought I would post how to do it in case it’s useful for anyone else who wants to do likewise.
The basic method I used was to use Apache Axis2 to generate java code for the WSDL’s of the main ChemSpider webservices. This java code is available here: chemspider_webservices_javasourcecode.zip and I have also made the compiled jar file available here: chemspider_webservices.jar. The ChemSpider webservices can be called from other java code by referencing this jar file (and the other axis library files).
This blog post describes how I generated and used this jar file. I was using the Eclipse IDE, so some of what I describe will be specific to that.
There is a similar jar file of some ChemSpider webservices which is available by downloading MZMine (the file chemspider-api.jar in the lib directory) and an example of its use can be seen by downloading the source code and looking at the file src\net\sf\mzmine\modules\peaklistmethods\identification\dbsearch\databases\ChemSpiderGateway.java). That jar file was generated using the previous version of Axis (just plain Axis, rather than Axis2) compared to this one. The example here may be easier to use as a start point since the full range of ChemSpider webservices are included in the jar file, there is a full description of how it was generated, the code used to generate the jar file is available and there are more examples of its use.

Generating the chemspider_webservices.jar file

To generate the java code from the WSDL of the ChemSpider webservices I used the WSDL2Java functionality of Apache Axis2. This is available in different forms, including an Eclipse plug-in which will directly import the java code generated into a project, but I found various bugs when trying to use the latest version of that, so just used the command line version.
I started off with generating the java code from the WSDL of the ChemSpider MassSpecAPI webservice:

  • I downloaded and unzipped the latest version of the Apache Axis2 binary distribution from their download page. I used version 1.6.1 of Axis2.
  • In the “bin” directory of this download there should be a file called java2wsdl.bat. Running this batch file from a command line saves a lot of time trying to set up the class paths correctly to run Java2WSDL. Before using it you should set up the following two environment variables:
    • AXIS2_HOME: Must point to the top level of the AXIS2 files which you just downloaded
    • JAVA_HOME: Must point at your Java Development Kit installation direcotry (e.g. C:\Program Files\Java\jre6)
  • To see a full list of the options available when running WSDL2Java simply open a command prompt and run the batch file with no options to obtain the Usage options – more information about these can be found in the Apache Axis2 user guide:
    • > axis2-1.6.1\bin\wsdl2java.bat
  • I ran it with options to specify to use the SOAP 1.2 port of the ChemSpider MassSpecAPI webservice (most ChemSpider webservices have the option of SOAP 1.1, SOAP 1.2, HTTP GET or HTTP POST), to generate synchronous code only (not asynchronous), and to use adb databinding (this is the default anyway):
    • > axis2-1.6.1\bin\wsdl2java.bat -uri http://www.chemspider.com/MassSpecAPI.asmx?WSDL -pn MassSpecAPISoap12 -s -d adb
  • This then generated the file MassSpecAPIStub.java which it automatically put in the package com.chemspider.www (so was the appropriate folder structure was created above it accordingly)
  • I repeated this processes with the other 4 main ChemSpider webservices:
    • > axis2-1.6.1\bin\wsdl2java.bat -uri http://www.chemspider.com/Search.asmx?WSDL -pn SearchSoap12 -s -d adb
    • > axis2-1.6.1\bin\wsdl2java.bat -uri http://www.chemspider.com/InChI.asmx?WSDL -pn InChISoap12 -s -d adb
    • > axis2-1.6.1\bin\wsdl2java.bat -uri http://www.chemspider.com/Spectra.asmx?WSDL -pn SpectraSoap12 -s -d adb
    • > axis2-1.6.1\bin\wsdl2java.bat -uri http://www.chemspider.com/OpenBabel.asmx?WSDL -pn OpenBabelWebServiceSoap12 -s -d adb
  • The folders and java class files generated by Java2WSDL (MassSpecAPIStub.java, SearchStub.java, InChIStub.java, SpectraStub.java and OpenBabelWebServiceStub.java) that were generated are available in the zip file chemspider_webservices_javasourcecode.zip for further reference
  • I then started a new Eclipse project, imported this generated File system into it
  • The generated classes rely on the Axis2 library files so these need to be added to the build path – in Eclipse this is done by right-clicking on the project in the Package Explorer, choosing Properties > Java Build Path > Libraries > Add External Jars and selecting all of the lib files in the lib folder of the Axis2 folder.
  • This project was exported as the jar file chemspider_webservices.jar

Using the chemspider_webservices.jar file as an external library jar file

The chemspider_webservices.jar file and all of the Apache Axis2 library jar files need adding to a java project as referenced libraries before it can be called. To do this in Eclipse right-click on the project in the Package Explorer, choose Properties > Java Build Path > Libraries > Add External Jars and select:

  • the chemspider_webservices.jar file (download it from chemspider_webservices.jar and save it locally)
  • all of the lib files in the lib folder of the Axis2 folder.

Once this has been done then the ChemSpider webservices can be called from the project. An example is shown below, and is also downloadable in text format from here. This has been structured into (pretty well self-contained) functions which can be easily called to retrieve the results of a particular operation of a webservice. In the main function these functions are called and the output written out.

Please note that you should put your obtains your own ChemSpider token from ChemSpider to set as the ChemSpiderToken value – to obtain this, register for a ChemSpider account, and look up your token from your user Profile page after logging in. Some tokens require your user account to be associated with the “Service Subscriber” role, which you can request from your user profile page.

package com.chemspider.www.examples;

import java.util.HashMap;
import java.util.Map;

import javax.swing.JOptionPane;

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;

import com.chemspider.www.*;
import com.chemspider.www.InChIStub.InChIToCSIDResponse;
import com.chemspider.www.SearchStub.GetAsyncSearchResultResponse;
import com.chemspider.www.SearchStub.GetAsyncSearchStatusResponse;
import com.chemspider.www.SearchStub.SimpleSearchResponse;
import com.chemspider.www.MassSpecAPIStub.ArrayOfInt;
import com.chemspider.www.MassSpecAPIStub.ArrayOfString;
import com.chemspider.www.MassSpecAPIStub.ExtendedCompoundInfo;
import com.chemspider.www.MassSpecAPIStub.GetDatabasesResponse;
import com.chemspider.www.MassSpecAPIStub.GetExtendedCompoundInfoArrayResponse;
import com.chemspider.www.MassSpecAPIStub.SearchByMassAsyncResponse;

public class WebServiceExamples {

/**
* @param args
*/

private static final Logger LOG = Logger.getLogger(WebServiceExamples.class.getName());

private static String ChemSpiderToken = "YOU NEED TO INSERT YOUR OWN TOKEN IN HERE";

public static void main(String[] args) {
BasicConfigurator.configure();

JOptionPane.showMessageDialog(null, "The compound with InChI InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H has CSID:"+get_InChI_InChIToCSID_Results("InChI=1S/C6H6/c1-2-4-6-5-3-1/h1-6H"));

int[] SimpleSearchResults = get_Search_SimpleSearch_Results("taxol", ChemSpiderToken);
JOptionPane.showMessageDialog(null, "The first of "+SimpleSearchResults.length+" ChemSpider compound(s) returned by a search for Taxol has CSID:"+SimpleSearchResults[0]);

int[] inputCSIDs = new int[2];
inputCSIDs[0] = 236;
inputCSIDs[1] = 238;
Map> GetExtendedCompoundInfoArrayResults = get_MassSpecAPI_GetExtendedCompoundInfoArray_Results(inputCSIDs, ChemSpiderToken);
Map thisCompoundInfo = GetExtendedCompoundInfoArrayResults.get(238);
JOptionPane.showMessageDialog(null, "The Average Mass of the compound with CSID 238 is: "+thisCompoundInfo.get("AverageMass"));

String[] GetDatabaseResults = get_MassSpecAPI_GetDatabases_Results();
JOptionPane.showMessageDialog(null, "The first of "+GetDatabaseResults.length+" datasources in ChemSpider is:"+GetDatabaseResults[0]);

String SearchByMassAsyncResults = get_MassSpecAPI_SearchByMassAsync_Results(1100.0, 0.1,GetDatabaseResults, ChemSpiderToken);
JOptionPane.showMessageDialog(null, "Transaction ID for search on compounds with mass = 1100+/- 0.1 from any data source is" + SearchByMassAsyncResults);
JOptionPane.showMessageDialog(null, "The operation status of the search with this transaction ID is" + get_Search_GetAsyncSearchStatus_Results(SearchByMassAsyncResults, ChemSpiderToken));
int[] GetAsyncSearchResultResults = get_Search_GetAsyncSearchResult_Results(SearchByMassAsyncResults, ChemSpiderToken);
JOptionPane.showMessageDialog(null, "And the first of "+GetAsyncSearchResultResults.length+" ChemSpider compound(s) returned by the search has CSID:"+GetAsyncSearchResultResults[0]);
}

/**
* Function to call the InChIToCSID operation of ChemSpider's InChI SOAP 1.2 webservice (http://www.chemspider.com/InChI.asmx?op=InChIToCSID)
* Convert InChI to ChemSpider ID.
*
* @param inchi: string representing inchi to search ChemSpider for
* @return: string representing CSID returned
*/
public static String get_InChI_InChIToCSID_Results(String inchi) {
String Output = null;
try {

final InChIStub thisInChIstub = new InChIStub();
com.chemspider.www.InChIStub.InChIToCSID InChIToCSIDInput = new com.chemspider.www.InChIStub.InChIToCSID();
InChIToCSIDInput.setInchi(inchi);
final InChIToCSIDResponse thisInChIToCSIDResponse = thisInChIstub.inChIToCSID(InChIToCSIDInput);
Output = thisInChIToCSIDResponse.getInChIToCSIDResult();
} catch (Exception e) {
LOG.log(Level.ERROR, "Problem retrieving ChemSpider webservices", e);
}
return Output;
}

/**
* Function to call the SimpleSearch operation of ChemSpider's Search SOAP 1.2 webservice (http://www.chemspider.com/search.asmx?op=SimpleSearch)
* Search by Name, SMILES, InChI, InChIKey, etc. Returns a list of found CSIDs (first 100 - please use AsyncSimpleSearch instead if you like to get the full list). Security token is required.
*
* @param query: String representing search term (can be Name, SMILES, InChI, InChIKey)
* @param token: string containing your user token (listed at your http://www.chemspider.com/UserProfile.aspx page)
* @return: int[] array containing the ChemSpider IDs. If more than 100 are found then only the first 100 are returned.
*/
public static int[] get_Search_SimpleSearch_Results(String query, String token) {
int[] Output = null;
try {
final SearchStub thisSearchStub = new SearchStub();
com.chemspider.www.SearchStub.SimpleSearch SimpleSearchInput = new com.chemspider.www.SearchStub.SimpleSearch();
SimpleSearchInput.setQuery(query);
SimpleSearchInput.setToken(token);
final SimpleSearchResponse thisSimpleSearchResponse = thisSearchStub.simpleSearch(SimpleSearchInput);
Output = thisSimpleSearchResponse.getSimpleSearchResult().get_int();
} catch (Exception e) {
LOG.log(Level.ERROR, "Problem retrieving ChemSpider webservices", e);
}
return Output;
}

/**
* Function to call the GetDatabases operation of ChemSpider's MassSpecAPI SOAP 1.2 webservice (http://www.chemspider.com/massspecapi.asmx?op=GetDatabases)
* Get the list of datasources in ChemSpider.
*
* @return: the list of datasources in ChemSpider as a String Array
*/
public static String[] get_MassSpecAPI_GetDatabases_Results() {
String[] Output = null;
try {

final MassSpecAPIStub thisMassSpecAPIStub = new MassSpecAPIStub();
com.chemspider.www.MassSpecAPIStub.GetDatabases getDatabaseInput = new com.chemspider.www.MassSpecAPIStub.GetDatabases();
final GetDatabasesResponse thisGetDatabasesResponse = thisMassSpecAPIStub.getDatabases(getDatabaseInput);
Output = thisGetDatabasesResponse.getGetDatabasesResult().getString();
} catch (Exception e) {
LOG.log(Level.ERROR, "Problem retrieving ChemSpider webservices", e);
}
return Output;
}

/**
* Function to call the GetExtendedCompoundInfoArray operation of ChemSpider's MassSpecAPI SOAP 1.2 webservice (http://www.chemspider.com/massspecapi.asmx?op=GetExtendedCompoundInfoArray)
* Get array of extended record details by an array of CSIDs. Security token is required.
*
* @param CSIDs: integer array containing the CSIDs of compounds for which information will be returned
* @param token: string containing your user token (listed at your http://www.chemspider.com/UserProfile.aspx page)
* @return: a Map> containing the results array for each CSID (with Properties CSID, MF, SMILES, InChIKey, AverageMass, MolecularWeight, MonoisotopicMass, NominalMass, ALogP, XLogP, CommonName)
*/
public static Map> get_MassSpecAPI_GetExtendedCompoundInfoArray_Results(int[] CSIDs, String token) {
Map> Output = new HashMap>();
try {
final MassSpecAPIStub thisMassSpecAPIStub = new MassSpecAPIStub();
ArrayOfInt inputCSIDsArrayofInt = new ArrayOfInt();
inputCSIDsArrayofInt.set_int(CSIDs);
com.chemspider.www.MassSpecAPIStub.GetExtendedCompoundInfoArray getGetExtendedCompoundInfoArrayInput = new com.chemspider.www.MassSpecAPIStub.GetExtendedCompoundInfoArray();
getGetExtendedCompoundInfoArrayInput.setCSIDs(inputCSIDsArrayofInt);
getGetExtendedCompoundInfoArrayInput.setToken(token);
final GetExtendedCompoundInfoArrayResponse thisGetExtendedCompoundInfoArrayResponse = thisMassSpecAPIStub.getExtendedCompoundInfoArray(getGetExtendedCompoundInfoArrayInput);
ExtendedCompoundInfo[] thisExtendedCompoundInfo = thisGetExtendedCompoundInfoArrayResponse.getGetExtendedCompoundInfoArrayResult().getExtendedCompoundInfo();
for (int i=0; i Map thisCompoundExtendedCompoundInfoArrayOutput = new HashMap();
thisCompoundExtendedCompoundInfoArrayOutput.put("CSID", Integer.toString(thisExtendedCompoundInfo[i].getCSID()));
thisCompoundExtendedCompoundInfoArrayOutput.put("MF", thisExtendedCompoundInfo[i].getMF());
thisCompoundExtendedCompoundInfoArrayOutput.put("SMILES", thisExtendedCompoundInfo[i].getSMILES());
thisCompoundExtendedCompoundInfoArrayOutput.put("InChI", thisExtendedCompoundInfo[i].getInChI());
thisCompoundExtendedCompoundInfoArrayOutput.put("InChIKey", thisExtendedCompoundInfo[i].getInChIKey());
thisCompoundExtendedCompoundInfoArrayOutput.put("AverageMass", Double.toString(thisExtendedCompoundInfo[i].getAverageMass()));
thisCompoundExtendedCompoundInfoArrayOutput.put("MolecularWeight", Double.toString(thisExtendedCompoundInfo[i].getMolecularWeight()));
thisCompoundExtendedCompoundInfoArrayOutput.put("MonoisotopicMass", Double.toString(thisExtendedCompoundInfo[i].getMonoisotopicMass()));
thisCompoundExtendedCompoundInfoArrayOutput.put("NominalMass", Double.toString(thisExtendedCompoundInfo[i].getNominalMass()));
thisCompoundExtendedCompoundInfoArrayOutput.put("ALogP", Double.toString(thisExtendedCompoundInfo[i].getALogP()));
thisCompoundExtendedCompoundInfoArrayOutput.put("XLogP", Double.toString(thisExtendedCompoundInfo[i].getXLogP()));
thisCompoundExtendedCompoundInfoArrayOutput.put("CommonName", thisExtendedCompoundInfo[i].getCommonName());
Output.put(thisExtendedCompoundInfo[i].getCSID(), thisCompoundExtendedCompoundInfoArrayOutput);
}

} catch (Exception e) {
LOG.log(Level.ERROR, "Problem retrieving ChemSpider webservices", e);
}
return Output;
}

/**
* Function to call the SearchByMass2 operation of ChemSpider's MassSpecAPI SOAP 1.2 webservice (http://www.chemspider.com/massspecapi.asmx?op=SearchByMass2)
* Search ChemSpider by mass +/- range.
*
* @param Mass: The compounds returned have a mass (Double) within the range Mass +/- Range
* @param Range: The compounds returned have a mass (Double) within the range Mass +/- Range
* @return: the ChemSpider IDs of compounds returned (as a String Array)
*/
public static String get_MassSpecAPI_SearchByMassAsync_Results(Double mass, Double range, String[] dbs, String token) {
String Output = null;
try {
final MassSpecAPIStub thisMassSpecAPIStub = new MassSpecAPIStub();
com.chemspider.www.MassSpecAPIStub.SearchByMassAsync getSearchByMassAsyncInput = new com.chemspider.www.MassSpecAPIStub.SearchByMassAsync();
getSearchByMassAsyncInput.setMass(mass);
getSearchByMassAsyncInput.setRange(range);
ArrayOfString inputDBsArrayofString = new ArrayOfString();
inputDBsArrayofString.setString(dbs);
getSearchByMassAsyncInput.setDbs(inputDBsArrayofString);
getSearchByMassAsyncInput.setToken(token);
final SearchByMassAsyncResponse thisSearchByMassAsyncResponse = thisMassSpecAPIStub.searchByMassAsync(getSearchByMassAsyncInput);
Output = thisSearchByMassAsyncResponse.getSearchByMassAsyncResult();
} catch (Exception e) {
LOG.log(Level.ERROR, "Problem retrieving ChemSpider webservices", e);
}
return Output;
}

/**
* Function to call the GetAsyncSearchStatus operation of ChemSpider's Search SOAP 1.2 webservice (http://www.chemspider.com/search.asmx?op=GetAsyncSearchStatus)
* Query asynchronous operation status. Requires transaction ID returned by AsynchSearch operation. Security token is required.
*
* @param rid: String representing transaction ID returned from a previous search
* @param token: string containing your user token (listed at your http://www.chemspider.com/UserProfile.aspx page)
* @return: String describing status of this search - can have values Unknown or Created or Scheduled or Processing or Suspended or PartialResultReady or ResultReady or Failed or TooManyRecords
*/
public static String get_Search_GetAsyncSearchStatus_Results(String rid, String token) {
String Output = null;
try {
final SearchStub thisSearchStub = new SearchStub();
com.chemspider.www.SearchStub.GetAsyncSearchStatus GetAsyncSearchStatusInput = new com.chemspider.www.SearchStub.GetAsyncSearchStatus();
GetAsyncSearchStatusInput.setRid(rid);
GetAsyncSearchStatusInput.setToken(token);
final GetAsyncSearchStatusResponse thisGetAsyncSearchStatusResponse = thisSearchStub.getAsyncSearchStatus(GetAsyncSearchStatusInput);
Output = thisGetAsyncSearchStatusResponse.getGetAsyncSearchStatusResult().toString();
} catch (Exception e) {
LOG.log(Level.ERROR, "Problem retrieving ChemSpider webservices", e);
}
return Output;
}

/**
* Function to call the GetAsyncSearchResult operation of ChemSpider's Search SOAP 1.2 webservice (http://www.chemspider.com/search.asmx?op=GetAsyncSearchResult)
* Returns the list of CSIDs found by AsynchSearch operation. Security token is required.
*
* @param rid: String representing transaction ID returned from a previous search
* @param token: string containing your user token (listed at your http://www.chemspider.com/UserProfile.aspx page)
* @return: int[] array containing the ChemSpider IDs.
*/
public static int[] get_Search_GetAsyncSearchResult_Results(String rid, String token) {
int[] Output = null;
try {
final SearchStub thisSearchStub = new SearchStub();
com.chemspider.www.SearchStub.GetAsyncSearchResult GetAsyncSearchResultInput = new com.chemspider.www.SearchStub.GetAsyncSearchResult();
GetAsyncSearchResultInput.setRid(rid);
GetAsyncSearchResultInput.setToken(token);
final GetAsyncSearchResultResponse thisGetAsyncSearchResultResponse = thisSearchStub.getAsyncSearchResult(GetAsyncSearchResultInput);
Output = thisGetAsyncSearchResultResponse.getGetAsyncSearchResultResult().get_int();
} catch (Exception e) {
LOG.log(Level.ERROR, "Problem retrieving ChemSpider webservices", e);
}
return Output;
}

}

Disclaimer: I’m new to Java programming, so please excuse me if you are a java expert and I’ve said something obvious, offended you with my code or used the wrong terminology anywhere.

 

Last week Antony Williams gave three presentations about ChemSpider as a chemistry resource at the 241st ACS National Meeting  & Exposition in Anaheim.

For those of you who were not able to attend here are the presentations:

RSC ChemSpider as an environment for teaching and sharing chemistry 

Hosting a compound centric community resource for chemistry data 

How the web has weaved a web of interlinked chemistry data 

GGA Software Services and Royal Society of Chemistry’s ChemSpider Announce Partnership

Cambridge, MA – January 28, 2011 – GGA Software Services, a leading provider of scientific informatics services to the life sciences and related industries, and Royal Society of Chemistry’s ChemSpider, a leading provider of chemical services and data on the internet, announced today a strategic technology partnership that will provide significant benefits to users of the ChemSpider chemical database.  The agreement makes available GGA’s open source Bingo chemistry search engine for use on the ChemSpider website, enhancing the ability of users of the ChemSpider service to efficiently conduct searches of the nearly 25 million chemical structures within the ChemSpider chemical database.

Bingo is a RDBMS data cartridge that provides the next-generation, fast, scalable, and efficient storage and searching solution for chemical information.  Bingo sets the industry standard in structure and reaction registration and retrieval, implementing state-of-the-art indexing algorithms within an underlying database server and making chemical searching fast and reliable.  Its extensible indexing enables scientists to store, index, and search chemical moieties alongside numbers and text within one underlying relational database server.  Users can seamlessly combine chemical substructure, reaction, and exact structure searching with numeric and text SQL terms.  It also has features not present in other cartridges — for example, advanced tautomer search, resonance substructure search, and fast updating of the index when adding new structures.

Richard Golob, President and CEO of GGA Software Services, states “We are very pleased to offer GGA’s Bingo search engine to users of the ChemSpider service.  As a professional services company, GGA would like to partner and share with others in the scientific informatics community to develop best-of-class open-source solutions.  Bingo, our open-source offering that is the result of five years of internal development, provides all the necessary search features required by chemoinformatics applications.  With Bingo, we have succeeded in achieving superior performance in a data cartridge for various types of searches, especially substructure search.  Users of Bingo will enjoy unsurpassed search capability for molecules and reactions.”

Antony Williams, Vice President of Strategic Development for ChemSpider, adds “ChemSpider has become one of the primary internet resources for scientists to search for chemicals and related information. The ability to efficiently search across a database of almost 25 million structures is a significant challenge.  We chose GGA’s Bingo offering as a result of the superior responsiveness of the GGA development team and the fact that the software is open source, thereby allowing us to extend the platform as necessary.  We look forward to a long and productive relationship with GGA Software Services.”

About GGA Software Services LLC

GGA Software Services is a leading provider of outsourced scientific informatics services to the life sciences industry.  Headquartered in Cambridge, Massachusetts, with a best-of-class development center in St. Petersburg, Russia, GGA offers broad capabilities in scientific software engineering, algorithm development, and knowledge, especially in cheminformatics and bioinformatics.  Global pharmaceutical, scientific instrumentation, and medical device corporations as well as early-stage life science companies rely on GGA to provide ongoing scientific informatics services, including support, maintenance, and QA services, to enhance their internal resources.  Since 1994, GGA has successfully served as an extended workbench for its clients, allowing them to both achieve their critical objectives and maximize their scientific informatics budget.  For more information, please visit our website at www.ggasoftware.com.

About the Royal Society of Chemistry

The RSC is the largest organisation in Europe for advancing the chemical sciences.  Supported by a worldwide network of members and an international publishing business, our activities span education, conferences, science policy and the promotion of chemistry to the public.  www.rsc.org

About ChemSpider

ChemSpider offers a structure-centric community for chemists to resource data.  Offering access to almost 25 million unique chemical entities from over 400 data sources and by providing a platform for crowd-sourced deposition, annotation, and curation, it is the richest source of free integrated chemistry information available online.  ChemSpider delivers data and services to enable the semantic web for chemistry.  www.chemspider.com

Contacts:

Richard Golob

GGA Software Services LLC

One Mifflin Place

Cambridge, MA 02138

Tel: 617-491-5100

Fax: 617-491-0932

Email: info@ggasoftware.com

www.ggasoftware.com

Antony Williams

ChemSpider, Royal Society of Chemistry

904 Tamaras Circle

Wake Forest, NC 27587

Tel: 919-201-1516

Email: info@chemspider.com

www.chemspider.com

We hope you’ve had an opportunity to take a look at the revamped website. If you would like to share your thoughts on usability and design or site performance please take a moment to click on the “Give Feedback” button on the website. This will really help us to make the ChemSpider user experience even better.

 Kampyle feedback

Earlier this month I reported on the integration of Infotherm to ChemSpider but at that time it would have been necessary for non-RSC members to pay for the data on Infotherm despite the fact that a search would have provided the links and you could have clicked through to the Infotherm data pages. Some good news from Fiz-Chemie though…they are waiving the fee for data on pure compounds accessed from ChemSpider and as a result giving access to over 200,000 tables of data. This is a great contribution to the community of ChemSpider users. Thanks Fiz-Chemie!

 

infotherm

Last night I gave a presentation at the BAGIM meeting in Boston. The abstract is below together with the embedded presentation from Slideshare

ChemSpider – Is This The Future of Linked Chemistry on the Internet?
ChemSpider was developed with the intention of aggregating and indexing available sources of chemical structures and their associated information into a single searchable repository and making it available to everybody, at no charge. There are now hundreds of chemical structure databases such as literature data, chemical vendor catalogs, molecular properties, environmental data, toxicity data, analytical data etc. and no single way to search across them. Despite the diversity of databases available online their inherent quality, accuracy and completeness is lacking in many regards. ChemSpider was established to provide a platform whereby the chemistry community could contribute to cleaning up the data, improving the quality of data online and expanding the information available to include data such as reaction syntheses, analytical data and experimental properties. ChemSpider has now grown into a database of almost 25 million chemical substances, grows daily, and is integrated with over 400 sources, many of these directly supporting the Life Sciences. This presentation will provide an overview of our efforts to improve the quality of data online, to provide a foundation for a linked web for chemistry and to provide access to a set online tools and services to support access to these data.

When you’re viewing a compound page in ChemSpider e.g. hydrogen peroxide there are several ways to find more detailed RSC information (articles and books) about that compound:

  1. In the “Articles” infobox, the results under the “Links & References” tab are links to various journals that have either been deposited or added by ChemSpider users. When the RSC enhances one of its articles, the most important compounds in the article are submitted to ChemSpider for deposition (see here for more details), and when this happens, the article details are also deposited so that a link will appear in this box. As such, there usually won’t be thousands of links in this box, but those that are there will for example pick up references to compounds which maybe aren’t named explicitly in the article (but for example are drawn out in a figure) and as such couldn’t be found by a simple text serach.
  2. The results under the “RSC Journals” tab in the “Articles” infobox are the results of passing a search into the RSC publishing platform to retrieve all of the journal articles that contain any approved synonym for the compound (in the “Identifiers” infobox under the “Names and Synonyms” tab). Since these lookups first appeared in ChemSpider 6 months ago (see here for more details) this platform has progressed from bring a beta version, to now being the fully-fledged publishing platform for searching on and delivering RSC journals, books and databases. To investigate the functionality of this platform more and refine your search results list, click on the link above the list of results to “Click here to explore results” and this will allow you to sort the results by date, or apply filters e.g. to restrict the results set by author, date range,  journal etc.). This is useful since for common chemicals, the list of results returned can be long.
  3.  The “RSC Books” tab under “Articles” performs a similar search on occurences of the approved synonyms but on RSC books rather than RSC journal articles.
  4. Likewise, the “RSC Databases” infobox shows search results of the same approved synonyms but this time the results are from the various RSC abstract databases named in its various tabs. This means that they contain references to the compounds in non-RSC articles.

Links to RSC Articles

We deposit a lot of data onto ChemSpider in a  month and the database is growing daily. As an example of the ongoing depositions take a look at what has been deposited in a one month timrframe from July-August. This is simply what has been published by me…not all depositions. It’s a pretty good indicator of ongoing efforts to enhance the quantity of content on the site.

published_in_a_month

The Chemicalize website from ChemAxon is gaining interest (1,2) and, likely, LOTS of users! Chemicalize is both a website for recognizing chemical names and converting to chemical structures as well as an integration path to their property prediction algorithms. Some basic testing of chemicalize shows that their chemical name detection and conversion to structures using either name to structure conversion (algorithmically) or name lookup (via dictionaries) is very good. Not perfect, but very good. Perfect chemical name lookups are impossible as the associated dictionaries grow every time a new natural product is found for example, or a new drug is released.

With ChemSpider we are more interested in the linking to the predicted property pages. For example, if you want to see the predicted properties for Penicillin visit here.

penicillin

Now, with ChemSpider ChemAxon were kind enough (and I mean applaud them, acknowledge them and send flowers!!) to give us a way to pass through a structure and initiate the predictions on the Chemicalize site. This is tremendous news for you all! Under the properties Infobox we provide a list of properties from ACD/Labs, a list of properties from EPISuite, a list of experimental properties, sourced from various places and now, the link to Predict Properties using Chemicalize.

properties

Clicking the tab for Predict Properties from ChemAxon display the link through to Chemicalize as shown below.

chemicalize So, now we have sets of prediction capabilities linked up to ChemSpider. The ACD/Labs predictions are pre-calculated and every time there is an update to the algorithms in theory we would have to recalculate across the database and publish. This would take weeks of time across the almost 25 million structures so it is not a frequent task. It is the same issue with EPISuite. With the Chemicalize integration however the predictions are live, on the structure at the time it is passed to the algorithms. This has the advantage that the prediction algorithms can be incrementally improved and you will always get the latest and greatest results. However, having the predicted values from ACD/Labs available allows flexible searching as shown below. We are grateful to ChemAxon to allowing us to integrate Chemicalize. It gives LIVE access to the latest and greatest predictions as well as access to a whole series of new predictions for which we don’t have data on the database…especially pKa values, topology analysis, geometry and others. Thanks ChemAxon!

acdlabs

Have you ever had a niggling feeling that you’ve been missing some corner of ChemSpider which might have a tool that will make your life much easier?

http://www.chemspider.com/Sitemap.aspx is the new sitemap for ChemSpider which lists all of the different pages in it and will help you to get an overview of all the different things that you can see and do on ChemSpider.

There are also brief descriptions about each page which will, where necessary, suggest input examples if you just want to try something out but aren’t quite sure what to type into the boxes. If you are a ChemSpider depositor or curator and view the sitemap when logged in you will see additional pages relevant to your assigned roles.

Richard Kidd

We’re very proud that ChemSpider is one of the shortlisted finalists for the ALPSP 2010 Publishing Innovation award – the other finalists are Mastervision from DataSalon, Semantic Biochemical Journal from Portland Press, and UniPHY from the American Institute of Physics. The winners will be announced on 9 September at the ALPSP International Conference, so good luck to all, fingers crossed here and we’ll let you know the result.

First post for me on the ChemSpider blog, so a quick introduction. I’m Richard Kidd, and I manage the Informatics team at the RSC in Cambridge. We work on the technical enhancements of our publications (such as 2007 ALPSP Innovation award winner RSC Prospect) and we’re supporting the current and future ChemSpider developments alongside the original team – and this also includes support for ChemSpider users and depositors. We’re all here.

I had previously announced the integration of NMRShiftDB as a beta integration. I have received feedback both on-blog and off-blog about the performance of the algorithms and the need for improved display of results. Wolfgang Robien, one of the major contributors to the domain of curated NMR databases and NMR prediction, gave feedback in the comments section regarding the performance of the initial integration. There was a significant bug highlighted in the integration that resulted in dropping double bonds when passing structures from ChemSpider to the API for NMRShiftDB. This was clearly a very significant issue but Stefan Kuhn has fixed the issue. NMRShiftDB was taken offline for a couple of days while the error persisted but is back online today with this issue resolved.

What we KNOW we need to do to enhance the integration is as follows:

1) Always display the chemical structure and associated numbering scheme

2) Display the spectrum type so it is clear what nucleus is being displayed

3) Indicate whether the spectrum displayed is a database hit or is a predicted spectrum

4) Display the details of the assignments including the number of SHELLS used in the HOSE code based prediction.

Our work on the integration to NMRShiftDB will continue and we will enhance it moving forward. Thanks to all for the ongoing feedback and testing.

I gave a talk at the ACS Meeting in the Future of Scholarly Communication Meeting yesterday. The abstract is below…and I DID talk about how Viagra keeps flower stems stiff. It was recorded and should go online soon and I will point to it again. For now I have linked the Slideshare presentation

Enhancing discoverability across Royal Society of Chemistry content by integrating to ChemSpider, an online database of chemical structures

The ability to query across a chemistry publishers content using chemical structure searching can dramatically enhance discoverability. RSC has been applying a number of procedures to integrate RSC’s ChemSpider community resource with our published content and databases. These include: 1) entity extraction procedures 2) chemical name conversion procedures using software algorithms and curated dictionaries 3) semantic markup and 4) a crowdsourced curation processes. This presentation will provide an overview of the processes we have utilized in order to provide structure-based integration to RSC content. We will discuss our ongoing efforts to extend the approaches to the mining of data from the rich supplementary information sections of many RSC publications. Our intention is to provide access to synthesis procedures and analytical data and further enrich the ChemSpider database for the benefit of the chemistry community.

The functionality discussed below will be released at the ACS Spring Meeting during the week of March 21st 2010

Following on from the last post regarding integrating to RSC Databases via the RSC Publishing Beta web services layer this post expands on the nature of the integration that we have been able to introduce. The RSC publishing beta gives us access to over 500,000 journal articles, book chapters and database records through one simple search interface. Using a similar approach to that outlined for the RSC database searches, that of using validated synonyms as the basis of the search for chemicals, we are able to search across the entire ePlatform of articles and retrieve hits as shown below. The hits are under the RSC journals tab.

Since the RSC publishing platform segregates the journals from the books the same search will return results from RSC books also. Our tests show that this is incredibly fast and highly accurate. This is our first venture into tapping into the chemical compounds sitting inside the RSC archive. More work is coming…

If you look at the tabs below you will also see that we have integrated to Google Books, Google Scholar and the Microsoft Academic Search. We are truly integrating to available internet resources to bring together the benefits of all of the primary search engines available.

eplatform

The functionality discussed below will be released at the ACS Spring Meeting during the week of March 21st 2010

The Royal Society of Chemistry has a whole series of databases. None of them have been structure searchable…until now. As with our PubMed integration and our Google Patents integration rolling out shortly, just because a database hasn’t had the chemical structures extracted and indexed doesn’t mean that those resources cannot be made “structure searchable”. It’s not a subtle distinction however, as discussed in the Google Patents blog post. These types of integrations depend on the correct association between chemical names and structures, access to an API allowing facile and flexible searching and, something that is purely serendipitous in nature, the absence of overlaps between chemical names and common language.

We have used the recently announced RSC Publishing beta platform and the API made available to us to enable the searching. As my colleague Graham McCann announced recently “(the) platform gives access to over 500,000 journal articles, book chapters and database records through one simple search interface. The new platform delivers faster browsing, intelligent searching and more intuitive navigation and is open for beta testing now.”

Our approach has been to search the title and the abstract for each of the databases for all of the validated identifiers. It works. It is FAST and it provides “structure-related” access to all six RSC databases. An example screen shot is below where a search on chlorobenzene retrieves data on each of the following databases: Mass Spectrometry Bulletin, Laboratory Hazards Bulletin, Methods in Organic Synthesis, Catalysts and Catalysed Reactions, Natural Product Updates and Analytical Abstracts. The screen shot below shows the analytical abstracts linked by the term chlorobenzene in the title or abstract itself. 284 hits..in a fraction of a second. The abstract is linked out to the original article via DOI, where possible.

databases

My personal favorites in the set of databases are the Natural Product Updates (NPU) and the Methods in Organic Synthesis (MOS) databases. The NPU database contains tens of thousands of natural product chemical structures, together with chemical names, references and some physical properties. Rich resources for ChemSpider. MOS includes includes reaction schemes, title and bibliographic details. Rich resources to connect to ChemSpider SyntheticPages in the future.

We have only just started to tap into the riches contained within the RSC archive. It’s like stumbling across a roomful of rubies to pick up diamonds. There is content all around us waiting for us to connect. We will connect this up to ChemSpider and make it available. Access to the databases will be shown at the ACS Meeting in San Francisco.

The functionality discussed below will be released at the ACS Spring Meeting during the week of March 21st 2010

ChemSpider has been integrated into the SureChem service for almost 3 years. It’s a great service and the SureChem team have worked very hard to provide a premier offering at an affordable price point. The approach SureChem has taken is an interesting one…using entity extraction techniques to find chemical names in patents and using various Name-to-Structure conversion engines to generate a consensus result of what is the most appropriate chemical structure associated with a name. From this set of data they assemble a rich database of chemical structures linked back to the associated patents. This database is, of course, both structure and substructure searchable. Using the webservice provided to us by SureChem we have been able to link chemical structures in ChemSpider out to SureChem. This can produce a lot of hits across the various patent databases because of the existence of a chemical name in the patent text.Look under the patents tab for Xanax and you will see an abundance of related patents.

Note that the link between ChemSpider and SureChem is based on the structure using an InChI as the connection string. Structures will only exist in the SureChem database based on the success of the name to structure conversion software.There is a big upside to this, to be described shortly, but it also has a downside. The downside is that entity extraction depends on the identification of systematic names using tuned algorithms that SureChem have been optimizing for many years. However, for non-systematic names including trade names etc the dependence will be on both dictionaries within the entity extractor as well as dictionaries underlying the name to structure conversion engines. So, the fact that Cocaine has the identifiers snow, berries and bernice (believe me…check the names on ChemSpider!) depends on the extraction of the three names and then association to the structure cocaine. It is UNLIKELY that any patent will use these terms for cocaine of course! This all will become clear now….

We have decided to take advantage of the potential to integrate to Google Patents as it’s easy, it’s low-hanging fruit, and it may have advantages to bring together both SureChem and Google Patents for the users to choose. So, we have taken a similar approach to searching Google Patents as we do with PubMed. We search PubMed using all validated synonyms associated with a structure. Therefore for Xanax, which is validated, we would get this hit list. However, if there were no names validated against that structure then we would get NO Google Patents. There has been an active project for three years to validate name-structure pairs across ChemSpider and I am yet to see any incorrectly associated patents. Fortunately the names snow, bernice and bennies are NOT validated. If they were then we would get this list associated with Cocaine when bernice is validated.

If you look at slide 11 from my presentation at ICIC posted here you will see how complex a NAME-based search can be for a particular component. All of those names for OEA had to be searched. In the world of entity extraction all of those names would have to be found and correctly converted to the correct structure. A balance of name linking and entity extraction approaches will likely give an intersection.

freepatents

___________________________________________________________________________

The intersection of Google Patents seems to show great promise. It has advantages in that it offers access to the digitized US patents all the way back to 1790. However, SureChem has coverage of WO, European and Japanese Patents while Google Patents is limited to US only. We have already learned a lot about how to reduce erroneous results and get back the most value from the Google Patents service but we look to you, the users, for initial feedback when we release at the ACS. Google Patents will be available under the last tab in the Patents infobox.

google patents

The functionality discussed below will be released at the ACS Spring Meeting during the week of March 21st 2010

We had previously released NMR prediction on ChemSpider as announced here. Based on community feedback we later removed that connection and had never reconnected, despite reported improvements. I am an NMR spectroscopist by training …if you check out my Mendeley profile you’ll see that the majority of my papers are NMR-based. Because I am an NMR jock, and despite working in cheminformatics I do keep my hands in NMR research (NMR prediction and computer assisted structure elucidation) I really wanted to make sure that we deliver NMR prediction via ChemSpider. I was involved with the development of the ACD/Labs NMR prediction tools for H1, C13, N15, F19 and P31 nuclei. There are a number of other NMR prediction modules on the market including those of Bio-Rad (in the Know-It-All package), Modgraph and certainly the work of Wolfgang Robien, one of the founding fathers of NMR prediction. These are primarily commercial packages.

In the background we have been working on the introduction of NMR prediction to ChemSpider in time for the ACS. We were looking for a platform that we could integrate that involved community deposition of data to ensure there was a growing database to enhance the prediction algorithms. We also wanted to know that the underlying data quality was good. We wanted to integrate to an Open system that had support from both an active community of participants as well as at least one developer who could provide support if we needed it. All of these criteria point to only one resource, NMRShiftDB. There have been some heated discussions, including on this blog, regarding data quality, especially in NMRShiftDB. However, I co-authored a paper with Chris Steinbeck and colleagues from ACD/Labs validating the dataset as well as ACD/Labs’ NMR prediction approaches.

NMRShiftDB is a high quality data set and certainly contains enough data to provide a training set for NMR prediction algorithms. The NMR predictions provided by NMRShiftDB are used by many people and overall feedback seems to be very positive.  Based on our previous knowledge of the data in NMRShiftDB, and the availability of a well defined programming interface to connect ChemSpider, we have worked with Stefan Kuhn at the EBI to produce a first level integration.

As a result at the ACS meeting in San Francisco next week we will roll out NMR prediction integration. In keeping with the new layout model we have adopted for ChemSpider using tabbed approaches for display of data, we have bundled together all predictions. The first ACD/Labs tab provides access to ACD/Labs PhysChem properties, the EPI Summary provides access to the EPISuite and the NMRShiftDB provides access to the predicted NMR spectra. The left spectrum shows the Proton NMR spectrum and the right spectrum shows the C13 NMR spectrum.

NMRshiftDB

When the system is fully integrated the process will work as follows. Since NMRShiftDB already contains many thousands of assigned spectra we will retrieve the experimentally assigned spectra directly and display them. When we cannot retrieve the experimental spectra then we will predict the NMR spectra and display them.

In the future we might pre-predict and store the NMR spectra for all structures on the NMR database. I am a little leery of doing this at present as we need to gather some basic feedback from the ChemSpider users regarding the performance of the NMR prediction algorithms and our existing implementation. In terms of predicting NMR spectra across a database of this size then a lot of consideration has to be given to domain applicability..i.e, what subset of structures should be excluded from having NMR predictions performed? For example, organometallic complexes, free radicals etc. CAS likely had to take this type of issue into account when they applied NMR predictions to their CAS registry.

If there are other NMR prediction algorithms or databases that you would be interested in integrating into ChemSpider please contact me. If you are a cheminformatics vendor selling NMR predictions/databases we would be VERY interested in receiving JUST the structures from your NMR databases. We will deposit them and link directly to your product page as an indicator that you have NMR data available.

As ChemSpider has grown in the amount and diversity of data that we link to our interface has had to evolve. The reality is that our pages have started to become heavy with data and information and, in many ways, can be unwieldy for some of the pages. As a result we have introduced Tabbed Infoboxes to make navigation much easier.

These tabbed infoboxes collapse the information into an infobox but keep them segregated under various tabs. The two examples below are from the present site that is online and shows the data sources box (now it’s EASY to find all chemical vendors under an aggregated infobox tab called chemical vendors) and the patents infobox, using the SureChem service and separating the tabs into different patent classes.

What I will unveil in a later post regarding OTHER tabbed boxes will be more exciting and you will see why we have taken this path shortly.

data sources

patents

We’ve taken the first step towards user being able to seamlessly bounce back and forth between finding compounds of interest using the ChemSpider search and selection tools and finding more information about them in RSC journals…

I’m pleased to announce that we’ve just switched on a deposition system which will take compounds from the prospected version of RSC articles as they are published and automatically deposit them into ChemSpider, making a link back to the original article from the new compound page. An example of a new compound is here which was generated when this article was prospected. The same deposition process is used to make links from existing ChemSpider compounds to new RSC articles, for example here was generated when this article was published.

This is basically a way to stick our toe in the water to investigate how much intervention and cleaning is necessary to deposit compounds when all the information that we have been storing for them is the InChI without any 2D layout information (which is an issue that other potential data sources may also face too).  To do this we’ve been making use of the ChemSpider webservices http://www.chemspider.com/InChI.asmx to download the mol files of InChIs already in ChemSpider, or using the InChItoMol webservice to generate new mol files where they don’t exist already.  Tracking and fixing problems as they crop up at this manageable rate will help us when we face the larger task of importing all of the compounds that have been prospected in the past into ChemSpider.

We are presently running ChemSpider SyntheticPages Beta off of our servers in Washington DC. Last week the servers were taken offline for a few hours after the 30″ snowfall felled some power lines in the city. Our apologies. There is another storm due to hit Washington this week and an expected 20″ of snowfall. It is possible that our beta servers will go offline again. If that happens we apologize in advance. We are presently configuring our beta servers to run out of the RSC offices in Cambridge in the United Kingdom. When that happens we will be less susceptible to such power issues.

In the recent rollout of functionality we added to the home page statistics regarding the number of various types of spectra that have been added to ChemSpider as well as updates of new data associated with data sources. We will likely optimize these displayed further in the future but this is an initial display for the time being. It’s rather impressive how many different types of 2D NMR data are being uploaded to the database.

statistics

Part 4 in the exposure of new ChemSpider functionality from the recent update. We have been using the ACD/Labs Structure Drawing Applet on ChemSpider for the past three years. It’s been a great piece of technology and was one of the first applets, possibly the first structure drawing applet ever released. However, it’s old technology and we have been encouraged by our users to use a more modern applet. We are very fortunate to have been granted the right to use the Symyx JDraw applet and have had the pleasure of working with Keith Taylor and James Jack. For the time being we have left two applets online for the users to try out and provide feedback on. You can choose the ACD/applet or JDraw by selecting via the interface as shown below. Feedback welcomed.

symyx jdraw

Following on from my previous post regarding new functionality on ChemSpider, the last one regarding improved integration to SureChem patents, I am happy to announce that we have improved the Pubmed integration. Previously we would stream way too many articles from Pubmed for some compounds. For example, retrieving articles about cholesterol would result in too long a page of Pubmed articles being displayed.We have now limited the number of articles retrieved and simply put a link at the top of the page for you to retrieve the rest of the links.

pubmed1

In this case when you click the link we initiate a full search using the Entrez Life Sciences API. The results for cholesterol are shown here. A small but user-friendly improvement…More to follow.

While some say “Silence is Golden” some of us find it deafening! One of my common statements regarding Press Releases and political commentaries is there is as much said in the “unsaid”. Why this lead in to this blog post? Well….the truth is we haven’t been very productive in the past few weeks with the delivery of new functionality onto ChemSpider and people have been asking me why we haven’t been so prolific with our updates. Well….in this case Silence is Golden based on the new functionality and data rolling out soon!

Historically we were introducing new functionality every few days and rolling it out with a “continuous beta” approach to delivery. We were also working on only three computers and were challenged with issues of uptime and handling. At the RSC we have access to development, test and live environments, we have a stable compute environment supporting the system that provides power support where previously we would have been at risk of outages. We have a support team who have “got our backs” and we are not dealing with all of the issues regarding keeping the environment healthy for the ChemSpider platform. With our new hosted environment and the drive to move away from our previous constant and ongoing updates to a more controlled process for rollout, specifically including internal testing prior to going Live, we have been working on procedures to ensure the best delivery. In parallel we have been working on a series of internal projects that are very exciting and you should see the results soon!

With our new processes in place, and our new systems now established we have been working on new functionality development and are happy to announce that we will now be moving towards regular updates, every few weeks. We’re starting this week with the roll out of a set of new capabilities for you to try out. I’ll highlight these in a series of blog posts over the coming days.Let’s start with this one…

We are happy to announce an improved integration to the patent web service provided to us via our collaboration with SureChem. We announced our initial integration to this service at the ACS meeting last fall in Washington and received a lot of positive feedback regarding the implementation. That rollout only provided integration to a subset of the entire collection, the USPTO. SureChem host data from a number of patent agencies and the collection includes USPTO Granted, USPTO Applications, European Granted, European Applications, WO/PCT and Japanese Abstracts. Thanks to their web service we now have the ability to retrieve information regarding those sources also. The image below shows the patents retrieved for Xanax. Check it out…give us your feedback and extend holiday cheer to SureChem also for their contribution to the community.

patents