From: Andreas T. <atr...@gm...> - 2010-11-18 11:59:51
|
Hi together, is there any document or knowledge available about which QSAR descriptor is thread safe or not. I have found out that the AminoAcidCountDescriptor Constructor is not and I have not the time to test all of them. It throws following exception: ERROR 2010-11-18 12:45:31,677 (System.err:139) - java.lang.NullPointerException ERROR 2010-11-18 12:45:31,677 (System.err:139) - at org.openscience.cdk.qsar.descriptors.molecular.AminoAcidCountDescriptor.<init>(AminoAcidCountDescriptor.java:82) ERROR 2010-11-18 12:45:31,678 (System.err:139) - at org.openscience.cdk.applications.taverna.qsar.descriptors.molecular.AminoAcidCount.getDescriptor(AminoAcidCount.java:46) ERROR 2010-11-18 12:45:31,678 (System.err:139) - at org.openscience.cdk.applications.taverna.qsar.QSARDescriptorWorker.run(QSARDescriptorWorker.java:122) The reason is that the marked var is static. private static AminoAcid[] aminoAcids = null; public final static String RESIDUE_NAME = "residueName"; public final static String RESIDUE_NAME_SHORT = "residueNameShort"; public final static String NO_ATOMS = "noOfAtoms"; public final static String NO_BONDS = "noOfBonds"; public final static String ID = "id"; /** * Creates amino acid AminoAcid objects. * * @return aminoAcids, a HashMap containing the amino acids as AminoAcids. */ public static AminoAcid[] createAAs() { if (aminoAcids != null) { return aminoAcids; } // Create set of AtomContainers aminoAcids = new AminoAcid[20]; Cheers, Andreas |
From: Egon W. <ego...@gm...> - 2010-12-04 09:57:02
|
Hi Andreas, On Thu, Nov 18, 2010 at 12:59 PM, Andreas Truszkowski <atr...@gm...> wrote: > is there any document or knowledge available about which QSAR descriptor is > thread safe or not. There are JavaDoc tags for that... e.g. in: http://pele.farmbio.uu.se/nightly-1.4.x/cdk-javadoc-1.3.7.git/org/openscience/cdk/smiles/DeduceBondSystemTool.html There is an outstanding, old, needs-updating patch by the KNIME team to annotate more classes: https://sourceforge.net/tracker/?func=detail&aid=2802784&group_id=20024&atid=320024 > The reason is that the marked var is static. > > private static AminoAcid[] aminoAcids = null; <snip> > public static AminoAcid[] createAAs() { > if (aminoAcids != null) { > return aminoAcids; > } > > // Create set of AtomContainers > aminoAcids = new AminoAcid[20]; Yes, I understand why this will give problems... Andreas, can you please test this patch for AminoAcids: - public static AminoAcid[] createAAs() { + public synchronized static AminoAcid[] createAAs() { Egon -- Dr E.L. Willighagen Postdoctoral Research Associate University of Cambridge Homepage: http://egonw.github.com/ LinkedIn: http://se.linkedin.com/in/egonw Blog: http://chem-bla-ics.blogspot.com/ PubList: http://www.citeulike.org/user/egonw/tag/papers |
From: Andreas T. <atr...@gm...> - 2010-12-04 10:42:44
|
Hi Egon, thank you for your answer. Am 04.12.2010 10:56, schrieb Egon Willighagen: > can you please test this patch for AminoAcids: > > - public static AminoAcid[] createAAs() { > + public synchronized static AminoAcid[] createAAs() { I wrote the same patch for my project and it is working. For the individual descriptors I will look through the API Docu. Have a nice weekend. Cheers, Andreas |
From: Egon W. <ego...@gm...> - 2010-12-04 10:44:14
|
On Sat, Dec 4, 2010 at 11:42 AM, Andreas Truszkowski <atr...@gm...> wrote: > Hi Egon, > > thank you for your answer. > Am 04.12.2010 10:56, schrieb Egon Willighagen: >> can you please test this patch for AminoAcids: >> >> - public static AminoAcid[] createAAs() { >> + public synchronized static AminoAcid[] createAAs() { > I wrote the same patch for my project and it is working. Great! If you have that oneliner as patch, please send it, so that I can 'review' and apply it :) Egon -- Dr E.L. Willighagen Postdoctoral Research Associate University of Cambridge Homepage: http://egonw.github.com/ LinkedIn: http://se.linkedin.com/in/egonw Blog: http://chem-bla-ics.blogspot.com/ PubList: http://www.citeulike.org/user/egonw/tag/papers |