Esempio n. 1
0
 def test_mask_species_blacklist(self):
     mask_center_atoms_by_species(self.frame, species_blacklist=["C", "H"])
     test_mask = np.array([1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0], dtype="bool")
     self.check_mask(test_mask)
     mask_center_atoms_by_species(self.frame, species_blacklist=["N"])
     test_mask[[0, 2, 4, 6]] = False
     self.check_mask(test_mask)
     mask_center_atoms_by_species(self.frame, species_select=["H"])
     test_mask[[9, 10]] = True
     self.check_mask(test_mask)
Esempio n. 2
0
 def test_mask_species_blacklist(self):
     mask_center_atoms_by_species(self.frame, species_blacklist=['C', 'H'])
     test_mask = np.array([1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0], dtype='bool')
     self.check_mask(test_mask)
     mask_center_atoms_by_species(self.frame, species_blacklist=['N'])
     test_mask[[0, 2, 4, 6]] = False
     self.check_mask(test_mask)
     mask_center_atoms_by_species(self.frame, species_select=['H'])
     test_mask[[9, 10]] = True
     self.check_mask(test_mask)
Esempio n. 3
0
 def test_mask_species_numeric_combined(self):
     mask_center_atoms_by_species(self.frame,
                                  species_select=["C", "N"],
                                  species_blacklist=[7, 1])
     test_mask = np.array([0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0], dtype="bool")
     self.check_mask(test_mask)
     # And check that mixed symbol-numeric lists are disallowed
     with self.assertRaises(ValueError):
         mask_center_atoms_by_species(self.frame, species_select=["C", 1])
     with self.assertRaises(ValueError):
         mask_center_atoms_by_species(self.frame,
                                      species_blacklist=["C", 1])
import numpy as np

from rascal.representations import SphericalInvariants
from rascal.neighbourlist.structure_manager import (
    mask_center_atoms_by_species, mask_center_atoms_by_id)

molecules = ase.io.read('data/small_molecules-1000.xyz', ':100')
n_centers = sum(mol.get_number_of_atoms() for mol in molecules)
n_carbon_centers = sum(
    np.sum(mol.get_atomic_numbers() == 6) for mol in molecules)
print("{:d} molecules, {:d} centres total, {:d} carbon centres".format(
    len(molecules), n_centers, n_carbon_centers))

for molecule in molecules:
    mask_center_atoms_by_species(molecule, species_select=[
        'C',
    ])
    # Also works by atomic number
    #mask_center_atoms_by_species(molecule, species_select=[6,])

hypers = {
    'interaction_cutoff': 5.0,
    'cutoff_smooth_width': 0.5,
    'max_radial': 8,
    'max_angular': 6,
    'gaussian_sigma_type': "Constant",
    'gaussian_sigma_constant': 0.3
}

representation = SphericalInvariants(**hypers)
atoms_transformed = representation.transform(molecules)
Esempio n. 5
0
 def test_mask_species_and_id(self):
     mask_center_atoms_by_species(self.frame, species_select=["C"])
     mask_center_atoms_by_id(self.frame, id_blacklist=np.arange(3))
     test_mask = np.zeros((self.natoms, ), dtype="bool")
     test_mask[3] = True
     self.check_mask(test_mask)
Esempio n. 6
0
 def test_mask_species_numeric(self):
     # Can also select by atomic number
     mask_center_atoms_by_species(self.frame, species_select=[1, 6])
     test_mask = np.array([0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1], dtype="bool")
     self.check_mask(test_mask)
Esempio n. 7
0
 def test_mask_species_both(self):
     mask_center_atoms_by_species(self.frame,
                                  species_select=["C", "N"],
                                  species_blacklist=["N", "H"])
     test_mask = np.array([0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0], dtype="bool")
     self.check_mask(test_mask)
Esempio n. 8
0
 def test_mask_species_both(self):
     mask_center_atoms_by_species(self.frame,
                                  species_select=['C', 'N'],
                                  species_blacklist=['N', 'H'])
     test_mask = np.array([0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0], dtype='bool')
     self.check_mask(test_mask)
Esempio n. 9
0
    mask_center_atoms_by_species,
    mask_center_atoms_by_id,
)

molecules = ase.io.read("../reference_data/inputs/small_molecules-1000.xyz",
                        ":100")
n_centers = sum(mol.get_number_of_atoms() for mol in molecules)
n_carbon_centers = sum(
    np.sum(mol.get_atomic_numbers() == 6) for mol in molecules)
print("{:d} molecules, {:d} centres total, {:d} carbon centres".format(
    len(molecules), n_centers, n_carbon_centers))

for molecule in molecules:
    mask_center_atoms_by_species(
        molecule,
        species_select=[
            "C",
        ],
    )
    # Also works by atomic number
    # mask_center_atoms_by_species(molecule, species_select=[6,])

hypers = {
    "interaction_cutoff": 5.0,
    "cutoff_smooth_width": 0.5,
    "max_radial": 8,
    "max_angular": 6,
    "gaussian_sigma_type": "Constant",
    "gaussian_sigma_constant": 0.3,
}

representation = SphericalInvariants(**hypers)