From: E.L. W. <e.w...@sc...> - 2004-11-22 13:29:08
|
=2D----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Matteo, thanx for starting QSAR descriptor calculation in CDK. Below are some JavaD= oc=20 comments, but some more important things first... Christoph might have told you about the qsar.sf.net project where we will t= ry=20 to get opensource QSAR programs to interoperate... there already is an=20 interface for data classes, but an interface to descriptor calculation is=20 important too... Therefore, I think it's very important that we have an interface so that=20 descriptor calculators can be pluged into any program... At this moment the classes have a straightforward JavaBean like interface=20 which is good, but maybe we can think about a more general API. I'm thinking about one class for each descriptor type... Each type has one or more parameters that should be set before calculating = the=20 descriptor. For example this example: public class AtomCountDescriptor implements cdk.qsar.Descriptor { /** * Sets the element name of the atom type to count. */ public void setParameters(Object[] params) throws CDKExceptiion { if (params.length > 1) throw new CDKException("AtomCount only expects one parameter"); if (!(params[0] instanceof String))=20 throw new CDKException("The parameter must be of type String"); // process parameter } public Object calculate(AtomContainer container) { return new Integer(1); // well, I hope CDK can do better :) }=20 } with this interface: public interface org.openscience.cdk.qsar.Descriptor { // an exception would be thrown when the parameters are not // appropriate for this descriptor public void setParameters(Object[] params) throws CDKException; public Object[] getParameters(); public Object calculate(AtomContainer container); // we should also have something like these. The order of the String[] // return should match the expected order in setParameters; public String[] getParameterNames(); public Object getParameterType(String name); } Parameter processing is specific, we cannot work around that, but the=20 interface should have mechanism of introspecting that... An object is=20 returned so that we can return any type of object. Some descriptors are not= a=20 single value but e.g. matrix instead. Joerg, does this match a bit the stuff in JOELib? Rich, what about Octet? Egon The JavaDoc comments... On Monday 22 November 2004 13:48, Matteo Floris wrote: > /** > * Description of the mfe4 Please do not add such comments, but either leave them out, or actually wri= te=20 it. > * > *@author cubic Add your initials/name there. > *@created November 13, 2004 That should be @cdk.created > */ > public class QsarDescriptors { > > /** > * Constructor for the QsarDescriptors object > */ Same as above. Either write, or leave out. > public QsarDescriptors() { } > > > /** > * Gets the atomCount attribute of the QsarDescriptors object Ok, good. Missing dot at the end of sentence. > * > *@param ac Description of the Parameter > *@param symbol Description of the Parameter > *@return The atomCount value > */ Remove or write, again. Rest of that file similar comments. > --- NEW FILE: QsarDescriptors2D.java --- > /** > * Description of the Class Same as above. > *@author mfe4 > *@created November 13, 2004 Please use #cdk.created and use the format YYYY-MM-DD. > */ > public class QsarDescriptors2D { > > /** > * Constructor for the QsarDescriptors2D object > */ > public QsarDescriptors2D() { } > > > /** > * Gets the mW attribute of the QsarDescriptors2D object Well... the rest is just the same. So: =2D - write JavaDoc or remove your editor's default JavaDoc. =2D - use @cdk.created YYYY-MM-DD instead of @created =2D - dot at end of first JavaDoc description sentence is *very* important =2D --=20 e.w...@sc... PhD-student on Molecular Representation in Chemometrics Radboud University Nijmegen http://www.cac.science.ru.nl/people/egonw/ GPG: 1024D/D6336BA6 =2D----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (SunOS) iD8DBQFBoemAd9R8I9Yza6YRArGSAKCB7T4krbW4PSIsPuQSg+LSgri8DACgnkdg hFZn6CufJFDa0+QQbnv5cf8=3D =3DAKZT =2D----END PGP SIGNATURE----- |