From: <eg...@us...> - 2006-07-05 18:49:39
|
Revision: 6599 Author: egonw Date: 2006-07-05 11:48:59 -0700 (Wed, 05 Jul 2006) ViewCVS: http://svn.sourceforge.net/cdk/?rev=6599&view=rev Log Message: ----------- Moved a molecular descriptor to the correct package Added Paths: ----------- trunk/cdk/src/org/openscience/cdk/qsar/descriptors/molecular/AtomCountDescriptor.java trunk/cdk/src/org/openscience/cdk/test/qsar/descriptors/molecular/AtomCountDescriptorTest.java Removed Paths: ------------- trunk/cdk/src/org/openscience/cdk/qsar/descriptors/atomic/AtomCountDescriptor.java trunk/cdk/src/org/openscience/cdk/test/qsar/descriptors/atomic/AtomCountDescriptorTest.java Deleted: trunk/cdk/src/org/openscience/cdk/qsar/descriptors/atomic/AtomCountDescriptor.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/qsar/descriptors/atomic/AtomCountDescriptor.java 2006-07-05 18:36:30 UTC (rev 6598) +++ trunk/cdk/src/org/openscience/cdk/qsar/descriptors/atomic/AtomCountDescriptor.java 2006-07-05 18:48:59 UTC (rev 6599) @@ -1,198 +0,0 @@ -/* - * $RCSfile$ - * $Author$ - * $Date$ - * $Revision$ - * - * Copyright (C) 2004-2006 The Chemistry Development Kit (CDK) project - * - * Contact: cdk...@li... - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - */ -package org.openscience.cdk.qsar.descriptors.atomic; - -import org.openscience.cdk.exception.CDKException; -import org.openscience.cdk.interfaces.IAtomContainer; -import org.openscience.cdk.qsar.DescriptorSpecification; -import org.openscience.cdk.qsar.DescriptorValue; -import org.openscience.cdk.qsar.IMolecularDescriptor; -import org.openscience.cdk.qsar.result.IntegerResult; - -/** - * IDescriptor based on the number of atoms of a certain element type. - * - * It is - * possible to use the wild card symbol '*' as element type to get the count of - * all atoms. - * <p>This descriptor uses these parameters: - * <table border="1"> - * <tr> - * <td>Name</td> - * <td>Default</td> - * <td>Description</td> - * </tr> - * <tr> - * <td>elementName</td> - * <td>*</td> - * <td>Symbol of the element we want to count</td> - * </tr> - * </table> - * - * - * @author mfe4 - * @cdk.created 2004-11-13 - * @cdk.module qsar - * @cdk.set qsar-descriptors - * @cdk.dictref qsar-descriptors:atomCount - */ -public class AtomCountDescriptor implements IMolecularDescriptor { - - private String elementName = "*"; - - - /** - * Constructor for the AtomCountDescriptor object. - */ - public AtomCountDescriptor() { - elementName = "*"; - } - - /** - * Returns a <code>Map</code> which specifies which descriptor - * is implemented by this class. - * - * These fields are used in the map: - * <ul> - * <li>Specification-Reference: refers to an entry in a unique dictionary - * <li>Implementation-Title: anything - * <li>Implementation-Identifier: a unique identifier for this version of - * this class - * <li>Implementation-Vendor: CDK, JOELib, or anything else - * </ul> - * - * @return An object containing the descriptor specification - */ - public DescriptorSpecification getSpecification() { - return new DescriptorSpecification( - "http://www.blueobelisk.org/ontologies/chemoinformatics-algorithms/#atomCount", - this.getClass().getName(), - "$Id$", - "The Chemistry Development Kit"); - }; - - /** - * Sets the parameters attribute of the AtomCountDescriptor object. - * - *@param params The new parameters value - *@throws CDKException if the number of parameters is greater than 1 - *or else the parameter is not of type String - *@see #getParameters - */ - public void setParameters(Object[] params) throws CDKException { - if (params.length > 1) { - throw new CDKException("AtomCount only expects one parameter"); - } - if (!(params[0] instanceof String)) { - throw new CDKException("The parameter must be of type String"); - } - // ok, all should be fine - elementName = (String) params[0]; - } - - - /** - * Gets the parameters attribute of the AtomCountDescriptor object. - * - *@return The parameters value - *@see #setParameters - */ - public Object[] getParameters() { - // return the parameters as used for the descriptor calculation - Object[] params = new Object[1]; - params[0] = elementName; - return params; - } - - - /** - * This method calculate the number of atoms of a given type in an {@link IAtomContainer}. - * - *@param container The atom container for which this descriptor is to be calculated - *@return Number of atoms of a certain type is returned. - *@throws CDKException currently nothing will cause an exception to be thrown - */ - - // it could be interesting to accept as elementName a SMARTS atom, to get the frequency of this atom - // this could be useful for other descriptors like polar surface area... - public DescriptorValue calculate(IAtomContainer container) throws CDKException { - int atomCount = 0; - - if (container == null) throw new CDKException("The supplied AtomContainer was NULL"); - - org.openscience.cdk.interfaces.IAtom[] atoms = container.getAtoms(); - - if (atoms == null) throw new CDKException("There were no atoms in the supplied AtomContainer"); - - if (elementName.equals("*")) { - for (int i = 0; i < atoms.length; i++) { - atomCount += container.getAtomAt(i).getHydrogenCount(); - } - atomCount += atoms.length; - } - else if (elementName.equals("H")) { - for (int i = 0; i < atoms.length; i++) { - if (container.getAtomAt(i).getSymbol().equals(elementName)) { - atomCount += 1; - } - else { - atomCount += container.getAtomAt(i).getHydrogenCount(); - } - } - } - else { - for (int i = 0; i < atoms.length; i++) { - if (container.getAtomAt(i).getSymbol().equals(elementName)) { - atomCount += 1; - } - } - } - return new DescriptorValue(getSpecification(), getParameterNames(), getParameters(), new IntegerResult(atomCount)); - } - - - /** - * Gets the parameterNames attribute of the AtomCountDescriptor object. - * - *@return The parameterNames value - */ - public String[] getParameterNames() { - String[] params = new String[1]; - params[0] = "elementName"; - return params; - } - - - /** - * Gets the parameterType attribute of the AtomCountDescriptor object. - * - *@param name Description of the Parameter - *@return An Object whose class is that of the parameter requested - */ - public Object getParameterType(String name) { - return ""; - } -} - Copied: trunk/cdk/src/org/openscience/cdk/qsar/descriptors/molecular/AtomCountDescriptor.java (from rev 6595, trunk/cdk/src/org/openscience/cdk/qsar/descriptors/atomic/AtomCountDescriptor.java) =================================================================== --- trunk/cdk/src/org/openscience/cdk/qsar/descriptors/molecular/AtomCountDescriptor.java (rev 0) +++ trunk/cdk/src/org/openscience/cdk/qsar/descriptors/molecular/AtomCountDescriptor.java 2006-07-05 18:48:59 UTC (rev 6599) @@ -0,0 +1,198 @@ +/* + * $RCSfile$ + * $Author$ + * $Date$ + * $Revision$ + * + * Copyright (C) 2004-2006 The Chemistry Development Kit (CDK) project + * + * Contact: cdk...@li... + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.cdk.qsar.descriptors.molecular; + +import org.openscience.cdk.exception.CDKException; +import org.openscience.cdk.interfaces.IAtomContainer; +import org.openscience.cdk.qsar.DescriptorSpecification; +import org.openscience.cdk.qsar.DescriptorValue; +import org.openscience.cdk.qsar.IMolecularDescriptor; +import org.openscience.cdk.qsar.result.IntegerResult; + +/** + * IDescriptor based on the number of atoms of a certain element type. + * + * It is + * possible to use the wild card symbol '*' as element type to get the count of + * all atoms. + * <p>This descriptor uses these parameters: + * <table border="1"> + * <tr> + * <td>Name</td> + * <td>Default</td> + * <td>Description</td> + * </tr> + * <tr> + * <td>elementName</td> + * <td>*</td> + * <td>Symbol of the element we want to count</td> + * </tr> + * </table> + * + * + * @author mfe4 + * @cdk.created 2004-11-13 + * @cdk.module qsar + * @cdk.set qsar-descriptors + * @cdk.dictref qsar-descriptors:atomCount + */ +public class AtomCountDescriptor implements IMolecularDescriptor { + + private String elementName = "*"; + + + /** + * Constructor for the AtomCountDescriptor object. + */ + public AtomCountDescriptor() { + elementName = "*"; + } + + /** + * Returns a <code>Map</code> which specifies which descriptor + * is implemented by this class. + * + * These fields are used in the map: + * <ul> + * <li>Specification-Reference: refers to an entry in a unique dictionary + * <li>Implementation-Title: anything + * <li>Implementation-Identifier: a unique identifier for this version of + * this class + * <li>Implementation-Vendor: CDK, JOELib, or anything else + * </ul> + * + * @return An object containing the descriptor specification + */ + public DescriptorSpecification getSpecification() { + return new DescriptorSpecification( + "http://www.blueobelisk.org/ontologies/chemoinformatics-algorithms/#atomCount", + this.getClass().getName(), + "$Id$", + "The Chemistry Development Kit"); + }; + + /** + * Sets the parameters attribute of the AtomCountDescriptor object. + * + *@param params The new parameters value + *@throws CDKException if the number of parameters is greater than 1 + *or else the parameter is not of type String + *@see #getParameters + */ + public void setParameters(Object[] params) throws CDKException { + if (params.length > 1) { + throw new CDKException("AtomCount only expects one parameter"); + } + if (!(params[0] instanceof String)) { + throw new CDKException("The parameter must be of type String"); + } + // ok, all should be fine + elementName = (String) params[0]; + } + + + /** + * Gets the parameters attribute of the AtomCountDescriptor object. + * + *@return The parameters value + *@see #setParameters + */ + public Object[] getParameters() { + // return the parameters as used for the descriptor calculation + Object[] params = new Object[1]; + params[0] = elementName; + return params; + } + + + /** + * This method calculate the number of atoms of a given type in an {@link IAtomContainer}. + * + *@param container The atom container for which this descriptor is to be calculated + *@return Number of atoms of a certain type is returned. + *@throws CDKException currently nothing will cause an exception to be thrown + */ + + // it could be interesting to accept as elementName a SMARTS atom, to get the frequency of this atom + // this could be useful for other descriptors like polar surface area... + public DescriptorValue calculate(IAtomContainer container) throws CDKException { + int atomCount = 0; + + if (container == null) throw new CDKException("The supplied AtomContainer was NULL"); + + org.openscience.cdk.interfaces.IAtom[] atoms = container.getAtoms(); + + if (atoms == null) throw new CDKException("There were no atoms in the supplied AtomContainer"); + + if (elementName.equals("*")) { + for (int i = 0; i < atoms.length; i++) { + atomCount += container.getAtomAt(i).getHydrogenCount(); + } + atomCount += atoms.length; + } + else if (elementName.equals("H")) { + for (int i = 0; i < atoms.length; i++) { + if (container.getAtomAt(i).getSymbol().equals(elementName)) { + atomCount += 1; + } + else { + atomCount += container.getAtomAt(i).getHydrogenCount(); + } + } + } + else { + for (int i = 0; i < atoms.length; i++) { + if (container.getAtomAt(i).getSymbol().equals(elementName)) { + atomCount += 1; + } + } + } + return new DescriptorValue(getSpecification(), getParameterNames(), getParameters(), new IntegerResult(atomCount)); + } + + + /** + * Gets the parameterNames attribute of the AtomCountDescriptor object. + * + *@return The parameterNames value + */ + public String[] getParameterNames() { + String[] params = new String[1]; + params[0] = "elementName"; + return params; + } + + + /** + * Gets the parameterType attribute of the AtomCountDescriptor object. + * + *@param name Description of the Parameter + *@return An Object whose class is that of the parameter requested + */ + public Object getParameterType(String name) { + return ""; + } +} + Property changes on: trunk/cdk/src/org/openscience/cdk/qsar/descriptors/molecular/AtomCountDescriptor.java ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Deleted: trunk/cdk/src/org/openscience/cdk/test/qsar/descriptors/atomic/AtomCountDescriptorTest.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/test/qsar/descriptors/atomic/AtomCountDescriptorTest.java 2006-07-05 18:36:30 UTC (rev 6598) +++ trunk/cdk/src/org/openscience/cdk/test/qsar/descriptors/atomic/AtomCountDescriptorTest.java 2006-07-05 18:48:59 UTC (rev 6599) @@ -1,59 +0,0 @@ -/* $RCSfile$ - * $Author$ - * $Date$ - * $Revision$ - * - * Copyright (C) 2004-2006 The Chemistry Development Kit (CDK) project - * - * Contact: cdk...@li... - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - */ -package org.openscience.cdk.test.qsar.descriptors.atomic; - -import junit.framework.Test; -import junit.framework.TestSuite; -import org.openscience.cdk.AtomContainer; -import org.openscience.cdk.exception.CDKException; -import org.openscience.cdk.qsar.IMolecularDescriptor; -import org.openscience.cdk.qsar.descriptors.atomic.AtomCountDescriptor; -import org.openscience.cdk.qsar.result.IntegerResult; -import org.openscience.cdk.smiles.SmilesParser; -import org.openscience.cdk.test.CDKTestCase; - -/** - * TestSuite that runs a test for the AtomCountDescriptor. - * - * @cdk.module test-qsar - */ - -public class AtomCountDescriptorTest extends CDKTestCase { - - public AtomCountDescriptorTest() {} - - public static Test suite() { - return new TestSuite(AtomCountDescriptorTest.class); - } - - public void testCarbonCount() throws ClassNotFoundException, CDKException, java.lang.Exception { - IMolecularDescriptor descriptor = new AtomCountDescriptor(); - Object[] params = {"C"}; - descriptor.setParameters(params); - SmilesParser sp = new SmilesParser(); - AtomContainer mol = sp.parseSmiles("CCO"); // ethanol - assertEquals(2, ((IntegerResult)descriptor.calculate(mol).getValue()).intValue()); - } -} - Copied: trunk/cdk/src/org/openscience/cdk/test/qsar/descriptors/molecular/AtomCountDescriptorTest.java (from rev 6595, trunk/cdk/src/org/openscience/cdk/test/qsar/descriptors/atomic/AtomCountDescriptorTest.java) =================================================================== --- trunk/cdk/src/org/openscience/cdk/test/qsar/descriptors/molecular/AtomCountDescriptorTest.java (rev 0) +++ trunk/cdk/src/org/openscience/cdk/test/qsar/descriptors/molecular/AtomCountDescriptorTest.java 2006-07-05 18:48:59 UTC (rev 6599) @@ -0,0 +1,59 @@ +/* $RCSfile$ + * $Author$ + * $Date$ + * $Revision$ + * + * Copyright (C) 2004-2006 The Chemistry Development Kit (CDK) project + * + * Contact: cdk...@li... + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + */ +package org.openscience.cdk.test.qsar.descriptors.molecular; + +import junit.framework.Test; +import junit.framework.TestSuite; +import org.openscience.cdk.AtomContainer; +import org.openscience.cdk.exception.CDKException; +import org.openscience.cdk.qsar.IMolecularDescriptor; +import org.openscience.cdk.qsar.descriptors.molecular.AtomCountDescriptor; +import org.openscience.cdk.qsar.result.IntegerResult; +import org.openscience.cdk.smiles.SmilesParser; +import org.openscience.cdk.test.CDKTestCase; + +/** + * TestSuite that runs a test for the AtomCountDescriptor. + * + * @cdk.module test-qsar + */ + +public class AtomCountDescriptorTest extends CDKTestCase { + + public AtomCountDescriptorTest() {} + + public static Test suite() { + return new TestSuite(AtomCountDescriptorTest.class); + } + + public void testCarbonCount() throws ClassNotFoundException, CDKException, java.lang.Exception { + IMolecularDescriptor descriptor = new AtomCountDescriptor(); + Object[] params = {"C"}; + descriptor.setParameters(params); + SmilesParser sp = new SmilesParser(); + AtomContainer mol = sp.parseSmiles("CCO"); // ethanol + assertEquals(2, ((IntegerResult)descriptor.calculate(mol).getValue()).intValue()); + } +} + Property changes on: trunk/cdk/src/org/openscience/cdk/test/qsar/descriptors/molecular/AtomCountDescriptorTest.java ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |