Skip to content

Commit 1d3c3f1

Browse files
committed
[ADD] option of chirality to npclassifierfp + [FIX] multitask splitter has no option of seed working
1 parent 391dcfe commit 1d3c3f1

5 files changed

Lines changed: 14 additions & 8 deletions

File tree

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[metadata]
22
name = deepmol
3-
version = 1.1.17
3+
version = 1.1.18
44
description = DeepMol: a python-based machine and deep learning framework for drug discovery
55
keywords = machine-learning, deep-learning, cheminformatics, drug-discovery
66
author = DeepMol Team

src/deepmol/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11

2-
__version__ = '1.1.17'
2+
__version__ = '1.1.18'

src/deepmol/compound_featurization/np_classifier_fp.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@
77

88
class NPClassifierFP(MolecularFeaturizer):
99

10-
def __init__(self, radius: int = 2, **kwargs) -> None:
10+
def __init__(self, radius: int = 2, useChirality: bool = False, **kwargs) -> None:
1111
super().__init__(**kwargs)
1212
self.radius = radius
13+
self.useChirality = useChirality
1314
self.feature_names = [f'npclassifier_{i}' for i in range(2048*(self.radius+1))]
1415

1516
def _featurize(self, mol: Mol) -> np.ndarray:
@@ -31,7 +32,7 @@ def _featurize(self, mol: Mol) -> np.ndarray:
3132

3233
mol_bi = {}
3334
for r in range(self.radius+1):
34-
mol_fp = rdMolDescriptors.GetMorganFingerprintAsBitVect(mol, radius=r, bitInfo=mol_bi, nBits = 2048)
35+
mol_fp = rdMolDescriptors.GetMorganFingerprintAsBitVect(mol, radius=r, bitInfo=mol_bi, nBits = 2048, useChirality=self.useChirality)
3536
mol_bi_QC = []
3637
for i in mol_fp.GetOnBits():
3738
num_ = len(mol_bi[i])

src/deepmol/splitters/multitask_splitter.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,21 +44,21 @@ def split(self, dataset: Dataset, frac_train: float = 0.8, frac_valid: float = 0
4444

4545
if seed is not None:
4646
np.random.seed(seed)
47-
47+
4848
if frac_valid == 0:
4949
stratifier = IterativeStratification(n_splits=2, order=1,
50-
sample_distribution_per_fold=[frac_test, frac_train])
50+
sample_distribution_per_fold=[frac_test, frac_train], random_state=seed)
5151
train_indexes, test_indexes = next(stratifier.split(dataset.smiles, dataset.y))
5252

5353
return train_indexes, [], test_indexes
5454
else:
5555
stratifier = IterativeStratification(n_splits=2, order=1, sample_distribution_per_fold=[frac_test,
56-
1 - frac_test])
56+
1 - frac_test], random_state=seed)
5757
train_indexes, test_indexes = next(stratifier.split(dataset.smiles, dataset.y))
5858

5959
new_frac_train = frac_train / (1 - frac_test)
6060
stratifier = IterativeStratification(n_splits=2, order=1,
61-
sample_distribution_per_fold=[1 - new_frac_train, new_frac_train])
61+
sample_distribution_per_fold=[1 - new_frac_train, new_frac_train], random_state=seed)
6262

6363
new_train_indexes, valid_indexes = next(stratifier.split(dataset.smiles[train_indexes],
6464
dataset.y[train_indexes]))

tests/unit_tests/featurizers/test_np_classifier_fp.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,8 @@ def test_featurize(self):
1010
dataset_rows_number = len(self.mock_dataset.mols)
1111
d = NPClassifierFP().featurize(self.mock_dataset)
1212
self.assertEqual(dataset_rows_number, d._X.shape[0])
13+
14+
def test_feature_with_chirality(self):
15+
dataset_rows_number = len(self.mock_dataset.mols)
16+
d = NPClassifierFP(useChirality=True).featurize(self.mock_dataset)
17+
self.assertEqual(dataset_rows_number, d._X.shape[0])

0 commit comments

Comments
 (0)