Commit c94d9653 authored by nd-02110114's avatar nd-02110114
Browse files

🔥 remove MolecularWeight featurizer

parent fea42a67
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ from deepchem.feat.base_classes import UserDefinedFeaturizer
from deepchem.feat.graph_features import ConvMolFeaturizer
from deepchem.feat.graph_features import WeaveFeaturizer
from deepchem.feat.fingerprints import CircularFingerprint
from deepchem.feat.basic import RDKitDescriptors
from deepchem.feat.rdkit_descriptors import RDKitDescriptors
from deepchem.feat.coulomb_matrices import CoulombMatrix
from deepchem.feat.coulomb_matrices import CoulombMatrixEig
from deepchem.feat.coulomb_matrices import BPSymmetryFunctionInput
+0 −30
Original line number Diff line number Diff line
@@ -6,36 +6,6 @@ import numpy as np
from deepchem.feat.base_classes import MolecularFeaturizer


class MolecularWeight(MolecularFeaturizer):
  """Molecular weight.

  Note
  ----
  This class requires RDKit to be installed.
  """

  def _featurize(self, mol):
    """
    Calculate molecular weight.

    Parameters
    ----------
    mol : RDKit Mol
        Molecule.

    Returns
    -------
    np.ndarray of length 1 containing the molecular weight.
    """
    try:
      from rdkit.Chem import Descriptors
    except ModuleNotFoundError:
      raise ValueError("This class requires RDKit to be installed.")
    wt = Descriptors.ExactMolWt(mol)
    wt = [wt]
    return np.asarray(wt)


class RDKitDescriptors(MolecularFeaturizer):
  """RDKit descriptors.

+0 −69
Original line number Diff line number Diff line
"""
Test featurizer class.
"""
import unittest

from deepchem.feat import ConvMolFeaturizer, CircularFingerprint
from deepchem.feat.basic import MolecularWeight


class TestFeaturizer(unittest.TestCase):
  """
  Tests for Featurizer.
  """

  def setUp(self):
    """
    Set up tests.
    """
    smiles = 'CC(=O)OC1=CC=CC=C1C(=O)O'
    from rdkit import Chem
    self.mol = Chem.MolFromSmiles(smiles)

  def test_featurizer(self):
    """
    Test basic functionality of Featurizer.
    """
    f = MolecularWeight()
    rval = f([self.mol])
    assert rval.shape == (1, 1)

  def test_flatten_conformers(self):
    """
    Calculate molecule-level features for a multiconformer molecule.
    """
    f = MolecularWeight()
    rval = f([self.mol])
    assert rval.shape == (1, 1)

  def test_convmol_hashable(self):
    featurizer1 = ConvMolFeaturizer(atom_properties=['feature'])
    featurizer2 = ConvMolFeaturizer(atom_properties=['feature'])
    featurizer3 = ConvMolFeaturizer()

    d = set()
    d.add(featurizer1)
    d.add(featurizer2)
    d.add(featurizer3)

    self.assertEqual(2, len(d))
    featurizers = [featurizer1, featurizer2, featurizer3]

    for featurizer in featurizers:
      self.assertTrue(featurizer in featurizers)

  def test_circularfingerprint_hashable(self):
    featurizer1 = CircularFingerprint()
    featurizer2 = CircularFingerprint()
    featurizer3 = CircularFingerprint(size=5)

    d = set()
    d.add(featurizer1)
    d.add(featurizer2)
    d.add(featurizer3)

    self.assertEqual(2, len(d))
    featurizers = [featurizer1, featurizer2, featurizer3]

    for featurizer in featurizers:
      self.assertTrue(featurizer in featurizers)
+1 −34
Original line number Diff line number Diff line
@@ -4,40 +4,7 @@ Test basic molecular features.
import numpy as np
import unittest

from deepchem.feat.basic import MolecularWeight, RDKitDescriptors


class TestMolecularWeight(unittest.TestCase):
  """
  Test MolecularWeight.
  """

  def setUp(self):
    """
    Set up tests.
    """
    smiles = 'CC(=O)OC1=CC=CC=C1C(=O)O'
    from rdkit import Chem
    self.mol = Chem.MolFromSmiles(smiles)
    self.engine = MolecularWeight()

  def testMW(self):
    """
    Test MW.
    """
    assert np.allclose(self.engine([self.mol]), 180, atol=0.1)

  def test_MW_on_smiles(self):
    """
    Test MW invocation on smiles."
    """
    assert np.allclose(self.engine('CC(=O)OC1=CC=CC=C1C(=O)O'), 180, atol=0.1)

  def test_MW_on_mol(self):
    """
    Test MW invocation on RDKit mol."
    """
    assert np.allclose(self.engine(self.mol), 180, atol=0.1)
from deepchem.feat.basic import RDKitDescriptors


class TestRDKitDescriptors(unittest.TestCase):