def from_mol2(f): path = str(datapath / f) u = Universe(path) elements = [guess_atom_element(n) for n in u.atoms.names] u.add_TopologyAttr("elements", np.array(elements, dtype=object)) u.atoms.types = np.array([x.upper() for x in u.atoms.types], dtype=object) return Molecule.from_mda(u, force=True)
def get_topology_cmip_elements_canonical(input_topology_filename: str) -> List: """ This function also accepts pdb files Args: input_topology_filename: Returns: """ # Remove forcefield itp references from top file. if input_topology_filename.lower().endswith('.top'): with open(input_topology_filename) as tf: top_lines = tf.readlines() top_file = create_unique_file_path( parent_dir=Path(input_topology_filename).parent.resolve(), extension='.top') with open(top_file, 'w') as nt: for line in top_lines: if re.search(r"\.ff.*\.itp", line): continue nt.write(line) u = mda.Universe(top_file, topology_format="ITP") else: u = mda.Universe(input_topology_filename) # mda_charges = [round(val, 4) for val in u.atoms.charges] # mda_atom_types = list(guess_types(u.atoms.names)) mda_atom_types = [] for atom in u.atoms: atom_element = guess_atom_element(atom.name) if atom_element == 'H': bonded_atom_element = guess_atom_element(atom.bonded_atoms[0].name) if bonded_atom_element == 'O': atom_element = 'HO' elif bonded_atom_element in ['N', 'S']: atom_element = 'HN' mda_atom_types.append(atom_element) return mda_atom_types
def test_guess_atom_element_1H(self): assert guessers.guess_atom_element('1H') == 'H' assert guessers.guess_atom_element('2H') == 'H'
def test_guess_atom_element_singledigit(self): assert guessers.guess_atom_element('1') == '1'
def test_guess_atom_element_empty(self): assert guessers.guess_atom_element('') == ''
def test_guess_atom_element(self): assert guessers.guess_atom_element('MG2+') == 'MG'
def test_guess_element_from_name(self, name, element): assert guessers.guess_atom_element(name) == element
def test_guess_atom_element_empty(): assert_(guessers.guess_atom_element('') == '')
def test_guess_atom_element_1H(): assert_(guessers.guess_atom_element('1H') == 'H') assert_(guessers.guess_atom_element('2H') == 'H')
def test_guess_atom_element(): assert_(guessers.guess_atom_element('MG2+') == 'MG')
def test_guess_atom_element_1H(self): assert guessers.guess_atom_element('1H') == 'H' assert guessers.guess_atom_element('2H') == 'H'
def test_guess_atom_element_singledigit(self): assert guessers.guess_atom_element('1') == '1'
def test_guess_atom_element_empty(self): assert guessers.guess_atom_element('') == ''
def test_guess_atom_element(self): assert guessers.guess_atom_element('MG2+') == 'MG'