Unverified Commit e0537202 authored by Daiki Nishikawa's avatar Daiki Nishikawa Committed by GitHub
Browse files

Merge pull request #2089 from nd-02110114/cgcnn-impl

CGCNN implementation
parents 510b9bf1 efea464e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ import time
import logging
import warnings
from typing import List, Optional, Tuple, Any, Sequence, Union, Iterator

import pandas as pd
import numpy as np

@@ -628,7 +629,7 @@ class JsonLoader(DataLoader):
                    (shard_num, time2 - time1))
        yield X, y, w, ids

    return DiskDataset.create_dataset(shard_generator(), data_dir)
    return DiskDataset.create_dataset(shard_generator(), data_dir, self.tasks)

  def _get_shards(self, input_files: List[str],
                  shard_size: Optional[int]) -> Iterator[pd.DataFrame]:
+11 −8
Original line number Diff line number Diff line
@@ -4,7 +4,9 @@ Feature calculations.
import logging
import numpy as np
import multiprocessing
from typing import Any, Dict, List, Iterable, Sequence, Tuple
from typing import Any, Dict, List, Iterable, Sequence, Tuple, Union

from deepchem.utils.typing import PymatgenStructure

logger = logging.getLogger(__name__)

@@ -233,16 +235,16 @@ class MaterialStructureFeaturizer(Featurizer):
  """

  def featurize(self,
                structures: Iterable[Dict[str, Any]],
                structures: Iterable[Union[Dict[str, Any], PymatgenStructure]],
                log_every_n: int = 1000) -> np.ndarray:
    """Calculate features for crystal structures.

    Parameters
    ----------
    structures: Iterable[Dict[str, Any]]
      Iterable sequence of pymatgen structure dictionaries.
      Dictionary representations of pymatgen.Structure
      https://pymatgen.org/pymatgen.core.structure.html
    structures: Iterable[Union[Dict, pymatgen.Structure]]
      Iterable sequence of pymatgen structure dictionaries
      or pymatgen.Structure. Please confirm the dictionary representations
      of pymatgen.Structure from https://pymatgen.org/pymatgen.core.structure.html.
    log_every_n: int, default 1000
      Logging messages reported every `log_every_n` samples.

@@ -263,8 +265,9 @@ class MaterialStructureFeaturizer(Featurizer):
      if idx % log_every_n == 0:
        logger.info("Featurizing datapoint %i" % idx)
      try:
        s = Structure.from_dict(structure)
        features.append(self._featurize(s))
        if isinstance(structure, Dict):
          structure = Structure.from_dict(structure)
        features.append(self._featurize(structure))
      except:
        logger.warning(
            "Failed to featurize datapoint %i. Appending empty array" % idx)
+3 −0
Original line number Diff line number Diff line
@@ -39,6 +39,9 @@ class CGCNNFeaturizer(MaterialStructureFeaturizer):
  >>> structure = mg.Structure(lattice, ["Cs", "Cl"], [[0, 0, 0], [0.5, 0.5, 0.5]])
  >>> featurizer = CGCNNFeaturizer()
  >>> features = featurizer.featurize([structure])
  >>> feature = features[0]
  >>> print(type(feature))
  <class 'deepchem.feat.graph_data.GraphData'>

  Notes
  -----
+5 −1
Original line number Diff line number Diff line
"""
Gathers all models in one place for convenient imports
"""
# flake8:noqa

from deepchem.models.models import Model
from deepchem.models.keras_model import KerasModel
from deepchem.models.sklearn_models import SklearnModel
@@ -25,8 +27,10 @@ from deepchem.models.text_cnn import TextCNNModel
from deepchem.models.atomic_conv import AtomicConvModel
from deepchem.models.chemnet_models import Smiles2Vec, ChemCeption

# PyTorch models
try:
  from deepchem.models.torch_model import TorchModel
  from deepchem.models.torch_models import TorchModel
  from deepchem.models.torch_models import CGCNN, CGCNNModel
except ModuleNotFoundError:
  pass

+16.5 KiB

File added.

No diff preview for this file type.

Loading