Skip to content

Commit af2706e

Browse files
committed
make mgm deps actually optional and remove some extraneous deps
1 parent 02e1334 commit af2706e

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

requirements.in

+1-4
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,8 @@ datasets
1616
tokenizers
1717
transformers>=4.24.0
1818
scikit-learn
19-
matplotlib
20-
seaborn
2119
python-dotenv
2220
torcheval
23-
fastparquet
2421
datasketch
2522
peft
2623
icecream
@@ -29,5 +26,5 @@ pooch
2926
edlib
3027
onnx
3128
onnxscript
32-
beignet[all]
29+
beignet[datasets]
3330
fair-esm

src/lobster/transforms/_convert_seqs.py

+17-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
1+
from importlib.util import find_spec
12
from typing import Callable, Dict, Optional
23

3-
import selfies as sf
4-
from rdkit import Chem
4+
_SELFIES_AVAILABLE = False
5+
_RDKIT_AVAILABLE = False
6+
7+
if find_spec("selfies"):
8+
import selfies as sf
9+
_SELFIES_AVAILABLE = True
10+
11+
if find_spec("rdkit"):
12+
from rdkit import Chem
13+
_RDKIT_AVAILABLE = True
514

615

716
def convert_nt_to_aa(
@@ -51,6 +60,8 @@ def convert_aa_to_nt(
5160

5261

5362
def convert_aa_to_smiles(aa_seq: str, allowed_aa: set) -> Optional[str]:
63+
assert _RDKIT_AVAILABLE, "rdkit not available. This dependency is part of the mgm extra"
64+
5465
if not aa_seq.isupper():
5566
aa_seq = aa_seq.upper()
5667

@@ -69,6 +80,8 @@ def convert_aa_to_smiles(aa_seq: str, allowed_aa: set) -> Optional[str]:
6980
def convert_smiles_to_aa(
7081
smiles_seq: str,
7182
) -> Optional[str]:
83+
assert _RDKIT_AVAILABLE, "rdkit not available. This dependency is part of the mgm extra"
84+
7285
try:
7386
mol = Chem.MolFromSmiles(smiles_seq)
7487
aa_seq = Chem.MolToSequence(mol)
@@ -81,6 +94,7 @@ def convert_smiles_to_aa(
8194
def convert_smiles_to_selfies(
8295
smiles_seq: str,
8396
) -> Optional[str]:
97+
assert _SELFIES_AVAILABLE, "selfies not available. This dependency is part of the mgm extra"
8498
try:
8599
sf_seq = sf.encoder(smiles_seq)
86100
return sf_seq
@@ -92,6 +106,7 @@ def convert_selfies_to_smiles(
92106
selfies_seq: str,
93107
) -> Optional[str]:
94108
# TODO: add conversion of unknown selfies tokens to Ala selfies
109+
assert _SELFIES_AVAILABLE, "selfies not available. This dependency is part of the mgm extra"
95110
try:
96111
smiles_seq = sf.decoder(selfies_seq)
97112
return smiles_seq

0 commit comments

Comments
 (0)