running searches on multiple query molecules

User e34a92cce5

11-06-2010 04:11:45

Hi,


Is there a way to run a JChem Web Services query on a bunch of smiles strings that are in a file? Do I have to parse each smiles string and run a query individually for each structure or is there a better way to do this? It would be very nice to have a feature similar to the 'overlap analysis' functionality that instant jchem offers to run batch jobs like these.


Thanks

User c1ce6b3d19

11-06-2010 08:51:35

Renju,


Some of the functions in our Web Services will execute on a string containing a number of molecules.  


For example, batchStandardize and batchConvert take multimolecule strings as inputs.  


JChemSearchWS queries are generally done with a single target search molecule.  


What function would you like to run and what would you expect to return?


 


Jon

User e34a92cce5

11-06-2010 15:55:24

Hi Jon,


I think the batchStandardize is a great example for what we want to achieve. Just that the function that we want to use is the runCompleteSearch. So ideally the user supplies multimolecule strings (or even a smiles or SD file) as input for running a similarity search and specifies the threshold etc (pretty much all the options that the 'queryoptions' parameter for beginSearch or runCompleteSearch offers). The output would be pretty similar to the runCompleteSearchResponse XML output except that it would place the results under a parent target molecule (e.g. <TARGETSTRUCTURE>) tag . Something like this:


<SearchId>searchID-1016349457</SearchId>

<TARGETSTRUCTURE>CC1CCC

	
<ResultCount>5</ResultCount>
<Rows>
<Row>
<Molecule>CC1CCCCC1</Molecule>

	<DissimilarityIndex>0.1</DissimilarityIndex>
<cd_id>3</cd_id>

            </Row>
...
</Rows>
</TARGETSTRUCTURE>

<TARGETSTRUCTURE>CC1CCC1

....

</TARGETSTRUCTURE>

User c1ce6b3d19

15-06-2010 16:02:33

Renju,


Thanks for the suggestion.  Perhaps you can tell us about the context or reasons for not wanting to just parse the files and send the searches individually?  These searches can even be sent to the server in parallel and its results returned as they are completed. 


By sending a multifile, you may reduce the network overhead, but the data would be larger and you would have to wait for the entire file to be finished before your results would be returned.


Jon

User e34a92cce5

15-06-2010 17:34:19

Well, the first reason is it would be easy for me to write the program if the web service accepted a file as input. I don;t have to worry about writing a parser, keeping track of the progress etc. which brings me to the question; say I do write an application to parse; how do I check the progress of the search? Does the web service have functions built in to indicate the progress of a search? I do not want my application (PHP) to supply structure#2 to the web service until it is done searching structure#1. Coming back to your suggestion on doing parallel searches, is that something that requires me to configure the Tomcat instance so that this parallel searching can be accomodated?

User c1ce6b3d19

16-06-2010 21:24:16

Renju,


Thanks for your input.  We will consider your request and may include it a future release.


say I do write an
application to parse; how do I check the progress of the search?  Does
the web service have functions built in to indicate the progress of a
search?
I do not want my application (PHP) to supply structure#2 to the
web service until it is done searching structure#1.



If you only need to send them one at a time, then just wait until the result is received from the web service and send the next request.  Currently search progress is not implemented in web services.


Coming back to your
suggestion on doing parallel searches, is that something that requires
me to configure the Tomcat instance so that this parallel searching can
be accomodated?



Nothing is needed.  Tomcat already handles the multi threaded nature of requests from different web users.