Пример #1
0
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)
Пример #2
0
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
Пример #3
0
 def test_guess_atom_element_1H(self):
     assert guessers.guess_atom_element('1H') == 'H'
     assert guessers.guess_atom_element('2H') == 'H'
Пример #4
0
 def test_guess_atom_element_singledigit(self):
     assert guessers.guess_atom_element('1') == '1'
Пример #5
0
 def test_guess_atom_element_empty(self):
     assert guessers.guess_atom_element('') == ''
Пример #6
0
 def test_guess_atom_element(self):
     assert guessers.guess_atom_element('MG2+') == 'MG'
Пример #7
0
 def test_guess_element_from_name(self, name, element):
     assert guessers.guess_atom_element(name) == element
Пример #8
0
 def test_guess_atom_element_empty():
     assert_(guessers.guess_atom_element('') == '')
Пример #9
0
 def test_guess_atom_element_1H():
     assert_(guessers.guess_atom_element('1H') == 'H')
     assert_(guessers.guess_atom_element('2H') == 'H')
Пример #10
0
 def test_guess_atom_element():
     assert_(guessers.guess_atom_element('MG2+') == 'MG')
Пример #11
0
 def test_guess_atom_element_1H(self):
     assert guessers.guess_atom_element('1H') == 'H'
     assert guessers.guess_atom_element('2H') == 'H'
Пример #12
0
 def test_guess_atom_element_singledigit(self):
     assert guessers.guess_atom_element('1') == '1'
Пример #13
0
 def test_guess_atom_element_empty(self):
     assert guessers.guess_atom_element('') == ''
Пример #14
0
 def test_guess_atom_element(self):
     assert guessers.guess_atom_element('MG2+') == 'MG'