|
a |
|
b/tests/utils.py |
|
|
1 |
"""Common utils for testing purposes""" |
|
|
2 |
from random import shuffle |
|
|
3 |
|
|
|
4 |
import oddt |
|
|
5 |
from oddt.utils import is_openbabel_molecule |
|
|
6 |
|
|
|
7 |
|
|
|
8 |
def shuffle_mol(mol): |
|
|
9 |
"""Randomly reorder molecule atoms and return a shuffled copy of input.""" |
|
|
10 |
new_mol = mol.clone |
|
|
11 |
new_order = list(range(len(mol.atoms))) |
|
|
12 |
shuffle(new_order) |
|
|
13 |
if is_openbabel_molecule(mol): |
|
|
14 |
new_mol.OBMol.RenumberAtoms([i + 1 for i in new_order]) |
|
|
15 |
else: |
|
|
16 |
new_mol.Mol = oddt.toolkits.rdk.Chem.RenumberAtoms(new_mol.Mol, new_order) |
|
|
17 |
return new_mol |