Commit ff1b21f3 authored by arunppsg's avatar arunppsg
Browse files

updated docs

parent a650b1d0
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -131,19 +131,22 @@ class AtomicConformationFeaturizer(Featurizer):
  >>> import deepchem as dc
  >>> smiles = ['CCC']
  >>> featurizer = dc.feat.AtomicConformationFeaturizer()
  >>> features = featurizer.featurize()
  >>> features = featurizer.featurize(smiles)
  >>> features[0].num_atoms
  11
  >>> sum(features[0].atomic_number == 6)
  3
  >>> sum(features[0].atmoic_number == 1)
  >>> sum(features[0].atomic_number == 1)
  8
  >>> features[0].formal_charge
  array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32)
  >>> features[0].partial_charge
  array([-0.06564544, -0.06564544, -0.05903836,  0.02302528,  0.02302528,
        0.02302528,  0.02302528,  0.02302528,  0.02302528,  0.0260888 ,
        0.0260888 ], dtype=float32)
  >>> type(features[0].formal_charge)
  <class 'numpy.ndarray'>
  >>> features[0].formal_charge.shape
  (11,)
  >>> type(features[0].partial_charge)
  <class 'numpy.ndarray'>
  >>> features[0].partial_charge.shape
  (11,)

  """

  def _featurize(self, datapoint: str) -> AtomicConformation:
+52 −20
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ def one_of_k_encoding_unk(x, allowable_set):
  --------
  >>> dc.feat.graph_features.one_of_k_encoding_unk("s", ["a", "b", "c"])
  [False, False, True]

  """
  if x not in allowable_set:
    x = allowable_set[-1]
@@ -78,6 +79,7 @@ def get_intervals(l):

  >>> dc.feat.graph_features.get_intervals([[1], [], [1, 2], [1, 2, 3]])
  [1, 1, 3, 12]

  """
  intervals = len(l) * [0]
  # Initalize with 1
@@ -104,6 +106,7 @@ def safe_index(l, e):
  0
  >>> dc.feat.graph_features.safe_index([1, 2, 3], 7)
  3

  """
  try:
    return l.index(e)
@@ -157,8 +160,11 @@ def get_feature_list(atom):
  >>> from rdkit import Chem
  >>> mol = Chem.MolFromSmiles("C")
  >>> atom = mol.GetAtoms()[0]
  >>> dc.feat.graph_features.get_feature_list(atom)
  [0, 4, 4, 3, 0, 2]
  >>> features = dc.feat.graph_features.get_feature_list(atom)
  >>> type(features)
  <class 'list'>
  >>> len(features)
  6

  Note
  ----
@@ -290,6 +296,11 @@ def atom_features(atom,
  use_chirality: bool, optional
    If true, use chirality information.

  Returns
  -------
  features: np.ndarray 
    An array of per-atom features.

  Examples
  --------
  >>> from rdkit import Chem
@@ -297,13 +308,10 @@ def atom_features(atom,
  >>> atom = mol.GetAtoms()[0]
  >>> features = dc.feat.graph_features.atom_features(atom)
  >>> type(features)
  numpy.ndarray
  <class 'numpy.ndarray'>
  >>> features.shape
  (75,)

  Returns
  -------
  np.ndarray of per-atom features.
  """
  if bool_id_feat:
    return np.array([atom_to_id(atom)])
@@ -394,24 +402,31 @@ def bond_features(bond, use_chirality=False):
  use_chirality: bool, optional
    If true, use chirality information.
  
  Note
  ----
  This method requires RDKit to be installed.

  Returns
  -------
  bond_feats: np.ndarray
    Array of bond features. This is a 1-D array of length 6 if `use_chirality`
    is `False` else of length 10 with chirality encoded.

  Examples
  --------
  >>> from rdkit import Chem
  >>> mol = Chem.MolFromSmiles('CCC')
  >>> bond = mol.GetBonds()[0]
  >>> bond_features = dc.feat.graph_features.bond_features(bond)
  >>> bond_features
  array([ True, False, False, False, False, False])
  >>> type(bond_features)
  <class 'numpy.ndarray'>
  >>> bond_features.shape
  (6,)

  Note
  ----
  This method requires RDKit to be installed.

  Returns
  -------
  bond_feats: np.ndarray
    Array of bond features. This is a 1-D array of length 6 if `use_chirality`
    is `False` else of length 10 with chirality encoded.
  """
  try:
    from rdkit import Chem
@@ -430,8 +445,8 @@ def bond_features(bond, use_chirality=False):
  return np.array(bond_feats)


def max_pair_distance_pairs(mol: RDKitMol,
                            max_pair_distance: Optional[int] = None) -> np.ndarray:
def max_pair_distance_pairs(
    mol: RDKitMol, max_pair_distance: Optional[int] = None) -> np.ndarray:
  """Helper method which finds atom pairs within max_pair_distance graph distance.

  This helper method is used to find atoms which are within max_pair_distance
@@ -462,9 +477,11 @@ def max_pair_distance_pairs(mol: RDKitMol,
  --------
  >>> from rdkit import Chem
  >>> mol = Chem.MolFromSmiles('CCC')
  >>> dc.feat.graph_features.max_pair_distance_pairs(mol, 1)
  array([[0, 0, 1, 1, 1, 2, 2],
       [0, 1, 0, 1, 2, 1, 2]])
  >>> features = dc.feat.graph_features.max_pair_distance_pairs(mol, 1)
  >>> type(features)
  <class 'numpy.ndarray'>
  >>> features.shape  # (2, num_pairs)
  (2, 7)

  Returns
  -------
@@ -893,9 +910,24 @@ class WeaveFeaturizer(MolecularFeaturizer):
  Examples
  --------
  >>> import deepchem as dc
  >>> mols = ["C", "CCC"]
  >>> mols = ["CCC"]
  >>> featurizer = dc.feat.WeaveFeaturizer()
  >>> X = featurizer.featurize(mols)
  >>> features = featurizer.featurize(mols)
  >>> type(features[0])
  <class 'deepchem.feat.mol_graphs.WeaveMol'>
  >>> features[0].get_num_atoms() # 3 atoms in compound
  3
  >>> features[0].get_num_features() # feature size
  75
  >>> type(features[0].get_atom_features())
  <class 'numpy.ndarray'>
  >>> features[0].get_atom_features().shape
  (3, 75)
  >>> type(features[0].get_pair_features())
  <class 'numpy.ndarray'>
  >>> features[0].get_pair_features().shape
  (9, 14)


  References
  ----------
+16 −0
Original line number Diff line number Diff line
@@ -10,6 +10,22 @@ from deepchem.utils.typing import RDKitMol
class AtomicCoordinates(MolecularFeaturizer):
  """Calculate atomic coordinates.

  Examples
  --------
  >>> import deepchem as dc
  >>> from rdkit import Chem
  >>> mol = Chem.MolFromSmiles('C1C=CC=CC=1')
  >>> n_atoms = len(mol.GetAtoms())
  >>> n_atoms
  6
  >>> featurizer = dc.feat.AtomicCoordinates(use_bohr=False)
  >>> features = featurizer.featurize([mol])
  >>> type(features[0])
  <class 'numpy.ndarray'>
  >>> features[0].shape # (n_atoms, 3)
  (6, 3)


  Note
  ----
  This class requires RDKit to be installed.
+12 −1
Original line number Diff line number Diff line
@@ -9,7 +9,18 @@ from deepchem.feat.molecule_featurizers.atomic_coordinates import AtomicCoordina
class BPSymmetryFunctionInput(MolecularFeaturizer):
  """Calculate symmetry function for each atom in the molecules

  This method is described in [1]_
  This method is described in [1]_.

  Standalone usage:

  >>> import deepchem as dc
  >>> smiles = ['C1C=CC=CC=1']
  >>> featurizer = dc.feat.BPSymmetryFunctionInput(max_atoms=10)
  >>> features = featurizer.featurize(smiles)
  >>> type(features[0])
  <class 'numpy.ndarray'>
  >>> features[0].shape  # (max_atoms, 4)
  (10, 4)

  References
  ----------
+11 −10
Original line number Diff line number Diff line
@@ -30,22 +30,23 @@ class CircularFingerprint(MolecularFeaturizer):
  --------
  >>> import deepchem as dc
  >>> from rdkit import Chem
  >>> smiles = 'C1=CC=CC=C1'
  >>> mol = Chem.MolFromSmiles(smiles)
  >>> smiles = ['C1=CC=CC=C1']
  
  >>> # Example 1: (size = 2048, radius = 4)
  >>> featurizer = dc.feat.CircularFingerprint(size=2048, radius=4)
  >>> fingerprint = featurizer([mol])
  >>> fingerprint.shape
  (1, 2048)
  >>> features = featurizer.featurize(smiles)
  >>> type(features[0])
  <class 'numpy.ndarray'>
  >>> features[0].shape
  (2048,)

  >>> # Example 2: (size = 2048, radius = 4, sparse = True, smiles = True)
  >>> featurizer = dc.feat.CircularFingerprint(size=2048, radius=8,
  ...                                          sparse=True, smiles=True)
  >>> featurizer([mol])
  array([{98513984: {'smiles': 'ccc', 'count': 6}, 2763854213: {'smiles':
    'ccccc', 'count': 6}, 3218693969: {'smiles': '', 'count': 6}, 3741631696:
    {'smiles': 'c1ccccc1', 'count': 1}}], dtype=object)
  >>> features = featurizer.featurize(smiles)
  >>> type(features[0]) # dict containing fingerprints
  <class 'dict'>

  """

  def __init__(self,
Loading