From: Christoph S. <c.s...@un...> - 2004-11-22 13:51:24
|
We will try to adhere to as much of that as possible. Currently, our focus is on achieving as much functionality as possible=20 in a six month project. So there might be some problems with the trade-off between design and=20 getting important functions implemented. But as I said - we'll try :-) Cheers, Chris E.L. Willighagen wrote: > Matteo, >=20 > thanx for starting QSAR descriptor calculation in CDK. Below are some J= avaDoc=20 > comments, but some more important things first... >=20 > Christoph might have told you about the qsar.sf.net project where we wi= ll try=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... >=20 > Therefore, I think it's very important that we have an interface so tha= t=20 > descriptor calculators can be pluged into any program... >=20 > At this moment the classes have a straightforward JavaBean like interfa= ce=20 > which is good, but maybe we can think about a more general API. > I'm thinking about one class for each descriptor type... >=20 > Each type has one or more parameters that should be set before calculat= ing the=20 > descriptor. For example this example: >=20 > public class AtomCountDescriptor implements cdk.qsar.Descriptor { >=20 > /** > * 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 > } >=20 > public Object calculate(AtomContainer container) { > return new Integer(1); // well, I hope CDK can do better :) > }=20 >=20 > } >=20 > with this interface: >=20 > public interface org.openscience.cdk.qsar.Descriptor { >=20 > // an exception would be thrown when the parameters are not > // appropriate for this descriptor > public void setParameters(Object[] params) throws CDKException; > public Object[] getParameters(); >=20 > public Object calculate(AtomContainer container); >=20 > // we should also have something like these. The order of the Strin= g[] > // return should match the expected order in setParameters; > public String[] getParameterNames(); > public Object getParameterType(String name); >=20 > } >=20 > 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. >=20 > Joerg, does this match a bit the stuff in JOELib? > Rich, what about Octet? >=20 > Egon >=20 >=20 >=20 > The JavaDoc comments... >=20 > On Monday 22 November 2004 13:48, Matteo Floris wrote: >=20 >>/** >> * Description of the mfe4 >=20 >=20 > Please do not add such comments, but either leave them out, or actually= write=20 > it. >=20 >=20 >> * >> *@author cubic >=20 >=20 > Add your initials/name there. >=20 >=20 >> *@created November 13, 2004 >=20 >=20 > That should be @cdk.created >=20 >=20 >> */ >>public class QsarDescriptors { >> >> /** >> * Constructor for the QsarDescriptors object >> */ >=20 >=20 > Same as above. Either write, or leave out. >=20 >=20 >> public QsarDescriptors() { } >> >> >> /** >> * Gets the atomCount attribute of the QsarDescriptors object >=20 >=20 > Ok, good. Missing dot at the end of sentence. >=20 >=20 >> * >> *@param ac Description of the Parameter >> *@param symbol Description of the Parameter >> *@return The atomCount value >> */ >=20 >=20 > Remove or write, again. >=20 >=20 > Rest of that file similar comments. >=20 >=20 >>--- NEW FILE: QsarDescriptors2D.java --- >>/** >> * Description of the Class >=20 >=20 > Same as above. >=20 >=20 >> *@author mfe4 >> *@created November 13, 2004 >=20 >=20 > Please use #cdk.created and use the format YYYY-MM-DD. >=20 >=20 >> */ >>public class QsarDescriptors2D { >> >> /** >> * Constructor for the QsarDescriptors2D object >> */ >> public QsarDescriptors2D() { } >> >> >> /** >> * Gets the mW attribute of the QsarDescriptors2D object >=20 >=20 > Well... the rest is just the same. >=20 > So: > - - write JavaDoc or remove your editor's default JavaDoc. > - - use @cdk.created YYYY-MM-DD instead of @created > - - dot at end of first JavaDoc description sentence is *very* importan= t >=20 --=20 Dr. habil. Christoph Steinbeck (c.s...@un...) Head of the Junior Research Group for Applied Bioinformatics Cologne University BioInformatics Center (http://www.cubic.uni-koeln.de) Z=FClpicher Str. 47, 50674 Cologne Tel: +49(0)221-470-7426 Fax: +49 (0) 221-470-7786 What is man but that lofty spirit - that sense of enterprise. ... Kirk, "I, Mudd," stardate 4513.3.. |