Skip to content

Commit

Permalink
more cleaning
Browse files Browse the repository at this point in the history
added examples PDB
improved PDB reading function to read multiple structures is one file (each one with its own connectivity)
  • Loading branch information
abelcarreras committed Apr 15, 2020
1 parent 5dfe900 commit 40020e0
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 26 deletions.
4 changes: 3 additions & 1 deletion cosymlib/file_io/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -400,11 +400,13 @@ def get_geometry_from_file_pdb(file_name, read_multiple=False):
for line in mol_section.split('\n'):
if line.find('TITLE') > -1:
name = ' '.join(line.split()[1:])
if line.find('HETATM') > -1:
if line.find('HETATM') > -1 or line.find('ATOM') > -1:
coordinates.append([float(num) for num in line.split()[4:7]])
symbols.append(line.split()[2])
if line.find('CONECT') > -1:
connect.append([int(num) for num in line.split()[2:]])
if line.find('TER') > -1 or line.find('END') > -1:
break

connectivity = []
for i, atom in enumerate(connect):
Expand Down
15 changes: 14 additions & 1 deletion examples/methane.pdb
Original file line number Diff line number Diff line change
@@ -1,13 +1,26 @@
TITLE Molecule Name
TITLE Methane
REMARK 1 File created by GaussView 5.0.9
HETATM 1 C 0 -0.498 -0.179 0.000 C
HETATM 2 H 0 -0.141 -1.188 0.000 H
HETATM 3 H 0 -0.141 0.325 0.874 H
HETATM 4 H 0 -0.141 0.325 -0.874 H
HETATM 5 H 0 -1.568 -0.179 0.000 H
CONECT 1 2 3 4 5
CONECT 2 1
CONECT 3 1
CONECT 4 1
CONECT 5 1
END
TITLE Methane distorted
REMARK 1 File created by GaussView 5.0.9
HETATM 1 C 0 -0.498 -0.179 0.100 C
HETATM 2 H 0 -0.141 -1.188 0.000 H
HETATM 3 H 0 -0.141 0.325 0.874 H
HETATM 4 H 0 -0.141 0.325 -0.874 H
HETATM 5 H 0 -1.568 -0.179 0.000 H
CONECT 1 2 3 4 5
CONECT 2 1
CONECT 3 1
CONECT 4 1
CONECT 5 1
END
46 changes: 22 additions & 24 deletions examples/python_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,16 @@ def print_csm(data):


# Get structures from files
molecules_set = file_io.get_geometry_from_file_xyz('coord.xyz', read_multiple=True)
fragments_set = file_io.get_geometry_from_file_cor('coord.cor', read_multiple=True)
geometries_list = file_io.get_geometry_from_file_xyz('coord.xyz', read_multiple=True)
fragments_list = file_io.get_geometry_from_file_cor('coord.cor', read_multiple=True)

# Call shape as method of Geometry class
print_shape_data(molecules_set)
print_shape_data(fragments_set)
print_shape_data(geometries_list)
print_shape_data(fragments_list)


# Check multiple calls of shape one calculatioin
methane = molecules_set[0]
methane = geometries_list[0]
for i in range(100):
measure = methane.get_shape_measure('SP-4', central_atom=1)

Expand All @@ -46,8 +46,8 @@ def print_csm(data):
# test symgroup
print('\nSYMMETRY\n--------')

molecule = file_io.get_geometry_from_file_pdb('methane.pdb', read_multiple=False)
print('measure C3: {} '.format(molecule.get_symmetry_measure('c3')))
geometries_list = file_io.get_geometry_from_file_pdb('methane.pdb', read_multiple=True)
print('measure C3: {} '.format(geometries_list[0].get_symmetry_measure('c3')))

# Check multiple calls of symgroup one calculatioin
for i in range(100):
Expand All @@ -65,30 +65,28 @@ def print_csm(data):
print('\nWFNSYM\n--------')


molecule = file_io.get_molecule_from_file_fchk('pirrol.fchk')
molecule = file_io.get_molecule_from_file_fchk('pirrol.fchk', read_multiple=False)

data = molecule.get_wf_symmetry('C2v',
axis=[0.000000, 0.000000, 1.000000], # valor defecte
# vector_axis2=[-2.027247, 0.000133, -0.898469],
center=[0.002440, -0.000122, 0.017307]
) # valor per defecte (CM)

print_csm(data)
measure_dict = molecule.get_wf_symmetry('C2v',
axis=[0.000000, 0.000000, 1.000000], # valor defecte
# vector_axis2=[-2.027247, 0.000133, -0.898469],
center=[0.002440, -0.000122, 0.017307])
print_csm(measure_dict)

print('\nCOSYMLIB\n--------')
molecules_set = file_io.get_geometry_from_file_xyz('coord_2.xyz', read_multiple=True)
molecules_group = Cosymlib(molecules_set)
geometries_list = file_io.get_geometry_from_file_xyz('coord_2.xyz', read_multiple=True)
molecules_set = Cosymlib(geometries_list)
print('\n\n***********{}************'.format('print_electronic_symmetry_measure()'))
molecules_group.print_electronic_symmetry_measure('C2v', axis=[0, 0, 1], center=[0.0, 0.0, 0.0])
molecules_set.print_electronic_symmetry_measure('C2v', axis=[0, 0, 1], center=[0.0, 0.0, 0.0])


molecules_set = file_io.read_generic_structure_file('pirrol.fchk', read_multiple=True)
molecules_group = Cosymlib(molecules_set)
molecules_list = file_io.read_generic_structure_file('pirrol.fchk', read_multiple=True)
molecules_set = Cosymlib(molecules_list)
print('\n\n***********{}************'.format('print_info()'))
molecules_group.print_info()
molecules_set.print_info()
print('\n\n***********{}************'.format('print_wnfsym_irreducible_repr()'))
molecules_group.print_wnfsym_irreducible_repr('C2v', axis=[0, 0, 1], center=[0.0, 0.0, 0.0])
molecules_set.print_wnfsym_irreducible_repr('C2v', axis=[0, 0, 1], center=[0.0, 0.0, 0.0])
print('\n\n***********{}************'.format('print_wnfsym_sym_ovelap()'))
molecules_group.print_wnfsym_sym_ovelap('C2v', axis=[0, 0, 1], center=[0.0, 0.0, 0.0])
molecules_set.print_wnfsym_sym_ovelap('C2v', axis=[0, 0, 1], center=[0.0, 0.0, 0.0])
print('\n\n***********{}************'.format('print_wnfsym_sym_matrices()'))
molecules_group.print_wnfsym_sym_matrices('C2v', axis=[0, 0, 1], center=[0.0, 0.0, 0.0])
molecules_set.print_wnfsym_sym_matrices('C2v', axis=[0, 0, 1], center=[0.0, 0.0, 0.0])

0 comments on commit 40020e0

Please sign in to comment.