GlobalChem: Your Chemical Knowledge Graph
  • Welcome to the GlobalChem Documentation!
  • Quick Start
  • Extensions
  • API
    • GlobalChem
    • Graph Algorithm
  • Mother Nature
    • Mother Nature Commands
    • Discord Roles
  • Cheminformatics
    • SMILES Validation
    • Decoding Fingeringprints and SMILES to IUPAC
    • SMILES to PDF And Back
    • Drug Design Filters
    • Deep Layer Scatter
    • Identifier SMARTS
    • Protonating SMILES
    • Sunbursting SMILES
    • Visualizing SMARTS
    • One-Hot Encoding SMILES
    • Principal Component Analysis SMILES
    • GlobalChem Graph to Networkx Graph
    • Amino Acid Sequence to SMILES
    • Scaffold Graph Adapter
  • Bioinformatics
    • GlobalChem Protein
    • GlobalChem RNA
    • GlobalChem DNA
    • GlobalChem Bacteria
    • GlobalChem Monoclonal Antibody
  • Quantum Chemistry
    • Z-Matrix Store
    • Psi4Parser & Orbital Visualizer
  • ForceFields
    • GlobalChem Molecule
    • CGenFF Molecule
    • GAFF2 Molecule
    • CGenFF Dissimilarity Score
  • Development Operations
    • Open Source Database Monitor
  • Graphing Templates
    • Plotly
Powered by GitBook
On this page
  1. ForceFields

CGenFF Molecule

cgenff_molecule.write_stream_file()

* Toppar stream file generated by
* CHARMM General Force Field (CGenFF) program version 2.5
* For use with CGenFF version 4.5
*

read rtf card append
* Topologies generated by
* CHARMM General Force Field (CGenFF) program version 2.5
*
36 1

! "penalty" is the highest penalty score of the associated parameters.
! Penalties lower than 10 indicate the analogy is fair; penalties between 10
! and 50 mean some basic validation is recommended; penalties higher than
! 50 indicate poor analogy and mandate extensive validation/optimization.

RESI *****          0.000
GROUP

ATOM F1     FGA2    -0.190
ATOM C1     CG312    0.439
ATOM F2     FGA2    -0.190
ATOM C2     CG312    0.424
ATOM F3     FGA2    -0.216
ATOM C3     CG2O2    0.758
ATOM O1     OG311    -0.597
ATOM O2     OG2D1    -0.557
ATOM F4     FGA2    -0.216
ATOM C4     CG302    0.335
ATOM F5     FGA3    -0.140
ATOM F6     FGA3    -0.140
ATOM F7     FGA3    -0.140
ATOM H1     HGP1    0.430

BOND F1   C1
BOND C1   F2
BOND C1   C2
BOND C2   F3
BOND C2   C3
BOND C3   O1
BOND C3   O2
BOND C2   F4
BOND C1   C4
BOND C4   F5
BOND C4   F6
BOND C4   F7
BOND O1   H
IMPR C3     C2     O2     O1

END

read param card flex append
* Parameters generated by analogy by
* CHARMM General Force Field (CGenFF) program version 2.5
*

! Penalties lower than 10 indicate the analogy is fair; penalties between 10
! and 50 mean some basic validation is recommended; penalties higher than
! 50 indicate poor analogy and mandate extensive validation/optimization.



BONDS
CG2O2  CG312   200.00     1.5220
CG302  CG312   250.00     1.5200
CG312  CG312   198.00     1.5200

ANGLES
CG312  CG2O2  OG2D1   125.00     70.00
CG312  CG2O2  OG311   110.50     55.00
CG312  CG302  FGA3   112.00     42.00
CG2O2  CG312  CG312   108.00     52.00
CG2O2  CG312  FGA2   115.00     50.00
CG302  CG312  CG312   112.00     50.00
CG302  CG312  FGA2   112.00     50.00
CG312  CG312  FGA2   112.00     50.00

DIHEDRALS
OG2D1  CG2O2  CG312 CG312   0.0500  6   180.00 
OG2D1  CG2O2  CG312 FGA2   0.1000  1   0.00 
OG2D1  CG2O2  CG312 FGA2   0.9800  2   180.00 
OG311  CG2O2  CG312 CG312   0.0000  6   180.00 
OG311  CG2O2  CG312 FGA2   0.1700  1   180.00 
OG311  CG2O2  CG312 FGA2   0.4600  2   180.00 
CG312  CG2O2  OG311 HGP1   2.0500  2   180.00 
FGA3  CG302  CG312 CG312   0.2500  3   0.00 
FGA3  CG302  CG312 FGA2   0.2500  3   0.00 
CG2O2  CG312  CG312 CG302   0.2100  1   180.00 
CG2O2  CG312  CG312 CG302   0.3900  2   0.00 
CG2O2  CG312  CG312 CG302   0.3500  3   180.00 
CG2O2  CG312  CG312 CG302   0.1100  4   0.00 
CG2O2  CG312  CG312 CG302   0.0900  6   180.00 
CG2O2  CG312  CG312 FGA2   2.0000  1   180.00 
CG2O2  CG312  CG312 FGA2   0.8000  2   0.00 
CG302  CG312  CG312 FGA2   0.2500  3   0.00 
FGA2  CG312  CG312 FGA2   0.2500  3   0.00 

IMPROPERS
CG2O2  CG312  OG2D1 OG311   65.0000  0   0.00 

END

RETURN

Convert to RDKit & SMILES

We are missing bond orders if you are using this feature

molecule = cgenff_molecule.convert_to_rdkit()
molecule = cgenff_molecule.convert_to_smiles()
[HH]~O~C(~O)~C(~F)(~F)~C(~F)(~F)~C(~F)(~F)~F

The conversion is still tricky here since we don't have bond orders. Information needs to come from somewhere and can be hard to guess by atomic valence with no connections.

molecule = Chem.Mol()
editable_molecule = Chem.EditableMol(molecule)

atom_index_mapping = {}

for i, row in enumerate(self.atoms):

    element = row.split()[1]
    atom_index_mapping[element] = i

for key in list(atom_index_mapping.keys()):

    periodic_table = GetPeriodicTable()
    number = periodic_table.GetAtomicNumber(key[0])
    editable_molecule.AddAtom(Chem.Atom(number))

 for row in self.bond_connectivity:

    atom_1 = row.split()[1]
    atom_2 = row.split()[2]

    editable_molecule.AddBond(
        atom_index_mapping[ atom_1 ],
        atom_index_mapping[ atom_2 ]
    )

    molecule = editable_molecule.GetMol()

    molecule.UpdatePropertyCache()
    Chem.SanitizeMol(molecule)

    AllChem.EmbedMolecule(molecule)
    AllChem.MMFFOptimizeMolecule(molecule)

Accessing Properties on CGenFF Molecule

print (cgenff_molecule.bond_parameters)
print (cgenff_molecule.angle_parameters)
print (cgenff_molecule.dihedral_parameters)
print (cgenff_molecule.atom_rows)
print (cgenff_molecule.improper_parameters)
PreviousGlobalChem MoleculeNextGAFF2 Molecule

Last updated 3 years ago