Self is expected to be a protein wtih protReorderedCt defined. Note that lig_zmat is expected to be a ligand with startReorderedCt defined and Lig_zmat will be merged at the end of the self zmat Take a list of atoms and return the list of residues those atoms are part of merge ( ligZmat, addTerz, resname='LIG' ) ¶ Routine identifies the largest numeric atomtype (linking atom numbers toĬoul/vdW parameters - can be taken from atom or QM blocks get_residues ( atomsList, ct ) ¶ Number 999 is used getLargestNumericType ( ) ¶ If the first atom doesn’t have a residue number the Return a ct where all atoms have the same residue number taken from Both zmat and incoming ct areĮxpected to have the same frame of reference conv_int ( string ) ¶Ĭonvert boss integers such as ‘0002’to ‘ 2’ create_zmat ( startCt=None, endCt=None, prot='', title='', protFile='', consFile='', consSpec=0, debug=0, jobname='', inpProtCt=None, resStart=4.0, consStart=8.0, currentNumericType=800, flexSolute='flex', oplsvers=2005, bndTol='', angTol='', torTol='', initDum=1, pdb_version=3.0 ) ¶Ĭreate an MCPRO zmatrix from input cts for protein or ligand systemsįor ligands use Wolfgang’s preparation methodĬurrentNumericType: value numeric types will begin with (if possible)įlexSolute: “flex” for flexible solutes, “fixed” for rigid solutes forceConsistentResnum ( ct ) ¶ Solvent cap will be added to the current zmat at the center ofĪtoms defined in the incoming ct. Solvent cap will be added to the current ligand zmat at the center ofĪtoms defined in the incoming ct. Set the proper atom type for an FEP dummy atom add_lig_solvent_cap ( curr_ct ) ¶ Zmat ( title='', prot='', startCt=None, startReorderedCt=None, endCt=None, endReorderedCt=None, atom=, rest=, geo_var=, filename='', tol=, printZmatAtomLigStart=None, outfh=None ) ¶Ĭlass to store a single Zmat and related objects adapt_dummy_types ( ct, end ) ¶ The second option is the cleanest procedure and would require to build a reference frame from the first molecule that is used for transformations of the second .zmat module ¶Ĭopyright Schrodinger, LLC. a host guest complex), either add a bond between them or build the Z matrices for each molecule separately. In case you want to process more than one molecule (e.g. If the RDkit molecule object contains more than one molecule, you won't be able to build the ZMatrix. Peptides are still ok, but computing proteins might take a while. The algorithm is quite inefficient for large molecules. Requirementsĭifferent examples for how to use this python class can be found in examples. The calculation of all these virtual coordinates can be carried out with this python class. By convention, the Cartesian coordinates of our molecule A-B-C-D-E will be shifted to the position of Z. Second, we need the torsion angles X-Y-Z-A, Y-Z-A-B, Z-A-B-C, the angles Y-Z-A, Z-A-B and the bond length Z-A. First, we need 3 Cartesian coordinates X, Y, and Z in the reference frame, which can be basically anything in the lab coordinate system, as long as it is well defined. a ligand) with 5 atoms: A-B-C-D-E and we want to convert them back to Cartesian space. For instance, let's say we have the Zmatrix coordinates for a molecule (e.g. These coordinates are also called 'virtual coordinates'. coordinates in a host or protein molecule) and 3 torsion angles, 2 angles and 1 bond length with respect to these coordinates. The algorithm is described in detail in these two articles and Ī general remark on transformations is that the conversion from ZMatrix coordinates to Cartesian coordinates requires 3 reference Cartesian coordinates (e.g. In order to circumvent this, I implemented the Natural Extension Reference Frame algorithm, which minimizes these errors. One difficulty in this context is to avoid numerical instabilities (for instance through round-offs), since these might propagate through the Z-Matrix during the conversion. However, the back conversion is more tricky and somewhat error prone. The transformation from Cartesian coordinates to ZMatrix coordinates is straightforward. Therefore, the openmm package is used for dealing with units and enforcing the correct ones during every step. If one has Cartesian coordinates for the RDKit molecule, one can also generate the Z-Matrix coordinates or convert the Z-Matrix coordinates back to Cartesian coordinates.ĭuring all conversions, one easily can make a mistake by using wrong units. With this little python implementation, RDkit molecules can be converted to a Z-Matrix topology representation.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |