mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-03 21:44:30 +08:00
Version 2 of ETKDG (#1597)
* version 2 of ETKDG * setting default and changing to unsigned int * ETversion 2 only via EmbedParams available * Some refactoring so that the DG functions that take the parameter object are the primaries. This should allow new parameters to be added without having to modify the API * test and wrapper changes to go along with that * update cookbook to use etkdg
This commit is contained in:
@@ -52,67 +52,92 @@ typedef std::pair<int, int> INT_PAIR;
|
||||
typedef std::vector<INT_PAIR> INT_PAIR_VECT;
|
||||
|
||||
//! Parameters corresponding to Sereina Riniker's KDG approach
|
||||
const EmbedParameters KDG(0, // maxIterations
|
||||
1, // numThreads
|
||||
-1, // randomSeed
|
||||
true, // clearConfs
|
||||
false, // useRandomCoords
|
||||
2.0, // boxSizeMult
|
||||
true, // randNegEig
|
||||
1, // numZeroFail
|
||||
nullptr, // coordMap
|
||||
1e-3, // optimizerForceTol
|
||||
false, // ignoreSmoothingFailures
|
||||
true, // enforceChirality
|
||||
false, // useExpTorsionAnglePrefs
|
||||
true, // useBasicKnowledge
|
||||
false, // verbose
|
||||
5.0, // basinThresh
|
||||
-1.0, // pruneRmsThresh
|
||||
true // onlyHeavyAtomsForRMS
|
||||
const EmbedParameters KDG(0, // maxIterations
|
||||
1, // numThreads
|
||||
-1, // randomSeed
|
||||
true, // clearConfs
|
||||
false, // useRandomCoords
|
||||
2.0, // boxSizeMult
|
||||
true, // randNegEig
|
||||
1, // numZeroFail
|
||||
NULL, // coordMap
|
||||
1e-3, // optimizerForceTol
|
||||
false, // ignoreSmoothingFailures
|
||||
true, // enforceChirality
|
||||
false, // useExpTorsionAnglePrefs
|
||||
true, // useBasicKnowledge
|
||||
false, // verbose
|
||||
5.0, // basinThresh
|
||||
-1.0, // pruneRmsThresh
|
||||
true, // onlyHeavyAtomsForRMS
|
||||
1 // ETversion
|
||||
);
|
||||
|
||||
//! Parameters corresponding to Sereina Riniker's ETDG approach
|
||||
const EmbedParameters ETDG(0, // maxIterations
|
||||
1, // numThreads
|
||||
-1, // randomSeed
|
||||
true, // clearConfs
|
||||
false, // useRandomCoords
|
||||
2.0, // boxSizeMult
|
||||
true, // randNegEig
|
||||
1, // numZeroFail
|
||||
nullptr, // coordMap
|
||||
1e-3, // optimizerForceTol
|
||||
false, // ignoreSmoothingFailures
|
||||
false, // enforceChirality
|
||||
true, // useExpTorsionAnglePrefs
|
||||
false, // useBasicKnowledge
|
||||
false, // verbose
|
||||
5.0, // basinThresh
|
||||
-1.0, // pruneRmsThresh
|
||||
true // onlyHeavyAtomsForRMS
|
||||
const EmbedParameters ETDG(0, // maxIterations
|
||||
1, // numThreads
|
||||
-1, // randomSeed
|
||||
true, // clearConfs
|
||||
false, // useRandomCoords
|
||||
2.0, // boxSizeMult
|
||||
true, // randNegEig
|
||||
1, // numZeroFail
|
||||
NULL, // coordMap
|
||||
1e-3, // optimizerForceTol
|
||||
false, // ignoreSmoothingFailures
|
||||
false, // enforceChirality
|
||||
true, // useExpTorsionAnglePrefs
|
||||
false, // useBasicKnowledge
|
||||
false, // verbose
|
||||
5.0, // basinThresh
|
||||
-1.0, // pruneRmsThresh
|
||||
true, // onlyHeavyAtomsForRMS
|
||||
1 // ETversion
|
||||
);
|
||||
//! Parameters corresponding to Sereina Riniker's ETKDG approach
|
||||
const EmbedParameters ETKDG(0, // maxIterations
|
||||
1, // numThreads
|
||||
-1, // randomSeed
|
||||
true, // clearConfs
|
||||
false, // useRandomCoords
|
||||
2.0, // boxSizeMult
|
||||
true, // randNegEig
|
||||
1, // numZeroFail
|
||||
nullptr, // coordMap
|
||||
1e-3, // optimizerForceTol
|
||||
false, // ignoreSmoothingFailures
|
||||
true, // enforceChirality
|
||||
true, // useExpTorsionAnglePrefs
|
||||
true, // useBasicKnowledge
|
||||
false, // verbose
|
||||
5.0, // basinThresh
|
||||
-1.0, // pruneRmsThresh
|
||||
true // onlyHeavyAtomsForRMS
|
||||
const EmbedParameters ETKDG(0, // maxIterations
|
||||
1, // numThreads
|
||||
-1, // randomSeed
|
||||
true, // clearConfs
|
||||
false, // useRandomCoords
|
||||
2.0, // boxSizeMult
|
||||
true, // randNegEig
|
||||
1, // numZeroFail
|
||||
NULL, // coordMap
|
||||
1e-3, // optimizerForceTol
|
||||
false, // ignoreSmoothingFailures
|
||||
true, // enforceChirality
|
||||
true, // useExpTorsionAnglePrefs
|
||||
true, // useBasicKnowledge
|
||||
false, // verbose
|
||||
5.0, // basinThresh
|
||||
-1.0, // pruneRmsThresh
|
||||
true, // onlyHeavyAtomsForRMS
|
||||
1 // ETversion
|
||||
);
|
||||
|
||||
//! Parameters corresponding to Sereina Riniker's ETKDG approach - version 2
|
||||
const EmbedParameters ETKDGv2(0, // maxIterations
|
||||
1, // numThreads
|
||||
-1, // randomSeed
|
||||
true, // clearConfs
|
||||
false, // useRandomCoords
|
||||
2.0, // boxSizeMult
|
||||
true, // randNegEig
|
||||
1, // numZeroFail
|
||||
NULL, // coordMap
|
||||
1e-3, // optimizerForceTol
|
||||
false, // ignoreSmoothingFailures
|
||||
true, // enforceChirality
|
||||
true, // useExpTorsionAnglePrefs
|
||||
true, // useBasicKnowledge
|
||||
false, // verbose
|
||||
5.0, // basinThresh
|
||||
-1.0, // pruneRmsThresh
|
||||
true, // onlyHeavyAtomsForRMS
|
||||
2 // ETversion
|
||||
);
|
||||
|
||||
bool _volumeTest(const DistGeom::ChiralSetPtr &chiralSet,
|
||||
const RDGeom::PointPtrVect &positions, bool verbose = false) {
|
||||
RDGeom::Point3D p0((*positions[chiralSet->d_idx0])[0],
|
||||
@@ -277,7 +302,8 @@ bool _minimizeWithExpTorsions(
|
||||
|
||||
// minimize!
|
||||
field->initialize();
|
||||
// std::cout << "Field with torsion constraints: " << field->calcEnergy() << "
|
||||
// std::cout << "Field with torsion constraints: " << field->calcEnergy() <<
|
||||
// "
|
||||
// " << ERROR_TOL << std::endl;
|
||||
if (field->calcEnergy() > ERROR_TOL) {
|
||||
// while (needMore) {
|
||||
@@ -669,30 +695,6 @@ bool _isConfFarFromRest(const ROMol &mol, const Conformer &conf,
|
||||
return res;
|
||||
}
|
||||
|
||||
int EmbedMolecule(ROMol &mol, unsigned int maxIterations, int seed,
|
||||
bool clearConfs, bool useRandomCoords, double boxSizeMult,
|
||||
bool randNegEig, unsigned int numZeroFail,
|
||||
const std::map<int, RDGeom::Point3D> *coordMap,
|
||||
double optimizerForceTol, bool ignoreSmoothingFailures,
|
||||
bool enforceChirality, bool useExpTorsionAnglePrefs,
|
||||
bool useBasicKnowledge, bool verbose, double basinThresh,
|
||||
bool onlyHeavyAtomsForRMS) {
|
||||
INT_VECT confIds;
|
||||
EmbedMultipleConfs(
|
||||
mol, confIds, 1, 1, maxIterations, seed, clearConfs, useRandomCoords,
|
||||
boxSizeMult, randNegEig, numZeroFail, -1.0, coordMap, optimizerForceTol,
|
||||
ignoreSmoothingFailures, enforceChirality, useExpTorsionAnglePrefs,
|
||||
useBasicKnowledge, verbose, basinThresh, onlyHeavyAtomsForRMS);
|
||||
|
||||
int res;
|
||||
if (confIds.size()) {
|
||||
res = confIds[0];
|
||||
} else {
|
||||
res = -1;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
void adjustBoundsMatFromCoordMap(
|
||||
DistGeom::BoundsMatPtr mmat, unsigned int nAtoms,
|
||||
const std::map<int, RDGeom::Point3D> *coordMap) {
|
||||
@@ -806,25 +808,24 @@ void embedHelper_(int threadId, int numThreads, EmbedArgs *eargs) {
|
||||
} // end of namespace detail
|
||||
|
||||
void EmbedMultipleConfs(ROMol &mol, INT_VECT &res, unsigned int numConfs,
|
||||
int numThreads, unsigned int maxIterations, int seed,
|
||||
bool clearConfs, bool useRandomCoords,
|
||||
double boxSizeMult, bool randNegEig,
|
||||
unsigned int numZeroFail, double pruneRmsThresh,
|
||||
const std::map<int, RDGeom::Point3D> *coordMap,
|
||||
double optimizerForceTol, bool ignoreSmoothingFailures,
|
||||
bool enforceChirality, bool useExpTorsionAnglePrefs,
|
||||
bool useBasicKnowledge, bool verbose,
|
||||
double basinThresh, bool onlyHeavyAtomsForRMS) {
|
||||
const EmbedParameters ¶ms) {
|
||||
if (!mol.getNumAtoms()) {
|
||||
throw ValueErrorException("molecule has no atoms");
|
||||
}
|
||||
if (params.ETversion < 1 || params.ETversion > 2) {
|
||||
throw ValueErrorException(
|
||||
"Only version 1 and 2 of the experimental "
|
||||
"torsion-angle preferences (ETversion) supported");
|
||||
}
|
||||
|
||||
INT_VECT fragMapping;
|
||||
std::vector<ROMOL_SPTR> molFrags =
|
||||
MolOps::getMolFrags(mol, true, &fragMapping);
|
||||
const std::map<int, RDGeom::Point3D> *coordMap = params.coordMap;
|
||||
if (molFrags.size() > 1 && coordMap) {
|
||||
BOOST_LOG(rdWarningLog)
|
||||
<< "Constrained conformer generation (via the coordMap argument) does "
|
||||
<< "Constrained conformer generation (via the coordMap argument) "
|
||||
"does "
|
||||
"not work with molecules that have multiple fragments."
|
||||
<< std::endl;
|
||||
coordMap = nullptr;
|
||||
@@ -837,7 +838,7 @@ void EmbedMultipleConfs(ROMol &mol, INT_VECT &res, unsigned int numConfs,
|
||||
boost::dynamic_bitset<> confsOk(numConfs);
|
||||
confsOk.set();
|
||||
|
||||
if (clearConfs) {
|
||||
if (params.clearConfs) {
|
||||
res.clear();
|
||||
mol.clearConformers();
|
||||
}
|
||||
@@ -857,10 +858,11 @@ void EmbedMultipleConfs(ROMol &mol, INT_VECT &res, unsigned int numConfs,
|
||||
std::vector<std::pair<int, int> > bonds;
|
||||
std::vector<std::vector<int> > angles;
|
||||
std::vector<int> atomNums(nAtoms);
|
||||
if (useExpTorsionAnglePrefs || useBasicKnowledge) {
|
||||
if (params.useExpTorsionAnglePrefs || params.useBasicKnowledge) {
|
||||
ForceFields::CrystalFF::getExperimentalTorsions(
|
||||
*piece, expTorsionAtoms, expTorsionAngles, improperAtoms,
|
||||
useExpTorsionAnglePrefs, useBasicKnowledge, verbose);
|
||||
params.useExpTorsionAnglePrefs, params.useBasicKnowledge,
|
||||
params.ETversion, params.verbose);
|
||||
setTopolBounds(*piece, mmat, bonds, angles, true, false);
|
||||
for (unsigned int i = 0; i < nAtoms; ++i) {
|
||||
atomNums[i] = (*piece).getAtomWithIdx(i)->getAtomicNum();
|
||||
@@ -873,7 +875,8 @@ void EmbedMultipleConfs(ROMol &mol, INT_VECT &res, unsigned int numConfs,
|
||||
tol = 0.05;
|
||||
}
|
||||
if (!DistGeom::triangleSmoothBounds(mmat, tol)) {
|
||||
// ok this bound matrix failed to triangle smooth - re-compute the bounds
|
||||
// ok this bound matrix failed to triangle smooth - re-compute the
|
||||
// bounds
|
||||
// matrix
|
||||
// without 15 bounds and with VDW scaling
|
||||
initBoundsMat(mmat);
|
||||
@@ -886,7 +889,7 @@ void EmbedMultipleConfs(ROMol &mol, INT_VECT &res, unsigned int numConfs,
|
||||
// try triangle smoothing again
|
||||
if (!DistGeom::triangleSmoothBounds(mmat, tol)) {
|
||||
// ok, we're not going to be able to smooth this,
|
||||
if (ignoreSmoothingFailures) {
|
||||
if (params.ignoreSmoothingFailures) {
|
||||
// proceed anyway with the more relaxed bounds matrix
|
||||
initBoundsMat(mmat);
|
||||
setTopolBounds(*piece, mmat, false, true);
|
||||
@@ -913,18 +916,18 @@ void EmbedMultipleConfs(ROMol &mol, INT_VECT &res, unsigned int numConfs,
|
||||
DistGeom::VECT_CHIRALSET tetrahedralCarbons;
|
||||
|
||||
MolOps::assignStereochemistry(*piece);
|
||||
_findChiralSets(*piece, chiralCenters, tetrahedralCarbons, coordMap);
|
||||
_findChiralSets(*piece, chiralCenters, tetrahedralCarbons, params.coordMap);
|
||||
|
||||
// if we have any chiral centers or are using random coordinates, we will
|
||||
// first embed the molecule in four dimensions, otherwise we will use 3D
|
||||
bool fourD = false;
|
||||
if (useRandomCoords || chiralCenters.size() > 0) {
|
||||
if (params.useRandomCoords || chiralCenters.size() > 0) {
|
||||
fourD = true;
|
||||
}
|
||||
#ifdef RDK_THREADSAFE_SSS
|
||||
boost::thread_group tg;
|
||||
#endif
|
||||
numThreads = getNumThreadsToUse(numThreads);
|
||||
int numThreads = getNumThreadsToUse(params.numThreads);
|
||||
|
||||
detail::EmbedArgs eargs = {&confsOk,
|
||||
fourD,
|
||||
@@ -932,19 +935,19 @@ void EmbedMultipleConfs(ROMol &mol, INT_VECT &res, unsigned int numConfs,
|
||||
&confs,
|
||||
fragIdx,
|
||||
mmat,
|
||||
useRandomCoords,
|
||||
boxSizeMult,
|
||||
randNegEig,
|
||||
numZeroFail,
|
||||
optimizerForceTol,
|
||||
basinThresh,
|
||||
seed,
|
||||
maxIterations,
|
||||
params.useRandomCoords,
|
||||
params.boxSizeMult,
|
||||
params.randNegEig,
|
||||
params.numZeroFail,
|
||||
params.optimizerForceTol,
|
||||
params.basinThresh,
|
||||
params.randomSeed,
|
||||
params.maxIterations,
|
||||
&chiralCenters,
|
||||
&tetrahedralCarbons,
|
||||
enforceChirality,
|
||||
useExpTorsionAnglePrefs,
|
||||
useBasicKnowledge,
|
||||
params.enforceChirality,
|
||||
params.useExpTorsionAnglePrefs,
|
||||
params.useBasicKnowledge,
|
||||
&bonds,
|
||||
&angles,
|
||||
&expTorsionAtoms,
|
||||
@@ -969,9 +972,9 @@ void EmbedMultipleConfs(ROMol &mol, INT_VECT &res, unsigned int numConfs,
|
||||
if (confsOk[ci]) {
|
||||
// check if we are pruning away conformations and
|
||||
// a closeby conformation has already been chosen :
|
||||
if (pruneRmsThresh > 0.0 &&
|
||||
!_isConfFarFromRest(mol, *conf, pruneRmsThresh,
|
||||
onlyHeavyAtomsForRMS)) {
|
||||
if (params.pruneRmsThresh > 0.0 &&
|
||||
!_isConfFarFromRest(mol, *conf, params.pruneRmsThresh,
|
||||
params.onlyHeavyAtomsForRMS)) {
|
||||
delete conf;
|
||||
} else {
|
||||
int confId = (int)mol.addConformer(conf, true);
|
||||
@@ -983,22 +986,5 @@ void EmbedMultipleConfs(ROMol &mol, INT_VECT &res, unsigned int numConfs,
|
||||
}
|
||||
}
|
||||
|
||||
INT_VECT EmbedMultipleConfs(
|
||||
ROMol &mol, unsigned int numConfs, unsigned int maxIterations, int seed,
|
||||
bool clearConfs, bool useRandomCoords, double boxSizeMult, bool randNegEig,
|
||||
unsigned int numZeroFail, double pruneRmsThresh,
|
||||
const std::map<int, RDGeom::Point3D> *coordMap, double optimizerForceTol,
|
||||
bool ignoreSmoothingFailures, bool enforceChirality,
|
||||
bool useExpTorsionAnglePrefs, bool useBasicKnowledge, bool verbose,
|
||||
double basinThresh, bool onlyHeavyAtomsForRMS) {
|
||||
INT_VECT res;
|
||||
EmbedMultipleConfs(mol, res, numConfs, 1, maxIterations, seed, clearConfs,
|
||||
useRandomCoords, boxSizeMult, randNegEig, numZeroFail,
|
||||
pruneRmsThresh, coordMap, optimizerForceTol,
|
||||
ignoreSmoothingFailures, enforceChirality,
|
||||
useExpTorsionAnglePrefs, useBasicKnowledge, verbose,
|
||||
basinThresh, onlyHeavyAtomsForRMS);
|
||||
return res;
|
||||
}
|
||||
} // end of namespace DGeomHelpers
|
||||
} // end of namespace RDKit
|
||||
|
||||
@@ -18,212 +18,6 @@
|
||||
namespace RDKit {
|
||||
namespace DGeomHelpers {
|
||||
|
||||
//! Compute an embedding (in 3D) for the specified molecule using Distance
|
||||
// Geometry
|
||||
/*!
|
||||
The following operations are performed (in order) here:
|
||||
-# Build a distance bounds matrix based on the topology, including 1-5
|
||||
distances but not VDW scaling
|
||||
-# Triangle smooth this bounds matrix
|
||||
-# If step 2 fails - repeat step 1, this time without 1-5 bounds and with vdW
|
||||
scaling, and repeat step 2
|
||||
-# Pick a distance matrix at random using the bounds matrix
|
||||
-# Compute initial coordinates from the distance matrix
|
||||
-# Repeat steps 3 and 4 until maxIterations is reached or embedding is
|
||||
successful
|
||||
-# Adjust initial coordinates by minimizing a Distance Violation error
|
||||
function
|
||||
|
||||
**NOTE**: if the molecule has multiple fragments, they will be embedded
|
||||
separately,
|
||||
this means that they will likely occupy the same region of space.
|
||||
|
||||
\param mol Molecule of interest
|
||||
\param maxIterations Max. number of times the embedding will be tried if
|
||||
coordinates are
|
||||
not obtained successfully. The default value is 10x the
|
||||
number of atoms.
|
||||
\param seed provides a seed for the random number generator (so that
|
||||
the same
|
||||
coordinates can be obtained for a molecule on multiple
|
||||
runs)
|
||||
If negative, the RNG will not be seeded.
|
||||
\param clearConfs Clear all existing conformations on the molecule
|
||||
\param useRandomCoords Start the embedding from random coordinates instead of
|
||||
using eigenvalues of the distance matrix.
|
||||
\param boxSizeMult Determines the size of the box that is used for
|
||||
random coordinates. If this is a positive number, the
|
||||
side length will equal the largest element of the
|
||||
distance
|
||||
matrix times \c boxSizeMult. If this is a negative
|
||||
number,
|
||||
the side length will equal \c -boxSizeMult (i.e.
|
||||
independent
|
||||
of the elements of the distance matrix).
|
||||
\param randNegEig Picks coordinates at random when a embedding process
|
||||
produces
|
||||
negative eigenvalues
|
||||
\param numZeroFail Fail embedding if we find this many or more zero
|
||||
eigenvalues
|
||||
(within a tolerance)
|
||||
\param coordMap a map of int to Point3D, between atom IDs and their locations
|
||||
their locations. If this container is provided, the
|
||||
coordinates
|
||||
are used to set distance constraints on the embedding. The
|
||||
resulting
|
||||
conformer(s) should have distances between the specified
|
||||
atoms that
|
||||
reproduce those between the points in \c coordMap. Because
|
||||
the embedding
|
||||
produces a molecule in an arbitrary reference frame, an
|
||||
alignment step
|
||||
is required to actually reproduce the provided coordinates.
|
||||
\param optimizerForceTol set the tolerance on forces in the distgeom optimizer
|
||||
(this shouldn't normally be altered in client code).
|
||||
\param ignoreSmoothingFailures try to embed the molecule even if triangle
|
||||
bounds
|
||||
smoothing fails
|
||||
\param enforceChirality enforce the correct chirality if chiral centers are
|
||||
present
|
||||
|
||||
\param useExpTorsionAnglePrefs impose experimental torsion-angle preferences
|
||||
\param useBasicKnowledge impose "basic knowledge" terms such as flat
|
||||
aromatic rings, ketones, etc.
|
||||
\param verbose print output of experimental torsion-angle preferences
|
||||
|
||||
\param basinThresh set the basin threshold for the DGeom force field,
|
||||
(this shouldn't normally be altered in client code).
|
||||
|
||||
\param onlyHeavyAtomsForRMS only use the heavy atoms when doing RMS filtering
|
||||
|
||||
\return ID of the conformations added to the molecule, -1 if the emdedding
|
||||
failed
|
||||
*/
|
||||
int EmbedMolecule(ROMol &mol, unsigned int maxIterations = 0, int seed = -1,
|
||||
bool clearConfs = true, bool useRandomCoords = false,
|
||||
double boxSizeMult = 2.0, bool randNegEig = true,
|
||||
unsigned int numZeroFail = 1,
|
||||
const std::map<int, RDGeom::Point3D> *coordMap = 0,
|
||||
double optimizerForceTol = 1e-3,
|
||||
bool ignoreSmoothingFailures = false,
|
||||
bool enforceChirality = true,
|
||||
bool useExpTorsionAnglePrefs = false,
|
||||
bool useBasicKnowledge = false, bool verbose = false,
|
||||
double basinThresh = 5.0, bool onlyHeavyAtomsForRMS = false);
|
||||
|
||||
//*! Embed multiple conformations for a molecule
|
||||
/*!
|
||||
This is kind of equivalent to calling EmbedMolecule multiple times - just that
|
||||
the bounds
|
||||
matrix is computed only once from the topology
|
||||
|
||||
**NOTE**: if the molecule has multiple fragments, they will be embedded
|
||||
separately,
|
||||
this means that they will likely occupy the same region of space.
|
||||
|
||||
|
||||
\param mol Molecule of interest
|
||||
\param res Used to return the resulting conformer ids
|
||||
\param numConfs Number of conformations to be generated
|
||||
\param numThreads Sets the number of threads to use (more than one thread
|
||||
will only
|
||||
be used if the RDKit was build with multithread support)
|
||||
If set to zero, the max supported by the system will be
|
||||
used.
|
||||
\param maxIterations Max. number of times the embedding will be tried if
|
||||
coordinates are
|
||||
not obtained successfully. The default value is 10x the
|
||||
number of atoms.
|
||||
\param seed provides a seed for the random number generator (so that
|
||||
the same
|
||||
coordinates can be obtained for a molecule on multiple
|
||||
runs).
|
||||
If negative, the RNG will not be seeded.
|
||||
\param clearConfs Clear all existing conformations on the molecule
|
||||
\param useRandomCoords Start the embedding from random coordinates instead of
|
||||
using eigenvalues of the distance matrix.
|
||||
\param boxSizeMult Determines the size of the box that is used for
|
||||
random coordinates. If this is a positive number, the
|
||||
side length will equal the largest element of the
|
||||
distance
|
||||
matrix times \c boxSizeMult. If this is a negative
|
||||
number,
|
||||
the side length will equal \c -boxSizeMult (i.e.
|
||||
independent
|
||||
of the elements of the distance matrix).
|
||||
\param randNegEig Picks coordinates at random when a embedding process
|
||||
produces
|
||||
negative eigenvalues
|
||||
\param numZeroFail Fail embedding if we find this many or more zero
|
||||
eigenvalues
|
||||
(within a tolerance)
|
||||
\param pruneRmsThresh Retain only the conformations out of 'numConfs' after
|
||||
embedding that are
|
||||
at least this far apart from each other. RMSD is
|
||||
computed on the heavy atoms.
|
||||
Prunining is greedy; i.e. the first embedded
|
||||
conformation is retained and from
|
||||
then on only those that are atleast pruneRmsThresh away
|
||||
from already
|
||||
retained conformations are kept. The pruning is done
|
||||
after embedding and
|
||||
bounds violation minimization. No pruning by default.
|
||||
\param coordMap a map of int to Point3D, between atom IDs and their locations
|
||||
their locations. If this container is provided, the
|
||||
coordinates
|
||||
are used to set distance constraints on the embedding. The
|
||||
resulting
|
||||
conformer(s) should have distances between the specified
|
||||
atoms that
|
||||
reproduce those between the points in \c coordMap. Because
|
||||
the embedding
|
||||
produces a molecule in an arbitrary reference frame, an
|
||||
alignment step
|
||||
is required to actually reproduce the provided coordinates.
|
||||
|
||||
\param optimizerForceTol set the tolerance on forces in the DGeom optimizer
|
||||
(this shouldn't normally be altered in client code).
|
||||
|
||||
\param ignoreSmoothingFailures try to embed the molecule even if triangle
|
||||
bounds
|
||||
smoothing fails
|
||||
\param enforceChirality enforce the correct chirality if chiral centers are
|
||||
present
|
||||
|
||||
\param useExpTorsionAnglePrefs impose experimental torsion-angle preferences
|
||||
\param useBasicKnowledge impose "basic knowledge" terms such as flat
|
||||
aromatic rings, ketones, etc.
|
||||
\param verbose print output of experimental torsion-angle preferences
|
||||
|
||||
\param basinThresh set the basin threshold for the DGeom force field,
|
||||
(this shouldn't normally be altered in client code).
|
||||
|
||||
\param onlyHeavyAtomsForRMS only use the heavy atoms when doing RMS filtering
|
||||
|
||||
*/
|
||||
void EmbedMultipleConfs(
|
||||
ROMol &mol, INT_VECT &res, unsigned int numConfs = 10, int numThreads = 1,
|
||||
unsigned int maxIterations = 30, int seed = -1, bool clearConfs = true,
|
||||
bool useRandomCoords = false, double boxSizeMult = 2.0,
|
||||
bool randNegEig = true, unsigned int numZeroFail = 1,
|
||||
double pruneRmsThresh = -1.0,
|
||||
const std::map<int, RDGeom::Point3D> *coordMap = 0,
|
||||
double optimizerForceTol = 1e-3, bool ignoreSmoothingFailures = false,
|
||||
bool enforceChirality = true, bool useExpTorsionAnglePrefs = false,
|
||||
bool useBasicKnowledge = false, bool verbose = false,
|
||||
double basinThresh = 5.0, bool onlyHeavyAtomsForRMS = false);
|
||||
//! \overload
|
||||
INT_VECT EmbedMultipleConfs(
|
||||
ROMol &mol, unsigned int numConfs = 10, unsigned int maxIterations = 30,
|
||||
int seed = -1, bool clearConfs = true, bool useRandomCoords = false,
|
||||
double boxSizeMult = 2.0, bool randNegEig = true,
|
||||
unsigned int numZeroFail = 1, double pruneRmsThresh = -1.0,
|
||||
const std::map<int, RDGeom::Point3D> *coordMap = 0,
|
||||
double optimizerForceTol = 1e-3, bool ignoreSmoothingFailures = false,
|
||||
bool enforceChirality = true, bool useExpTorsionAnglePrefs = false,
|
||||
bool useBasicKnowledge = false, bool verbose = false,
|
||||
double basinThresh = 5.0, bool onlyHeavyAtomsForRMS = false);
|
||||
|
||||
//! Parameter object for controlling embedding
|
||||
/*!
|
||||
numConfs Number of conformations to be generated
|
||||
@@ -292,6 +86,8 @@ INT_VECT EmbedMultipleConfs(
|
||||
useBasicKnowledge impose "basic knowledge" terms such as flat
|
||||
aromatic rings, ketones, etc.
|
||||
|
||||
ETversion version of the experimental torsion-angle preferences
|
||||
|
||||
verbose print output of experimental torsion-angle preferences
|
||||
|
||||
basinThresh set the basin threshold for the DGeom force field,
|
||||
@@ -318,6 +114,7 @@ struct EmbedParameters {
|
||||
double basinThresh;
|
||||
double pruneRmsThresh;
|
||||
bool onlyHeavyAtomsForRMS;
|
||||
unsigned int ETversion;
|
||||
EmbedParameters()
|
||||
: maxIterations(0),
|
||||
numThreads(1),
|
||||
@@ -336,7 +133,8 @@ struct EmbedParameters {
|
||||
verbose(false),
|
||||
basinThresh(5.0),
|
||||
pruneRmsThresh(-1.0),
|
||||
onlyHeavyAtomsForRMS(false){};
|
||||
onlyHeavyAtomsForRMS(false),
|
||||
ETversion(1){};
|
||||
EmbedParameters(unsigned int maxIterations, int numThreads, int randomSeed,
|
||||
bool clearConfs, bool useRandomCoords, double boxSizeMult,
|
||||
bool randNegEig, unsigned int numZeroFail,
|
||||
@@ -344,7 +142,8 @@ struct EmbedParameters {
|
||||
double optimizerForceTol, bool ignoreSmoothingFailures,
|
||||
bool enforceChirality, bool useExpTorsionAnglePrefs,
|
||||
bool useBasicKnowledge, bool verbose, double basinThresh,
|
||||
double pruneRmsThresh, bool onlyHeavyAtomsForRMS)
|
||||
double pruneRmsThresh, bool onlyHeavyAtomsForRMS,
|
||||
unsigned int ETversion = 1)
|
||||
: maxIterations(maxIterations),
|
||||
numThreads(numThreads),
|
||||
randomSeed(randomSeed),
|
||||
@@ -362,7 +161,234 @@ struct EmbedParameters {
|
||||
verbose(verbose),
|
||||
basinThresh(basinThresh),
|
||||
pruneRmsThresh(pruneRmsThresh),
|
||||
onlyHeavyAtomsForRMS(onlyHeavyAtomsForRMS){};
|
||||
onlyHeavyAtomsForRMS(onlyHeavyAtomsForRMS),
|
||||
ETversion(ETversion){};
|
||||
};
|
||||
|
||||
//*! Embed multiple conformations for a molecule
|
||||
void EmbedMultipleConfs(ROMol &mol, INT_VECT &res, unsigned int numConfs,
|
||||
const EmbedParameters ¶ms);
|
||||
inline INT_VECT EmbedMultipleConfs(ROMol &mol, unsigned int numConfs,
|
||||
const EmbedParameters ¶ms) {
|
||||
INT_VECT res;
|
||||
EmbedMultipleConfs(mol, res, numConfs, params);
|
||||
return res;
|
||||
}
|
||||
|
||||
//! Compute an embedding (in 3D) for the specified molecule using Distance
|
||||
// Geometry
|
||||
inline int EmbedMolecule(ROMol &mol, const EmbedParameters ¶ms) {
|
||||
INT_VECT confIds;
|
||||
EmbedMultipleConfs(mol, confIds, 1, params);
|
||||
|
||||
int res;
|
||||
if (confIds.size()) {
|
||||
res = confIds[0];
|
||||
} else {
|
||||
res = -1;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
//! Compute an embedding (in 3D) for the specified molecule using Distance
|
||||
// Geometry
|
||||
/*!
|
||||
The following operations are performed (in order) here:
|
||||
-# Build a distance bounds matrix based on the topology, including 1-5
|
||||
distances but not VDW scaling
|
||||
-# Triangle smooth this bounds matrix
|
||||
-# If step 2 fails - repeat step 1, this time without 1-5 bounds and with vdW
|
||||
scaling, and repeat step 2
|
||||
-# Pick a distance matrix at random using the bounds matrix
|
||||
-# Compute initial coordinates from the distance matrix
|
||||
-# Repeat steps 3 and 4 until maxIterations is reached or embedding is
|
||||
successful
|
||||
-# Adjust initial coordinates by minimizing a Distance Violation error
|
||||
function
|
||||
|
||||
**NOTE**: if the molecule has multiple fragments, they will be embedded
|
||||
separately,
|
||||
this means that they will likely occupy the same region of space.
|
||||
|
||||
\param mol Molecule of interest
|
||||
\param maxIterations Max. number of times the embedding will be tried if
|
||||
coordinates are not obtained successfully. The default
|
||||
value is 10x the number of atoms.
|
||||
\param seed provides a seed for the random number generator (so that
|
||||
the same coordinates can be obtained for a molecule on
|
||||
multiple runs). If negative, the RNG will not be seeded.
|
||||
\param clearConfs Clear all existing conformations on the molecule
|
||||
\param useRandomCoords Start the embedding from random coordinates instead of
|
||||
using eigenvalues of the distance matrix.
|
||||
\param boxSizeMult Determines the size of the box that is used for
|
||||
random coordinates. If this is a positive number, the
|
||||
side length will equal the largest element of the
|
||||
distance matrix times \c boxSizeMult. If this is a
|
||||
negative number, the side length will equal
|
||||
\c -boxSizeMult (i.e. independent of the elements of the
|
||||
distance matrix).
|
||||
\param randNegEig Picks coordinates at random when a embedding process
|
||||
produces negative eigenvalues
|
||||
\param numZeroFail Fail embedding if we find this many or more zero
|
||||
eigenvalues (within a tolerance)
|
||||
\param coordMap a map of int to Point3D, between atom IDs and their locations
|
||||
their locations. If this container is provided, the
|
||||
coordinates are used to set distance constraints on the
|
||||
embedding. The resulting conformer(s) should have distances
|
||||
between the specified atoms that reproduce those between the
|
||||
points in \c coordMap. Because the embedding produces a
|
||||
molecule in an arbitrary reference frame, an alignment step
|
||||
is required to actually reproduce the provided coordinates.
|
||||
\param optimizerForceTol set the tolerance on forces in the distgeom optimizer
|
||||
(this shouldn't normally be altered in client code).
|
||||
\param ignoreSmoothingFailures try to embed the molecule even if triangle
|
||||
bounds smoothing fails
|
||||
\param enforceChirality enforce the correct chirality if chiral centers are
|
||||
present
|
||||
\param useExpTorsionAnglePrefs impose experimental torsion-angle preferences
|
||||
\param useBasicKnowledge impose "basic knowledge" terms such as flat
|
||||
aromatic rings, ketones, etc.
|
||||
\param verbose print output of experimental torsion-angle preferences
|
||||
|
||||
\param basinThresh set the basin threshold for the DGeom force field,
|
||||
(this shouldn't normally be altered in client code).
|
||||
|
||||
\param onlyHeavyAtomsForRMS only use the heavy atoms when doing RMS filtering
|
||||
|
||||
\return ID of the conformations added to the molecule, -1 if the emdedding
|
||||
failed
|
||||
*/
|
||||
inline int EmbedMolecule(ROMol &mol, unsigned int maxIterations = 0,
|
||||
int seed = -1, bool clearConfs = true,
|
||||
bool useRandomCoords = false, double boxSizeMult = 2.0,
|
||||
bool randNegEig = true, unsigned int numZeroFail = 1,
|
||||
const std::map<int, RDGeom::Point3D> *coordMap = 0,
|
||||
double optimizerForceTol = 1e-3,
|
||||
bool ignoreSmoothingFailures = false,
|
||||
bool enforceChirality = true,
|
||||
bool useExpTorsionAnglePrefs = false,
|
||||
bool useBasicKnowledge = false, bool verbose = false,
|
||||
double basinThresh = 5.0,
|
||||
bool onlyHeavyAtomsForRMS = false) {
|
||||
EmbedParameters params(
|
||||
maxIterations, 1, seed, clearConfs, useRandomCoords, boxSizeMult,
|
||||
randNegEig, numZeroFail, coordMap, optimizerForceTol,
|
||||
ignoreSmoothingFailures, enforceChirality, useExpTorsionAnglePrefs,
|
||||
useBasicKnowledge, verbose, basinThresh, -1.0, onlyHeavyAtomsForRMS);
|
||||
return EmbedMolecule(mol, params);
|
||||
};
|
||||
|
||||
//*! Embed multiple conformations for a molecule
|
||||
/*!
|
||||
This is kind of equivalent to calling EmbedMolecule multiple times - just that
|
||||
the bounds
|
||||
matrix is computed only once from the topology
|
||||
|
||||
**NOTE**: if the molecule has multiple fragments, they will be embedded
|
||||
separately,
|
||||
this means that they will likely occupy the same region of space.
|
||||
|
||||
|
||||
\param mol Molecule of interest
|
||||
\param res Used to return the resulting conformer ids
|
||||
\param numConfs Number of conformations to be generated
|
||||
\param numThreads Sets the number of threads to use (more than one thread
|
||||
will only be used if the RDKit was build with
|
||||
multithread
|
||||
support). If set to zero, the max supported by the
|
||||
system
|
||||
will be used.
|
||||
\param maxIterations Max. number of times the embedding will be tried if
|
||||
coordinates are not obtained successfully. The default
|
||||
value is 10x the number of atoms.
|
||||
\param seed provides a seed for the random number generator (so that
|
||||
the same coordinates can be obtained for a molecule on
|
||||
multiple runs). If negative, the RNG will not be seeded.
|
||||
\param clearConfs Clear all existing conformations on the molecule
|
||||
\param useRandomCoords Start the embedding from random coordinates instead of
|
||||
using eigenvalues of the distance matrix.
|
||||
\param boxSizeMult Determines the size of the box that is used for
|
||||
random coordinates. If this is a positive number, the
|
||||
side length will equal the largest element of the
|
||||
distance matrix times \c boxSizeMult. If this is a
|
||||
negative number, the side length will equal
|
||||
\c -boxSizeMult (i.e. independent of the elements of the
|
||||
distance matrix).
|
||||
\param randNegEig Picks coordinates at random when a embedding process
|
||||
produces negative eigenvalues
|
||||
\param numZeroFail Fail embedding if we find this many or more zero
|
||||
eigenvalues (within a tolerance)
|
||||
\param pruneRmsThresh Retain only the conformations out of 'numConfs' after
|
||||
embedding that are at least this far apart from each
|
||||
other. RMSD is computed on the heavy atoms.
|
||||
Pruning is greedy; i.e. the first embedded conformation
|
||||
is retained and from then on only those that are at
|
||||
least
|
||||
pruneRmsThresh away from already retained conformations
|
||||
are kept. The pruning is done after embedding and
|
||||
bounds violation minimization. No pruning by default.
|
||||
\param coordMap a map of int to Point3D, between atom IDs and their locations
|
||||
their locations. If this container is provided, the
|
||||
coordinates are used to set distance constraints on the
|
||||
embedding. The resulting conformer(s) should have distances
|
||||
between the specified atoms that reproduce those between the
|
||||
points in \c coordMap. Because the embedding produces a
|
||||
molecule in an arbitrary reference frame, an alignment step
|
||||
is required to actually reproduce the provided coordinates.
|
||||
\param optimizerForceTol set the tolerance on forces in the DGeom optimizer
|
||||
(this shouldn't normally be altered in client code).
|
||||
\param ignoreSmoothingFailures try to embed the molecule even if triangle
|
||||
bounds smoothing fails
|
||||
\param enforceChirality enforce the correct chirality if chiral centers are
|
||||
present
|
||||
\param useExpTorsionAnglePrefs impose experimental torsion-angle preferences
|
||||
\param useBasicKnowledge impose "basic knowledge" terms such as flat
|
||||
aromatic rings, ketones, etc.
|
||||
\param verbose print output of experimental torsion-angle preferences
|
||||
\param basinThresh set the basin threshold for the DGeom force field,
|
||||
(this shouldn't normally be altered in client code).
|
||||
\param onlyHeavyAtomsForRMS only use the heavy atoms when doing RMS filtering
|
||||
|
||||
*/
|
||||
inline void EmbedMultipleConfs(
|
||||
ROMol &mol, INT_VECT &res, unsigned int numConfs = 10, int numThreads = 1,
|
||||
unsigned int maxIterations = 30, int seed = -1, bool clearConfs = true,
|
||||
bool useRandomCoords = false, double boxSizeMult = 2.0,
|
||||
bool randNegEig = true, unsigned int numZeroFail = 1,
|
||||
double pruneRmsThresh = -1.0,
|
||||
const std::map<int, RDGeom::Point3D> *coordMap = 0,
|
||||
double optimizerForceTol = 1e-3, bool ignoreSmoothingFailures = false,
|
||||
bool enforceChirality = true, bool useExpTorsionAnglePrefs = false,
|
||||
bool useBasicKnowledge = false, bool verbose = false,
|
||||
double basinThresh = 5.0, bool onlyHeavyAtomsForRMS = false) {
|
||||
EmbedParameters params(maxIterations, numThreads, seed, clearConfs,
|
||||
useRandomCoords, boxSizeMult, randNegEig, numZeroFail,
|
||||
coordMap, optimizerForceTol, ignoreSmoothingFailures,
|
||||
enforceChirality, useExpTorsionAnglePrefs,
|
||||
useBasicKnowledge, verbose, basinThresh,
|
||||
pruneRmsThresh, onlyHeavyAtomsForRMS);
|
||||
EmbedMultipleConfs(mol, res, numConfs, params);
|
||||
};
|
||||
//! \overload
|
||||
inline INT_VECT EmbedMultipleConfs(
|
||||
ROMol &mol, unsigned int numConfs = 10, unsigned int maxIterations = 30,
|
||||
int seed = -1, bool clearConfs = true, bool useRandomCoords = false,
|
||||
double boxSizeMult = 2.0, bool randNegEig = true,
|
||||
unsigned int numZeroFail = 1, double pruneRmsThresh = -1.0,
|
||||
const std::map<int, RDGeom::Point3D> *coordMap = 0,
|
||||
double optimizerForceTol = 1e-3, bool ignoreSmoothingFailures = false,
|
||||
bool enforceChirality = true, bool useExpTorsionAnglePrefs = false,
|
||||
bool useBasicKnowledge = false, bool verbose = false,
|
||||
double basinThresh = 5.0, bool onlyHeavyAtomsForRMS = false) {
|
||||
EmbedParameters params(maxIterations, 1, seed, clearConfs, useRandomCoords,
|
||||
boxSizeMult, randNegEig, numZeroFail, coordMap,
|
||||
optimizerForceTol, ignoreSmoothingFailures,
|
||||
enforceChirality, useExpTorsionAnglePrefs,
|
||||
useBasicKnowledge, verbose, basinThresh,
|
||||
pruneRmsThresh, onlyHeavyAtomsForRMS);
|
||||
INT_VECT res;
|
||||
EmbedMultipleConfs(mol, res, numConfs, params);
|
||||
return res;
|
||||
};
|
||||
|
||||
//! Parameters corresponding to Sereina Riniker's KDG approach
|
||||
@@ -371,33 +397,8 @@ extern const EmbedParameters KDG;
|
||||
extern const EmbedParameters ETDG;
|
||||
//! Parameters corresponding to Sereina Riniker's ETKDG approach
|
||||
extern const EmbedParameters ETKDG;
|
||||
|
||||
inline int EmbedMolecule(ROMol &mol, const EmbedParameters ¶ms) {
|
||||
return EmbedMolecule(
|
||||
mol, params.maxIterations, params.randomSeed, params.clearConfs,
|
||||
params.useRandomCoords, params.boxSizeMult, params.randNegEig,
|
||||
params.numZeroFail, params.coordMap, params.optimizerForceTol,
|
||||
params.ignoreSmoothingFailures, params.enforceChirality,
|
||||
params.useExpTorsionAnglePrefs, params.useBasicKnowledge, params.verbose,
|
||||
params.basinThresh, params.onlyHeavyAtomsForRMS);
|
||||
}
|
||||
inline void EmbedMultipleConfs(ROMol &mol, INT_VECT &res, unsigned int numConfs,
|
||||
const EmbedParameters ¶ms) {
|
||||
EmbedMultipleConfs(
|
||||
mol, res, numConfs, params.numThreads, params.maxIterations,
|
||||
params.randomSeed, params.clearConfs, params.useRandomCoords,
|
||||
params.boxSizeMult, params.randNegEig, params.numZeroFail,
|
||||
params.pruneRmsThresh, params.coordMap, params.optimizerForceTol,
|
||||
params.ignoreSmoothingFailures, params.enforceChirality,
|
||||
params.useExpTorsionAnglePrefs, params.useBasicKnowledge, params.verbose,
|
||||
params.basinThresh, params.onlyHeavyAtomsForRMS);
|
||||
}
|
||||
inline INT_VECT EmbedMultipleConfs(ROMol &mol, unsigned int numConfs,
|
||||
const EmbedParameters ¶ms) {
|
||||
INT_VECT res;
|
||||
EmbedMultipleConfs(mol, res, numConfs, params);
|
||||
return res;
|
||||
}
|
||||
//! Parameters corresponding to Sereina Riniker's ETKDG approach - version 2
|
||||
extern const EmbedParameters ETKDGv2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -41,14 +41,21 @@ int EmbedMolecule(ROMol &mol, unsigned int maxAttempts, int seed,
|
||||
pMapPtr = &pMap;
|
||||
}
|
||||
|
||||
bool verbose = printExpTorsionAngles;
|
||||
int numThreads = 1;
|
||||
double pruneRmsThresh = -1.;
|
||||
const double basinThresh = DGeomHelpers::EmbedParameters().basinThresh;
|
||||
bool onlyHeavyAtomsForRMS = false;
|
||||
DGeomHelpers::EmbedParameters params(
|
||||
maxAttempts, numThreads, seed, clearConfs, useRandomCoords, boxSizeMult,
|
||||
randNegEig, numZeroFail, pMapPtr, forceTol, ignoreSmoothingFailures,
|
||||
enforceChirality, useExpTorsionAnglePrefs, useBasicKnowledge, verbose,
|
||||
basinThresh, pruneRmsThresh, onlyHeavyAtomsForRMS);
|
||||
|
||||
int res;
|
||||
{
|
||||
NOGIL gil;
|
||||
res = DGeomHelpers::EmbedMolecule(
|
||||
mol, maxAttempts, seed, clearConfs, useRandomCoords, boxSizeMult,
|
||||
randNegEig, numZeroFail, pMapPtr, forceTol, ignoreSmoothingFailures,
|
||||
enforceChirality, useExpTorsionAnglePrefs, useBasicKnowledge,
|
||||
printExpTorsionAngles);
|
||||
res = DGeomHelpers::EmbedMolecule(mol, params);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
@@ -80,15 +87,19 @@ INT_VECT EmbedMultipleConfs(
|
||||
if (nKeys) {
|
||||
pMapPtr = &pMap;
|
||||
}
|
||||
bool verbose = printExpTorsionAngles;
|
||||
const double basinThresh = DGeomHelpers::EmbedParameters().basinThresh;
|
||||
bool onlyHeavyAtomsForRMS = false;
|
||||
DGeomHelpers::EmbedParameters params(
|
||||
maxAttempts, numThreads, seed, clearConfs, useRandomCoords, boxSizeMult,
|
||||
randNegEig, numZeroFail, pMapPtr, forceTol, ignoreSmoothingFailures,
|
||||
enforceChirality, useExpTorsionAnglePrefs, useBasicKnowledge, verbose,
|
||||
basinThresh, pruneRmsThresh, onlyHeavyAtomsForRMS);
|
||||
|
||||
INT_VECT res;
|
||||
{
|
||||
NOGIL gil;
|
||||
DGeomHelpers::EmbedMultipleConfs(
|
||||
mol, res, numConfs, numThreads, maxAttempts, seed, clearConfs,
|
||||
useRandomCoords, boxSizeMult, randNegEig, numZeroFail, pruneRmsThresh,
|
||||
pMapPtr, forceTol, ignoreSmoothingFailures, enforceChirality,
|
||||
useExpTorsionAnglePrefs, useBasicKnowledge, printExpTorsionAngles);
|
||||
DGeomHelpers::EmbedMultipleConfs(mol, res, numConfs, params);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
@@ -119,9 +130,12 @@ PyObject *getMolBoundsMatrix(ROMol &mol, bool set15bounds = true,
|
||||
|
||||
return PyArray_Return(res);
|
||||
}
|
||||
DGeomHelpers::EmbedParameters *getETKDG() {
|
||||
DGeomHelpers::EmbedParameters *getETKDG() { // ET version 1
|
||||
return new DGeomHelpers::EmbedParameters(DGeomHelpers::ETKDG);
|
||||
}
|
||||
DGeomHelpers::EmbedParameters *getETKDGv2() { // ET version 2
|
||||
return new DGeomHelpers::EmbedParameters(DGeomHelpers::ETKDGv2);
|
||||
}
|
||||
DGeomHelpers::EmbedParameters *getKDG() {
|
||||
return new DGeomHelpers::EmbedParameters(DGeomHelpers::KDG);
|
||||
}
|
||||
@@ -306,6 +320,9 @@ BOOST_PYTHON_MODULE(rdDistGeom) {
|
||||
.def_readwrite("useBasicKnowledge",
|
||||
&RDKit::DGeomHelpers::EmbedParameters::useBasicKnowledge,
|
||||
"impose basic-knowledge constraints such as flat rings")
|
||||
.def_readwrite("ETversion",
|
||||
&RDKit::DGeomHelpers::EmbedParameters::ETversion,
|
||||
"version of the experimental torsion-angle preferences")
|
||||
.def_readwrite("verbose", &RDKit::DGeomHelpers::EmbedParameters::verbose,
|
||||
"be verbose about configuration")
|
||||
.def_readwrite("pruneRmsThresh",
|
||||
@@ -346,9 +363,14 @@ BOOST_PYTHON_MODULE(rdDistGeom) {
|
||||
\n";
|
||||
python::def("EmbedMolecule", RDKit::EmbedMolecule2,
|
||||
(python::arg("mol"), python::arg("params")), docString.c_str());
|
||||
python::def("ETKDG", RDKit::getETKDG,
|
||||
"Returns an EmbedParameters object for the ETKDG method.",
|
||||
python::return_value_policy<python::manage_new_object>());
|
||||
python::def(
|
||||
"ETKDG", RDKit::getETKDG,
|
||||
"Returns an EmbedParameters object for the ETKDG method - version 1.",
|
||||
python::return_value_policy<python::manage_new_object>());
|
||||
python::def(
|
||||
"ETKDGv2", RDKit::getETKDGv2,
|
||||
"Returns an EmbedParameters object for the ETKDG method - version 2.",
|
||||
python::return_value_policy<python::manage_new_object>());
|
||||
python::def("ETDG", RDKit::getETDG,
|
||||
"Returns an EmbedParameters object for the ETDG method.",
|
||||
python::return_value_policy<python::manage_new_object>());
|
||||
|
||||
@@ -456,6 +456,14 @@ class TestCase(unittest.TestCase):
|
||||
self.assertEqual(rdDistGeom.EmbedMolecule(mol, params), 0)
|
||||
self._compareConfs(mol, ref, 0, 0)
|
||||
|
||||
fn = os.path.join(RDConfig.RDBaseDir, 'Code', 'GraphMol', 'DistGeomHelpers', 'test_data',
|
||||
'simple_torsion.etkdg.mol')
|
||||
ref = Chem.MolFromMolFile(fn, removeHs=False)
|
||||
params = rdDistGeom.ETKDGv2()
|
||||
params.randomSeed = 42
|
||||
self.assertEqual(rdDistGeom.EmbedMolecule(mol, params), 0)
|
||||
self._compareConfs(mol, ref, 0, 0)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
@@ -569,9 +569,9 @@ void testMultipleConfs() {
|
||||
void testMultipleConfsExpTors() {
|
||||
std::string smi = "CC(C)(C)c(cc1)ccc1c(cc23)n[n]3C(=O)/C(=C\\N2)C(=O)OCC";
|
||||
ROMol *m = SmilesToMol(smi, 0, 1);
|
||||
INT_VECT cids = DGeomHelpers::EmbedMultipleConfs(
|
||||
*m, 10, 30, 100, true, false, -1, true, 1, -1.0, nullptr, 1e-3, false,
|
||||
true, true, true, false);
|
||||
INT_VECT cids = DGeomHelpers::EmbedMultipleConfs(*m, 10, 30, 100, true, false,
|
||||
-1, true, 1, -1.0, 0, 1e-3,
|
||||
false, true, true, true);
|
||||
INT_VECT_CI ci;
|
||||
// SDWriter writer("junk.sdf");
|
||||
double energy;
|
||||
@@ -1493,7 +1493,8 @@ void testGithub568() {
|
||||
"Nc1ncnc2c1ncn2[C@H]3C[C@H](O)[C@@H](CO)C3",
|
||||
"C[C@@H](N1CC[C@@]23CCCC[C@@H]2[C@@H]1Cc4ccc(OCc5cccc(F)c5)cc34)C(=O)N",
|
||||
"CN1C(=O)CC[C@@]2(C)C1=CCc3cc(Cl)ccc23",
|
||||
"Cc1nc(COc2ccc3OC[C@H](Cc4cccnc4)[C@H](O)c3c2)ccc1[N+](=O)[O-]", "EOS"};
|
||||
"Cc1nc(COc2ccc3OC[C@H](Cc4cccnc4)[C@H](O)c3c2)ccc1[N+](=O)[O-]",
|
||||
"EOS"};
|
||||
for (unsigned int idx = 0; smis[idx] != "EOS"; ++idx) {
|
||||
ROMol *m = SmilesToMol(smis[idx]);
|
||||
std::string csmi = MolToSmiles(*m, true);
|
||||
@@ -1551,8 +1552,11 @@ void testGithub697() {
|
||||
{ // a group of chembl molecules (and things derived from them), all of which
|
||||
// contain a c1cscn1 heterocycle
|
||||
std::string smis[] = {
|
||||
"C1SC2=NC1CCCCCC2", "C1CCCc2nc(CC1)cs2", "C1Cc2coc(n2)-c2coc(C1)n2",
|
||||
"C1Cc2coc(n2)-c2csc(C1)n2", "C1CCc2nc(cs2)-c2nc(C1)co2",
|
||||
"C1SC2=NC1CCCCCC2",
|
||||
"C1CCCc2nc(CC1)cs2",
|
||||
"C1Cc2coc(n2)-c2coc(C1)n2",
|
||||
"C1Cc2coc(n2)-c2csc(C1)n2",
|
||||
"C1CCc2nc(cs2)-c2nc(C1)co2",
|
||||
"C1Cc2nc(co2)-c2nc(cs2)-c2nc1co2",
|
||||
"C1Cc2nc(co2)-c2nc(co2)-c2nc(cs2)-c2nc(co2)-c2nc1co2",
|
||||
"C1CNCc2coc(n2)-c2coc(n2)-c2csc(n2)-c2coc(n2)-c2coc(CNCCN1)n2",
|
||||
@@ -1725,6 +1729,27 @@ void testEmbedParameters() {
|
||||
delete ref;
|
||||
delete mol;
|
||||
}
|
||||
{
|
||||
std::string fname =
|
||||
rdbase +
|
||||
"/Code/GraphMol/DistGeomHelpers/test_data/simple_torsion.etkdg.mol";
|
||||
RWMol *ref = MolFileToMol(fname, true, false);
|
||||
TEST_ASSERT(ref);
|
||||
RWMol *mol = SmilesToMol("OCCC");
|
||||
TEST_ASSERT(mol);
|
||||
MolOps::addHs(*mol);
|
||||
TEST_ASSERT(ref->getNumAtoms() == mol->getNumAtoms());
|
||||
DGeomHelpers::EmbedParameters params;
|
||||
params.randomSeed = 42;
|
||||
params.useExpTorsionAnglePrefs = true;
|
||||
params.useBasicKnowledge = true;
|
||||
params.ETversion = 2;
|
||||
DGeomHelpers::EmbedMolecule(*mol, params);
|
||||
compareConfs(ref, mol);
|
||||
|
||||
delete ref;
|
||||
delete mol;
|
||||
}
|
||||
{
|
||||
std::string fname =
|
||||
rdbase +
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2015 Sereina Riniker
|
||||
// Copyright (C) 2017 Sereina Riniker
|
||||
//
|
||||
// @@ All Rights Reserved @@
|
||||
// This file is part of the RDKit.
|
||||
@@ -32,7 +32,8 @@ namespace CrystalFF {
|
||||
using namespace RDKit;
|
||||
|
||||
/* SMARTS patterns for experimental torsion angle preferences
|
||||
* taken from J. Med. Chem. 56, 1026-2028 (2013)
|
||||
* Version 1 taken from J. Med. Chem. 56, 1026-2028 (2013)
|
||||
* Version 2 taken from J. Chem. Inf. Model. 56, 1 (2016)
|
||||
*
|
||||
* torsion-angle potential form:
|
||||
* V = V1*(1 + s1*cos(1x)) + V2*(1 + s2*cos(2x)) + V3*(1 + s3*cos(1x))
|
||||
@@ -40,589 +41,8 @@ using namespace RDKit;
|
||||
*
|
||||
* format: [SMARTS, s1, V1, s2, V2, s3, V3, s4, V4, s5, V5, s6, V6]
|
||||
*/
|
||||
const std::string torsionPreferences =
|
||||
"[O:1]=[C:2]!@;-[O:3]~[CH0:4] -1 78.2 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[O:3]~[CH0:4] -1 78.2 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([N])!@;-[O:3]~[C:4] -1 79.1 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[O:3]~[C:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[O:3]~[!#1:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][O:2]!@;-[c:3]~[*:4] 1 0.0 1 0.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][O:2]!@;-[CX3:3]~[*:4] 1 0.0 1 0.0 1 0.0 -1 1.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][O:2]!@;-[CH1:3][H:4] -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][O:2]!@;-[CH2:3]~[C:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[H:1][CX4H1:2]!@;-[O:3][CX4:4] -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CH2:2]!@;-[O:3][CX4:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*:1][CX4:2]!@;-[O:3][CX3:4](=[!O]) 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1][CX4:2]!@;-[O:3][CX4:4] 1 0.0 1 0.0 1 8.8 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*:1][CX4:2]!@;-[O:3][CX4:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[O:3][S:4] 1 0.0 1 3.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH0])!@;-[O:3][S:4] 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][S:4] 1 0.0 1 11.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[O:3][c:4] 1 0.0 1 0.0 1 0.0 -1 0.5 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH0])!@;-[O:3][c:4] 1 0.0 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][c:4] 1 0.0 1 2.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][!C;!H:4] 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[O:3][!C;!H:4] 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[O:3][!C;!H:4] 1 0.0 1 0.0 1 0.0 -1 2.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH:1][c:2]([cH])!@;-[O:3][C:4](F)(F)[F] 1 0.0 1 30.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
//"[cH0:1][c:2]([cH0])!@;-[O:3][CX4:4]([!#1])([!#1])([!#1])\n"
|
||||
"[a:1][c:2]([a])!@;-[O:3][CX4H0:4] 1 0.0 1 0.0 1 0.0 -1 2.0 1 0.0 1 0.0\n"
|
||||
"[cH1,n:1][c:2]!@;-[O:3][CRH1:4] 1 0.0 -1 5.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1,n:1][c:2]!@;-[O:3][CH1:4] 1 0.0 -1 7.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]([cH0])!@;-[O:3][CX4H0:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
//"[cH0:1][c:2]([cH0])!@;-[O:3][CX4H0:4]\n"
|
||||
"[cH0:1][c:2]([nX2])!@;-[O:3][C:4] 1 110.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2:1][c:2]([nX2])!@;-[O:3][C:4] 1 0.0 -1 44.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2:1][c:2]([nX3])!@;-[O:3][C:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([nX3])!@;-[O:3][C:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([nX2])!@;-[O:3][C:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1]([CX3])[c:2]([cH1])!@;-[O:3][C:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[cH1:1][c:2](cO)!@;-[O:3][C:4] -1 61.9 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O[c:1][c:2](cO)!@;-[O:3][C:4] 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][C:4] 1 0.0 1 6.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[O:3][C:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[O:3][C:4] 1 0.0 -1 19.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[O:3][CX3H0:4] 1 0.0 1 1.9 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][!#1:4] 1 0.0 1 6.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[aH0:1][c:2]!@;-[OX2:3][!#1:4] 1 0.8 1 0.7 -1 -0.3 -1 2.5 -1 -0.1 1 -0.8\n"
|
||||
//"[cH1,nX3H1:1][c:2]([cH0])!@;-[O:3][CX4H0:4]\n"
|
||||
"[!#1:1][CX4H0:2]!@;-[OX2:3][!#1:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[H:1][CX4H1:2]!@;-[OX2:3][!#1:4] -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4H2:2]!@;-[OX2:3][c:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][CX4H2:2]!@;-[OX2:3][C:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4H2:2]!@;-[OX2:3][C:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][CX4H2:2]!@;-[OX2:3][c:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[OX2:3][c:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[OX2:3][C:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][CX4H2:2]!@;-[OX2:3][!#1:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4H2:2]!@;-[OX2:3][!#1:4] -1 -3.5 1 2.5 -1 -2.3 1 0.6 -1 -0.4 -1 "
|
||||
"0.4\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[OX2:3][!#1:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[OX2:3][!#1:4] -1 -3.5 1 2.5 -1 -2.3 1 0.6 -1 -0.4 -1 "
|
||||
"0.4\n"
|
||||
"O=[CX3:1][NX3H0:2](C)!@;-[CX4H2:3][C:4] 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[CX3:1][NX3H1:2]!@;-[CX4H2:3][C:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[S:1](=O)[NX3H0:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 1.9 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[S:1](=O)[NX3H1:2]!@;-[CX4H2:3][!#1:4] 1 17.9 -1 -13.3 1 9.2 1 4.7 -1 "
|
||||
"-2.3 -1 -0.9\n"
|
||||
"O=[S:1](=O)[NX3H0:2]!@;-[CX4H1:3][H:4] 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[S:1](=O)[NX3H1:2]!@;-[CX4H1:3][H:4] -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[S:1](=O)[NH1:2]!@;-[c:3][nX2:4] 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[S:1](=O)[NH0:2]!@;-[c:3]([cH1])[cH1:4] 1 0.0 1 13.3 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"O=[S:1](=O)[NH1:2]!@;-[c:3]([cH1])[cH1:4] 1 0.0 1 0.0 1 0.0 1 0.9 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[S:1](=O)[NH0:2]!@;-[c:3]([cH1])[cH0:4] 1 0.0 1 50.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"O=[S:1](=O)[NH1:2]!@;-[c:3]([cH1])[cH0:4] 1 1.9 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[S:1](=O)[NH0:2]!@;-[c:3]([cH0])[cH0:4] 1 0.0 1 17.8 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"O=[S:1](=O)[NH1:2]!@;-[c:3]([cH0])[cH0:4] 1 0.0 1 10.6 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"O=[S:1](=O)[N:2]!@;-[c:3][a:4] 1 0.0 1 0.0 1 0.0 -1 2.0 1 0.0 1 0.0\n"
|
||||
"[O-:1][N+:2](=O)!@;-[c:3]([cH,nX2H0])[cH,nX2H0:4] 1 0.0 -1 5.0 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[O-:1][N+:2](=O)!@;-[c:3]([cH0])[cH,nX2H0:4] -1 -0.2 1 -5.7 1 -0.2 -1 "
|
||||
"-3.2 1 0.1 1 -1.3\n"
|
||||
"[O-:1][N+:2](=O)!@;-[c:3]([cH0])[cH0:4] -1 -0.4 1 0.3 1 -0.1 -1 0.6 1 "
|
||||
"-0.1 -1 0.2\n"
|
||||
"[O-:1][N+:2](=O)!@;-[c:3][a:4] 1 0.0 -1 11.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[NX3H1:3][C,c:4] 1 0.0 1 0.0 1 0.0 -1 0.8 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[NX3H1:3][C,c:4] 1 15.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]([nX2H0])!@;-[NX3H1:3][C,c:4] 1 40.0 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[cH0:1][c:2]([nX3H1])!@;-[NX3H1:3][C,c:4] 1 50.0 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[NX3H1:3][C,c:4] 1 0.0 -1 1.4 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH1:1][c:2]([nX3H1])!@;-[NX3H1:3][C,c:4] 1 0.0 -1 100.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]([nX2H0])!@;-[NX3H1:3][C,c:4] 1 0.0 -1 15.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]([nX3H1])!@;-[NX3H1:3][C,c:4] 1 0.0 -1 27.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[a:1][a:2]!@;-[NH1:3][C,c:4] 1 0.0 -1 6.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][NH:2]!@;-[C:3](=[NH2:4])[NH2] 1 0.0 -1 100.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[NH2][C:1](=[NH2])[NH:2]!@;-[CH2:3][C:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[a:1][c:2]!@;-[NX2:3]=[C:4]([NX3])n -1 -0.1 1 1.9 -1 -0.1 -1 -1.9 -1 0.1 "
|
||||
"1 0.0\n"
|
||||
"[nX2:1][c:2]!@;-[NX2:3]=[C:4]([NX3])N 1 0.0 -1 6.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]!@;-[NX2:3]=[C:4]([NX3])N -1 -0.1 1 1.9 -1 -0.1 -1 -1.9 -1 "
|
||||
"0.1 1 0.0\n"
|
||||
"[cH1:1][c:2]!@;-[NX2:3]=[C:4]([NX3])N 1 -0.4 -1 -0.9 1 -0.4 1 1.1 1 -0.2 "
|
||||
"1 -0.1\n"
|
||||
"[O:1]=[C:2]([NH1])!@;-[NX3H1:3](C=O)[H:4] -1 144.7 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[NX3H1:3](C=O)[H:4] 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[NX3:3](C=O)[*:4] 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX3:3]=[NX2:4] 1 63.8 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[CX3:3]=[*H0:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[CX3:3]=[*H1:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
//"O=[C:1][NX3H0:2]!@;-[CX3:3]=[*H2:4] \n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX3:3]=[*H2:4] 1 0.0 -1 68.5 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX3:3]=[*H1:4] 1 0.0 1 0.0 -1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX3:3]=[*H0:4] 1 0.0 -1 39.4 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[CX3H1:3]=[*:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX3H1:3]=[*:4] 1 84.1 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX3:3]=[*:4] 1 0.0 -1 33.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[CX4H2:3][c:4]([cH,nX2H0])[cH,nX2H0] 1 0.0 1 3.0 1 "
|
||||
"0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX4H2:3][c:4]([cH,nX2H0])[cH,nX2H0] -1 -1.3 1 1.6 -1 "
|
||||
"-0.6 -1 0.6 1 -0.1 -1 0.3\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 15.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[CX4H1:3][H:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX4H1:3][H:4] -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[CX4H0:3][C:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX4H0:3][C:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3:2]!@;-[!#1:3][!#1:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 0.7\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[c:3]([s,o])[n:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[c:3]([s,o])[n:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3:2]!@;-[a:3]([s,o])[a:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[c:3]([cH,nX2H0])[cH,nX2H0:4] 1 0.0 -1 2.8 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
//"O=[C:1][NX3:2]!@;-[a:3]([nX2H0])[cH0:4]\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[a:3]([nX2H0])[cH1:4] -1 22.9 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"O=[C:1][NX3:2]!@;-[a:3]([nX2H0])[cH1:4] -1 21.4 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3:2]!@;-[a:3][nH:4] -1 53.3 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[c:3]([cH0]Cl)[cH:4] -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[c:3]([cH0]F)[cH:4] -1 11.4 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3:2]!@;-[a:3]([cH1])[aH0:4]!@;-O 1 38.2 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"O=[C:1][NX3:2]!@;-[a:3][aH0:4] 1 0.0 1 0.0 1 0.0 -1 0.7 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[c:3]([cH1])[cH1:4] 1 0.0 -1 2.1 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[c:3]([cH1])[cH1:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 "
|
||||
"0.8\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[c:3]([cH0])[cH:4] 1 0.0 1 2.4 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[c:3]([cH0])[cH:4] -1 9.7 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[c:3]([cH0])[cH0:4] 1 0.0 1 2.9 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[c:3]([cH0])[cH0:4] 1 0.0 1 2.9 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[a:3][a:4] 1 0.0 1 0.7 1 0.0 1 0.0 1 0.0 -1 0.3\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[a:3][a:4] 1 0.0 -1 3.1 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]([NX3H1]C)!@;-[NX3H1:3][!#1:4] -1 51.7 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([!NH1])!@;-[NX3H1:3]([H:4])(c([nX2H0])([nX2H0])) 1 100.0 1 "
|
||||
"0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([NH1])!@;-[NX3H1:3]([H:4])(c([nX2H0])([nX2H0])) -1 100.0 1 "
|
||||
"0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[NX3H1:3]([H:4])(c([nX2H0])([nX2H0])) 1 0.0 -1 100.0 1 0.0 "
|
||||
"1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[NX3H1:3]([H:4])(cn) 1 0.0 -1 50.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[O:1]=[C:2]!@;-[NX3H0:3]([a:4])[A] 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2](a)!@;-[NX3H0:3][!#1:4] 1 0.0 -1 13.9 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[NX3H0:3][!#1:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[NX3H1:3][!#1:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CH0:1][NX3:2]([CH0])!@;-[c:3][a:4] 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CH0:1][NX3:2]([CH1])!@;-[c:3][a:4] 1 0.0 1 0.0 1 0.0 -1 0.7 1 0.0 1 0.0\n"
|
||||
"[cH1,nX2H0:1][c:2]([cH1,nX2H0])!@;-[NX3&r:3][*:4] 1 0.0 -1 0.9 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[cH1,nX2H0:1][c:2]([cH1,nX2H0])!@;-[NX3&r:3][CX4&r:4] 1 0.0 -1 3.7 1 0.0 "
|
||||
"1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[NX3H1:3][CX4&r:4]([C&r])([C&r]) 1 0.0 -1 6.8 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[NX3:3][CX4:4] 1 0.0 1 -0.7 1 0.0 1 -0.5 1 0.0 1 "
|
||||
"-0.6\n"
|
||||
"[cH0:1][c:2]([cH,nX2H0])!@;-[NX3H1:3][CX4:4] 1 73.1 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH,nX2H0])!@;-[NX3H0:3][CX4:4] 1 0.0 1 0.0 1 0.8 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[NX3:3][CX4:4] 1 0.0 1 0.0 1 0.0 -1 2.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[c:1][c:2](c)!@;-[NX3:3][CX4:4] 1 0.0 -1 0.5 1 0.0 -1 0.8 1 0.0 1 -0.6\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[NX3:3][a:4] 1 0.0 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH0])!@;-[NX3:3][a:4] 1 0.0 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[NX3:3][a:4] 1 0.0 1 1.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][a:2]!@;-[NX3H0:3][CX3:4]=O 1 0.0 1 2.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][a:2]!@;-[NX3H1:3][CX3:4]=O -1 -1.6 -1 -0.6 1 0.6 -1 0.0 -1 0.1 1 "
|
||||
"-0.5\n"
|
||||
//"[nX2H0:1][a:2]([nX2H0])!@;-[NX3H0:3][CX3:4]=O\n"
|
||||
"[nX2H0:1][a:2]([!nX2H0])!@;-[NX3H1:3][CX3:4](A)=O 1 72.8 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][a:2]([!nX2H0])!@;-[NX3H1:3][CX3:4](a)=O 1 72.8 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][a:2]([!nX2H0])!@;-[NX3H1:3][CX3:4](C)=O 1 72.8 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][a:2]([!nX2H0])!@;-[NX3H1:3][CX3:4]([NX3H1])=O 1 72.8 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][a:2]([!nX2H0])!@;-[NX3H1:3][CX3:4]([OX2])=O 1 72.8 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][a:2]([!nX2H0])!@;-[NX3H1:3][CX3:4]=O 1 72.8 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[nX2H0:1][a:2]!@;-[NX3H1:3][CX3:4]=O 1 0.0 -1 34.4 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[a:1][a:2]!@;-[NX3H0:3][CX3:4]=O 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 0.6\n"
|
||||
"[a:1][a:2]!@;-[NX3H1:3][CX3:4]=O 1 0.0 -1 3.1 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][a:2]!@;-[NX3:3][CX4H0:4] 1 0.0 1 0.0 1 0.0 -1 4.0 1 0.0 1 0.0\n"
|
||||
"[a:1][a:2]!@;-[NX3:3][!#1:4] 1 0.0 1 -0.7 1 0.0 1 -0.5 1 0.0 1 -0.6\n"
|
||||
"[O:1]=[CX3:2]!@;-[nX3:3]([aH0:4])([aH0]) 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[nX3:3][aH1:4] 1 0.0 -1 18.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[nX3:3][aH0:4] 1 0.0 -1 6.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][CX3:2](=S)!@;-[NX3:3][a:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX3:2](=S)!@;-[NX3H0:3][!#1:4] 1 0.0 -1 22.5 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[!#1:1][CX3:2](=S)!@;-[NX3H1:3][!#1:4] 1 0.0 -1 20.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[!#1:1][CH2:2]!@;-[n:3][cH0:4] 1 0.0 1 6.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CH2:2]!@;-[n:3][a:4] 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX4:1][CX4H2:2]!@;-[NX3;N^3:3][CX4:4] 1 4.0 1 3.1 1 3.9 -1 -0.8 1 0.0 1 "
|
||||
"0.7\n"
|
||||
"[CX4:1][CX4H2:2]!@;-[NX3:3][CX4:4] 1 4.0 1 3.1 1 3.9 -1 -0.8 1 0.0 1 0.7\n"
|
||||
"[C:1][CX4H2:2]!@;-[NX3;N^3:3][C:4] 1 4.0 1 3.1 1 3.9 -1 -0.8 1 0.0 1 0.7\n"
|
||||
"[C:1][CX4H2:2]!@;-[NX3:3][C:4] 1 4.0 1 3.1 1 3.9 -1 -0.8 1 0.0 1 0.7\n"
|
||||
"[C:1][CX4:2]!@;-[NX3;N^3:3][C:4] 1 1.9 1 1.6 1 2.3 -1 -0.5 1 -0.1 1 0.2\n"
|
||||
"[C:1][CX4:2]!@;-[NX3:3][C:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[NX3H1;N^3:3][!#1:4] -1 -3.1 1 1.5 -1 -1.6 1 0.2 -1 "
|
||||
"-0.2 1 -0.2\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[NX3H1:3][!#1:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[NX3;N^3:3][!#1:4] 1 0.0 1 0.0 1 1.7 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[NX3:3][!#1:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[NX3;N^3:3][!#1:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[NX3:3][!#1:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][S:2](=O)(=O)!@;-[nX3:3]([aH1])[aH1:4] 1 0.0 1 20.5 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[!#1:1][S:2](=O)(=O)!@;-[nX3:3][aH0:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[!#1:1][S:2](=O)(=O)!@;-[nX3:3][a:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[c:1][S:2](=O)(=O)!@;-[NX2H0:3]-[*:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[*:1][S:2](=O)(=O)!@;-[NX3H0&r:3][*:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[C:1][S:2](=O)(=O)!@;-[NX3H1:3][c:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[C:1][S:2](=O)(=O)!@;-[NX3H0:3][c:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[c:1][S:2](=O)(=O)!@;-[NX3H1:3][C:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[c:1][S:2](=O)(=O)!@;-[NX3H0:3][C:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[c:1][S:2](=O)(=O)!@;-[NX3H1:3][c:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[c:1][S:2](=O)(=O)!@;-[NX3H0:3][c:4] 1 0.0 1 4.1 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][S:2](=O)(=O)!@;-[NX3H1:3][C:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[C:1][S:2](=O)(=O)!@;-[NX3H0:3][C:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[*:1][S:2](=O)(=O)!@;-[NX3H1:3][*:4] 1 0.0 1 1.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*:1][S:2](=O)(=O)!@;-[NX3H0:3][*:4] 1 0.0 1 3.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX3:2]!@;-[SX2:3][!#1:4] 1 0.0 -1 2.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[SX2:3][!#1:4] -1 -0.8 -1 -0.8 -1 -1.5 -1 0.4 1 -0.1 -1 "
|
||||
"0.3\n"
|
||||
"[!#1:1][CX3:2]!@;-[SX3:3][!#1:4] -1 5.5 1 8.7 -1 3.1 1 5.0 1 -1.7 1 1.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[SX3:3][!#1:4] 1 0.0 1 0.0 1 10.4 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX3:2]!@;-[SX4:3][!#1:4] 1 0.0 1 3.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[H:1][CX4H1:2]!@;-[SX4:3][!#1:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[SX4:3][!#1:4] 1 0.0 1 0.0 1 5.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[aH1:1][c:2]([aH1])!@;-[SX2:3][!#1:4] 1 0.0 1 0.0 1 0.0 -1 0.9 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[aH1:1][c:2]([aH0])!@;-[SX2:3][!#1:4] 1 0.0 1 0.0 1 0.0 -1 0.9 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[aH0:1][c:2]([aH0])!@;-[SX2:3][!#1:4] 1 -0.2 1 0.4 -1 -0.0 -1 1.9 -1 -0.0 "
|
||||
"1 -1.1\n"
|
||||
"[!#1:1][c:2]!@;-[SX2:3][!#1:4] 1 0.0 1 0.0 1 0.0 -1 4.4 1 0.0 1 0.0\n"
|
||||
"[!#1:1][c:2]!@;-[SX3:3][!#1:4] 1 0.0 1 1.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[aH1:1][c:2]([aH1])!@;-[SX4:3][!#1:4] 1 0.0 1 1.5 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[aH0:1][c:2]([aH1])!@;-[SX4:3][!#1:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[aH0:1][c:2]([aH0])!@;-[SX4:3][!#1:4] 1 0.0 1 3.3 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[!#1:1][c:2]!@;-[SX4:3][!#1:4] 1 0.0 1 1.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
//"[O:1]=[CX3:2]([NH1])!@;-[CH2:3][CX3:4]=O\n"
|
||||
"[O:1]=[CX3:2]([NH1])!@;-[CH2:3][C:4] -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[C]\\[CX3:1]([H])=[CX3:2]([C])!@;-\\[CH2:3][C:4] 1 0.0 1 0.0 -1 5.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[C]\\[CX3:1]([H])=[CX3:2]([H])!@;-\\[CH1:3](C)[C:4] 1 0.0 1 0.0 -1 5.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[C]\\[CX3:1]([H])=[CX3:2]([H])!@;-\\[CH2:3][C:4] 1 0.0 1 0.0 -1 5.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[C]\\[CX3:1]([H])=[CX3:2]([H])!@;-/[CH2:3][C:4] 1 0.0 1 0.0 -1 5.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[N:1][C:2](=O)!@;-[CX4H2:3][CX4H2:4] 1 4.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"N[C:2](=[O:1])!@;-[CH2:3][N:4] 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[CX4H1:3][H:4] 1 0.0 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0\n"
|
||||
"[CX3H2:1]=[CX3:2]!@;-[CX3:3]=[C:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH2:3][OX2:4] 1 0.0 1 0.0 -1 20.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH1:3](C)[C:4] 1 0.0 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH2:3][C:4] 1 0.0 1 0.0 -1 1.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH2:3][c:4] 1 0.0 1 0.0 -1 1.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH2:3][!#1:4] 1 0.0 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[CX3:3]=[O:4] 1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CX3:3]=[CX3:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*^2:1]~[C^2:2]([!H])!@;-[C^2:3]~[*^2:4] 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[*^2:1]~[C^2:2]!@;-[C^2:3]~[*^2:4] 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[CX4&r3:3]!@[!#1:4] -1 -0.7 -1 0.5 1 -0.3 -1 0.3 -1 -0.2 "
|
||||
"-1 0.2\n"
|
||||
"[O:1]=[CX3:2]!@;-[CX4H1&r3:3][H:4] 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OX2:1][CX4H2:2]!@;-[CX4H2:3][N&r:4] 1 0.0 1 0.0 1 5.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OX2:1][CX4H2:2]!@;-[CX4H2:3][N:4] 1 0.0 1 0.0 1 10.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OX2:1][CX4:2]!@;-[CX4:3][N:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OX2:1][CX4H2:2]!@;-[CX4H2:3][OX2:4] 1 0.0 1 0.0 1 10.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[OX2:1][CX4:2]!@;-[CX4:3][OX2:4] 1 0.0 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4&r:2]!@;-[CX4&r:3][!#1:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[CX4:3][!#1:4] 1 0.0 1 0.0 1 7.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OH1:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 2.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[NH1:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 2.1 -1 -0.1 -1 -1.0 1 -0.4 1 "
|
||||
"-0.1\n"
|
||||
"[O:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[N:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 1.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4H2:2]!@;-[CX3:3]=[O:4] 1 -1.0 1 -0.5 1 -0.2 1 -0.3 -1 0.0 1 "
|
||||
"-0.3\n"
|
||||
"[c:1][CX4H2:2]!@;-[CX3:3]=[O:4] -1 0.9 1 -0.3 1 -0.2 1 -0.5 -1 0.1 1 0.2\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[CX3:3]=[O:4] 1 0.0 1 -0.7 1 0.0 1 -0.5 1 0.0 1 -0.6\n"
|
||||
"[c:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 1 0.0 -1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
//"[C:1][CX4:2]!@;-[CX3:3]=[O:4]\n"
|
||||
//"[!#1:1][CX4:2]!@;-[CX3:3]=[O:4]\n"
|
||||
"[c:1][CX4:2]!@;-[CX3:3][C:4] 1 0.0 1 0.0 1 1.9 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4:2]!@;-[CX3:3][c:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][CX4:2]!@;-[CX3:3][c:4] -1 -4.4 1 4.0 -1 -3.9 -1 -1.0 1 0.6 -1 -0.4\n"
|
||||
"[C:1][CX4:2]!@;-[CX3:3][C:4] 1 0.0 1 0.0 1 1.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[CX3H0:3][!#1:4] 1 0.0 1 0.0 1 0.6 1 0.0 1 0.0 1 0.0\n"
|
||||
"[H:1][CX4H1:2]!@;-[CX3:3][!#1:4] -1 0.7 -1 0.5 1 0.3 -1 -0.3 1 0.0 1 "
|
||||
"-0.1\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[CX3:3][!#1:4] 1 0.0 1 0.0 1 0.0 -1 0.8 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[CX3:3][!#1:4] 1 0.0 1 0.0 1 0.6 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2]!@;-[c:3][c:4]!@c 1 0.1 1 0.9 1 0.1 -1 -0.4 1 0.0 -1 0.3\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[c:3]([cH0:4])[cH0] 1 0.0 1 3.6 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[c:3]([cH0:4])[cH1] 1 0.0 1 10.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[c:3]([cH0:4])[cH1] -1 -0.7 1 3.6 -1 -0.8 1 1.7 -1 "
|
||||
"-0.1 1 0.2\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[c:3]([cH1:4])[cH1] 1 -0.3 -1 -2.1 -1 -0.1 -1 -0.3 "
|
||||
"1 0.0 -1 0.5\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[c:3]([cH1:4])[cH1] 1 0.0 1 0.0 1 0.0 1 0.6 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[c:3]([cH1:4])[cH1] -1 -0.7 1 -8.0 1 0.0 1 4.4 1 "
|
||||
"0.0 1 -1.5\n"
|
||||
"[nX2H0:1][c:2]!@;-[c:3][nX3H1:4] 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]([!nX2H0])!@;-[c:3]([!nX2H0])[nX2H0:4] 1 100.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2](a(a)(a))!@;-[c:3][nX2H0:4] 1 30.0 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
//"[nX2H0:1][c:2](a([CX3H0]))!@;-[c:3](a([CX3H0]))[nX2H0:4] \n"
|
||||
"[nX2H0:1][c:2]!@;-[c:3][nX2H0:4] 1 0.0 -1 50.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2]!@;-[c:3][s,o,nX3H1:4] 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[c:3][nX2H0:4] 1 0.0 1 1.7 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]!@;-[c:3]([cH0])[nX2H0:4] -1 0.9 -1 -1.0 1 -0.8 -1 0.2 -1 0.3 "
|
||||
"1 -0.2\n"
|
||||
"[c:1][c:2]!@;-[c:3]([cH0])[nX2H0:4] 1 0.0 1 0.0 1 0.0 1 1.1 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2]([cH0])!@;-[c:3][nX2H0:4] 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2]!@;-[c:3][nX2H0:4] 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c&r5:2]!@;-[c&r5:3][c:4] 1 0.0 -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c&r6:2]!@;-[c&r5:3][c:4] 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c&r6:2]!@;-[c&r6:3][cH0:4] 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c&r6:2]!@;-[c&r6:3][c:4] 1 0.0 1 0.0 1 0.0 -1 0.5 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2]!@;-[c:3][c:4] 1 0.0 1 0.0 1 0.0 -1 0.5 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][a:4] 1 0.0 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][N,O,S:4] 1 0.0 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][CX3:4] 1 0.0 1 0.0 1 12.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][CX4:4] 1 0.0 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][*:4] 1 0.0 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][a:4] -1 -1.3 1 1.6 -1 -0.6 -1 0.6 1 -0.1 -1 "
|
||||
"0.3\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][CX3:4] -1 -1.3 1 1.6 -1 -0.6 -1 0.6 1 -0.1 -1 "
|
||||
"0.3\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX4H2:3][CX4H1:4]C(=O)(O) 1 0.0 1 4.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX4H2:3][CX4:4] 1 0.0 1 3.6 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][CX4:4] -1 -1.3 1 1.6 -1 -0.6 -1 0.6 1 -0.1 -1 "
|
||||
"0.3\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][N,O,S:4] 1 0.3 1 1.1 -1 -1.0 1 -0.6 -1 -0.5 1 "
|
||||
"0.1\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][!#1:4] -1 -1.3 1 1.6 -1 -0.6 -1 0.6 1 -0.1 -1 "
|
||||
"0.3\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][a:4] 1 0.9 1 1.2 1 0.6 1 0.4 1 0.0 1 0.1\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][CX4:4] 1 6.1 1 5.2 1 2.4 -1 -1.4 1 0.3 -1 0.1\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][CX3:4] 1 0.0 1 0.0 1 0.0 1 1.5 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][N,O,S:4] 1 0.0 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][H:4] 1 0.0 -1 4.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H0:3][a:4] 1 0.0 -1 -0.3 -1 -0.1 1 0.1 1 -0.0 -1 0.1\n"
|
||||
"[a:1][c:2]!@;-[CX4H0:3][CX3:4] 1 0.0 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H0:3][CX4:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 3.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H0:3][N,O:4] 1 0.0 -1 0.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H0:3][*:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 5.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H2:3][a:4] 1 0.0 1 1.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H2:3][CX3:4] 1 0.0 1 1.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H2:3][CX4:4] 1 0.0 1 1.0 1 0.0 -1 1.1 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H2:3][N,O:4] 1 0.0 1 0.0 1 0.0 -1 0.1 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H1:3][N,O:4] 1 0.0 1 0.0 1 0.0 1 0.5 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H1:3][a:4] 1 0.0 1 0.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H1:3][H:4] 1 0.0 -1 0.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[N:4][CX4H1])(N[CX4H1]) 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0 -1 5.0\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[N:4][CX4])(N[CX4]) 1 0.0 -1 0.6 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[NH0:4][CX4]) 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[N:4][!#1])(N[!#1]) 1 0.0 -1 0.6 1 0.0 1 0.3 1 0.0 "
|
||||
"-1 -0.1\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[N:4][!#1])(N~[!#1]) 1 0.0 1 -0.8 1 0.0 1 0.2 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[nX2H0:1][c:2]!@;-[C:3](=[N:4])(-[NH1,NH2]) 1 0.0 -1 26.9 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]!@;-[C:3](=[NH1,NH2:4]) 1 0.0 -1 100.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[C:3](=[N:4]) 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]!@;-[C:3](=[N:4]) 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[N:4]) 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3][a:4]C(=O)(O) 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 "
|
||||
"5.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3][a:4][CX3]=O 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 "
|
||||
"20.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3][nX3H1:4] 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3][nX2H0:4] 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3]([cH0])[cH0:4] 1 0.3 -1 -0.6 -1 0.1 -1 0.4 1 "
|
||||
"-0.0 -1 0.5\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3]([cH1])[cH0:4]([NH1,NH2]) 1 0.0 -1 30.0 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3]([cH1])[cH0:4] 1 0.0 -1 7.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3]([cH1])[cH1:4] 1 0.0 -1 7.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3][a:4] 1 0.0 -1 25.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1]([OH1])[a:2]!@;-[CX3:3](=[O:4])([NX3H0,CX4H0,c]) -1 14.8 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1]([NH1,NH2])[a:2]!@;-[CX3:3](=[O:4])([NX3H0,CX4H0,c]) -1 36.2 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
//"[c:1]([OH1])[c:2]!@;-[CX3:3](=[O:4])([NX3H0])\n"
|
||||
//"[c:1]([NH1,NH2])[c:2]!@;-[CX3:3](=[O:4])([NX3H0])\n"
|
||||
"[c:1]([OH1])[c:2]!@;-[CX3:3](=[O:4])([O]) 1 0.0 -1 100.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[c:1]([NH1,NH2])[c:2]!@;-[CX3:3](=[O:4])([O]) 1 0.0 -1 20.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[a:1]([OH1])[a:2]!@;-[CX3:3](=[O:4])([O]) 1 0.0 -1 100.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[a:1]([NH1,NH2])[a:2]!@;-[CX3:3](=[O:4])([O]) 1 0.0 -1 100.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[c:1]([OH1])[c:2]!@;-[CX3:3](=[O:4])([!O]) 1 0.0 -1 20.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[c:1]([NH1,NH2])[c:2]!@;-[CX3:3](=[O:4])([!O]) -1 36.5 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[a:1]([OH1])[a:2]!@;-[CX3:3](=[O:4])([!O]) 1 0.0 -1 100.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[a:1]([NH1,NH2])[a:2]!@;-[CX3:3](=[O:4])([!O]) -1 41.7 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[cH0:1]([CX3])[c:2]([cH1])!@;-[CX3:3](c)=[O:4] -1 3.1 -1 -3.3 -1 1.9 1 "
|
||||
"1.6 1 -0.3 1 0.1\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[CX3:3](c)=[O:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 "
|
||||
"5.0\n"
|
||||
"[cH0:1]([OH1])[c:2]([cH1])!@;-[CX3:3](c)=[O:4] -1 16.7 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[CX3:3](c)=[O:4] -1 1.0 1 0.0 -1 0.7 1 0.5 -1 -0.0 "
|
||||
"1 -0.3\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX3:3](c)=[O:4] -1 -0.1 -1 2.4 1 -0.4 -1 -1.0 1 "
|
||||
"0.1 -1 -0.5\n"
|
||||
"[a:1][a:2]!@;-[CX3:3](a)=[O:4] -1 -0.0 1 -0.9 -1 0.1 1 0.2 -1 0.0 -1 "
|
||||
"-0.3\n"
|
||||
"[s:1][c:2]!@;-[C:3]([NH1])=[O:4] -1 36.5 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1](Cl)[c:2]([cH1])!@;-[CX3:3]([NX3H1])=[O:4] 1 0.0 1 10.0 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1](F)[c:2]([cH1])!@;-[CX3:3]([NX3H1])=[O:4] 1 6.2 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[cH0:1]([OH0])[c:2]([cH1])!@;-[C:3](=O)[NH1:4] -1 60.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[cH0:1]([OH1])[c:2]([cH1])!@;-[C:3](=O)[NH1:4] 1 0.0 -1 15.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
//"[cH0:1][c:2]([cH1])!@;-[CX3:3]([NX3H1])=[O:4] 1 -0.2 1 -0.9 -1 -0.4 -1 " // 27.6.16 change in functional form
|
||||
//"-0.1 1 0.5 1 -0.8\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[CX3:3]([NX3H1])=[O:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.1 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[CX3:3]([NX3H0])=[O:4] 1 0.0 1 5.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[C:3]([NH1,NH2])=[O:4] 1 0.0 -1 0.5 1 0.0 1 0.0 1 " // 27.6. reduced from 1.6
|
||||
"0.0 1 0.0\n"
|
||||
//"[a:1][c:2]!@;-[C:3]([NH0])=[O:4]\n"
|
||||
"[a:1][c:2]!@;-[C:3]([NH1,NH2])=[O:4] 1 0.0 -1 2.4 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1](F)[c:2]([cH1])!@;-[CX3:3]=[O:4] 1 0.0 -1 1.8 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1](Cl)[c:2]([cH1])!@;-[CX3:3]=[O:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 " // 26.6.16 reduced from 10.0
|
||||
"2.0\n"
|
||||
"[nX3H1:1][a:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2](c)!@;-[CX3:3]([!O])=[O:4] 1 66.5 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[nX2H0:1][a:2]([nX2H0])!@;-[CX3:3]=[O:4] 1 0.0 -1 36.8 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[*^2]!@;-[cH0:1][c:2]([cH1])!@;-[CX3:3]=[O:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[CX3:3]=[O:4] 1 0.0 -1 2.0 1 0.0 1 0.0 1 0.0 1 " // 25.6.16 reduced from 10.0
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[CX3:3]=[O:4] 1 0.0 1 0.0 1 0.0 -1 3.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX3:3]([CX3H0])=[O:4] 1 0.0 -1 5.9 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX3:3]=[O:4] 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[a:1][a:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([nX2])!@;-[CX3:3]=[NX3:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH1:1][c:2]([nX3H1])!@;-[CX3:3]=[NX2:4] 1 97.4 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH1:1][c:2]([nX2])!@;-[CX3:3]=[NX2:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH1:1][c:2]([cH0]([OH1]))!@;-[CX3:3]=[NX2:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH0])!@;-[CX3:3]=[NX2:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX3:3]=[NX2:4] 1 0.0 -1 9.5 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[CX3:3]=[NX2:4] 1 0.0 1 -0.7 1 0.0 1 -0.5 1 0.0 1 "
|
||||
"-0.6\n"
|
||||
"[a:1][c:2]!@;-[CX3:3]=[CX3H0:4] 1 0.0 -1 0.7 1 0.0 1 0.6 1 0.0 1 -0.5\n"
|
||||
"[a:1][a:2]!@;-[CX3:3]=[CX3H2:4] 1 0.0 -1 1.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][a:2]!@;-[CX3:3]=[CX3H1:4] 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*:1][SX2:2]!@;-[SX2:3][*:4] 1 0.0 1 12.9 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
// ------
|
||||
// these patterns were added as part of the ET-DG work
|
||||
// non-aromatic double bonds
|
||||
//"[*:1][CX3:2]=[CX3:3][*:4] 1 0.0 -1 7.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*:1][X3,X2:2]=[X3,X2:3][*:4] 1 0.0 -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0\n";
|
||||
#include "torsionPreferences_v1.in"
|
||||
#include "torsionPreferences_v2.in"
|
||||
|
||||
//! A structure used to the experimental torsion patterns
|
||||
struct ExpTorsionAngle {
|
||||
@@ -638,7 +58,7 @@ class ExpTorsionAngleCollection {
|
||||
public:
|
||||
typedef std::vector<ExpTorsionAngle> ParamsVect;
|
||||
static const ExpTorsionAngleCollection *getParams(
|
||||
const std::string ¶mData = "");
|
||||
unsigned int version, const std::string ¶mData = "");
|
||||
ParamsVect::const_iterator begin() const { return d_params.begin(); };
|
||||
ParamsVect::const_iterator end() const { return d_params.end(); };
|
||||
ExpTorsionAngleCollection(const std::string ¶mData);
|
||||
@@ -653,21 +73,30 @@ typedef boost::flyweight<
|
||||
param_flyweight;
|
||||
|
||||
const ExpTorsionAngleCollection *ExpTorsionAngleCollection::getParams(
|
||||
const std::string ¶mData) {
|
||||
const ExpTorsionAngleCollection *res = &(param_flyweight(paramData).get());
|
||||
unsigned int version, const std::string ¶mData) {
|
||||
std::string params;
|
||||
if (paramData == "") {
|
||||
switch (version) {
|
||||
case 1:
|
||||
params = torsionPreferencesV1;
|
||||
break;
|
||||
case 2:
|
||||
params = torsionPreferencesV2;
|
||||
break;
|
||||
default:
|
||||
throw ValueErrorException("ETversion must be 1 or 2.");
|
||||
}
|
||||
} else {
|
||||
params = paramData;
|
||||
}
|
||||
const ExpTorsionAngleCollection *res = &(param_flyweight(params).get());
|
||||
return res;
|
||||
}
|
||||
|
||||
ExpTorsionAngleCollection::ExpTorsionAngleCollection(
|
||||
const std::string ¶mData) {
|
||||
boost::char_separator<char> tabSep(" ", "", boost::drop_empty_tokens);
|
||||
std::string params;
|
||||
if (paramData == "") {
|
||||
params = torsionPreferences;
|
||||
} else {
|
||||
params = paramData;
|
||||
}
|
||||
std::istringstream inStream(params);
|
||||
std::istringstream inStream(paramData);
|
||||
|
||||
std::string inLine = RDKit::getLine(inStream);
|
||||
while (!inStream.eof()) {
|
||||
@@ -709,7 +138,7 @@ void getExperimentalTorsions(
|
||||
std::vector<std::pair<std::vector<int>, std::vector<double> > >
|
||||
&expTorsionAngles,
|
||||
std::vector<std::vector<int> > &improperAtoms, bool useExpTorsions,
|
||||
bool useBasicKnowledge, bool verbose) {
|
||||
bool useBasicKnowledge, unsigned int version, bool verbose) {
|
||||
unsigned int nb = mol.getNumBonds();
|
||||
unsigned int na = mol.getNumAtoms();
|
||||
if (!na) {
|
||||
@@ -729,7 +158,7 @@ void getExperimentalTorsions(
|
||||
if (useExpTorsions) {
|
||||
// we set the torsion angles with experimental data
|
||||
const ExpTorsionAngleCollection *params =
|
||||
ExpTorsionAngleCollection::getParams();
|
||||
ExpTorsionAngleCollection::getParams(version);
|
||||
|
||||
// loop over patterns
|
||||
for (const auto ¶m : *params) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (C) 2015 Sereina Riniker
|
||||
// Copyright (C) 2017 Sereina Riniker
|
||||
//
|
||||
// @@ All Rights Reserved @@
|
||||
// This file is part of the RDKit.
|
||||
@@ -22,7 +22,7 @@ void getExperimentalTorsions(
|
||||
std::vector<std::pair<std::vector<int>, std::vector<double> > > &
|
||||
expTorsionAngles,
|
||||
std::vector<std::vector<int> > &improperAtoms, bool useExpTorsions = false,
|
||||
bool useBasicKnowledge = false, bool verbose = false);
|
||||
bool useBasicKnowledge = false, unsigned int version = 1, bool verbose = false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ void testTorsionPrefs() {
|
||||
|
||||
ForceFields::CrystalFF::getExperimentalTorsions(
|
||||
*mol, expTorsionAtoms, expTorsionAngles, improperAtoms, true, false,
|
||||
false);
|
||||
1, false);
|
||||
TEST_ASSERT(expTorsionAtoms.size() == 1);
|
||||
TEST_ASSERT(expTorsionAngles.size() == 1);
|
||||
TEST_ASSERT(expTorsionAtoms[0][0] == 0);
|
||||
@@ -143,7 +143,7 @@ void testTorsionPrefs() {
|
||||
|
||||
ForceFields::CrystalFF::getExperimentalTorsions(
|
||||
*mol, expTorsionAtoms, expTorsionAngles, improperAtoms, true, false,
|
||||
false);
|
||||
1, false);
|
||||
TEST_ASSERT(expTorsionAtoms.size() == 2);
|
||||
TEST_ASSERT(expTorsionAngles.size() == 2);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,592 @@
|
||||
/* SMARTS patterns for experimental torsion angle preferences
|
||||
* taken from J. Med. Chem. 56, 1026-2028 (2013)
|
||||
*
|
||||
* torsion-angle potential form:
|
||||
* V = V1*(1 + s1*cos(1x)) + V2*(1 + s2*cos(2x)) + V3*(1 + s3*cos(1x))
|
||||
* + V4*(1 + s4*cos(1x)) + V5*(1 + s5*cos(1x)) + V6*(1 + s6*cos(1x))
|
||||
*
|
||||
* format: [SMARTS, s1, V1, s2, V2, s3, V3, s4, V4, s5, V5, s6, V6]
|
||||
*/
|
||||
const std::string torsionPreferencesV1 =
|
||||
"[O:1]=[C:2]!@;-[O:3]~[CH0:4] -1 78.2 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[O:3]~[CH0:4] -1 78.2 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([N])!@;-[O:3]~[C:4] -1 79.1 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[O:3]~[C:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[O:3]~[!#1:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][O:2]!@;-[c:3]~[*:4] 1 0.0 1 0.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][O:2]!@;-[CX3:3]~[*:4] 1 0.0 1 0.0 1 0.0 -1 1.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][O:2]!@;-[CH1:3][H:4] -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][O:2]!@;-[CH2:3]~[C:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[H:1][CX4H1:2]!@;-[O:3][CX4:4] -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CH2:2]!@;-[O:3][CX4:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*:1][CX4:2]!@;-[O:3][CX3:4](=[!O]) 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1][CX4:2]!@;-[O:3][CX4:4] 1 0.0 1 0.0 1 8.8 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*:1][CX4:2]!@;-[O:3][CX4:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[O:3][S:4] 1 0.0 1 3.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH0])!@;-[O:3][S:4] 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][S:4] 1 0.0 1 11.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[O:3][c:4] 1 0.0 1 0.0 1 0.0 -1 0.5 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH0])!@;-[O:3][c:4] 1 0.0 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][c:4] 1 0.0 1 2.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][!C;!H:4] 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[O:3][!C;!H:4] 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[O:3][!C;!H:4] 1 0.0 1 0.0 1 0.0 -1 2.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH:1][c:2]([cH])!@;-[O:3][C:4](F)(F)[F] 1 0.0 1 30.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
//"[cH0:1][c:2]([cH0])!@;-[O:3][CX4:4]([!#1])([!#1])([!#1])\n"
|
||||
"[a:1][c:2]([a])!@;-[O:3][CX4H0:4] 1 0.0 1 0.0 1 0.0 -1 2.0 1 0.0 1 0.0\n"
|
||||
"[cH1,n:1][c:2]!@;-[O:3][CRH1:4] 1 0.0 -1 5.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1,n:1][c:2]!@;-[O:3][CH1:4] 1 0.0 -1 7.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]([cH0])!@;-[O:3][CX4H0:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
//"[cH0:1][c:2]([cH0])!@;-[O:3][CX4H0:4]\n"
|
||||
"[cH0:1][c:2]([nX2])!@;-[O:3][C:4] 1 110.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2:1][c:2]([nX2])!@;-[O:3][C:4] 1 0.0 -1 44.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2:1][c:2]([nX3])!@;-[O:3][C:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([nX3])!@;-[O:3][C:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([nX2])!@;-[O:3][C:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1]([CX3])[c:2]([cH1])!@;-[O:3][C:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[cH1:1][c:2](cO)!@;-[O:3][C:4] -1 61.9 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O[c:1][c:2](cO)!@;-[O:3][C:4] 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][C:4] 1 0.0 1 6.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[O:3][C:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[O:3][C:4] 1 0.0 -1 19.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[O:3][CX3H0:4] 1 0.0 1 1.9 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][!#1:4] 1 0.0 1 6.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[aH0:1][c:2]!@;-[OX2:3][!#1:4] 1 0.8 1 0.7 -1 -0.3 -1 2.5 -1 -0.1 1 -0.8\n"
|
||||
//"[cH1,nX3H1:1][c:2]([cH0])!@;-[O:3][CX4H0:4]\n"
|
||||
"[!#1:1][CX4H0:2]!@;-[OX2:3][!#1:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[H:1][CX4H1:2]!@;-[OX2:3][!#1:4] -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4H2:2]!@;-[OX2:3][c:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][CX4H2:2]!@;-[OX2:3][C:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4H2:2]!@;-[OX2:3][C:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][CX4H2:2]!@;-[OX2:3][c:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[OX2:3][c:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[OX2:3][C:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][CX4H2:2]!@;-[OX2:3][!#1:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4H2:2]!@;-[OX2:3][!#1:4] -1 -3.5 1 2.5 -1 -2.3 1 0.6 -1 -0.4 -1 "
|
||||
"0.4\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[OX2:3][!#1:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[OX2:3][!#1:4] -1 -3.5 1 2.5 -1 -2.3 1 0.6 -1 -0.4 -1 "
|
||||
"0.4\n"
|
||||
"O=[CX3:1][NX3H0:2](C)!@;-[CX4H2:3][C:4] 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[CX3:1][NX3H1:2]!@;-[CX4H2:3][C:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[S:1](=O)[NX3H0:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 1.9 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[S:1](=O)[NX3H1:2]!@;-[CX4H2:3][!#1:4] 1 17.9 -1 -13.3 1 9.2 1 4.7 -1 "
|
||||
"-2.3 -1 -0.9\n"
|
||||
"O=[S:1](=O)[NX3H0:2]!@;-[CX4H1:3][H:4] 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[S:1](=O)[NX3H1:2]!@;-[CX4H1:3][H:4] -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[S:1](=O)[NH1:2]!@;-[c:3][nX2:4] 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[S:1](=O)[NH0:2]!@;-[c:3]([cH1])[cH1:4] 1 0.0 1 13.3 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"O=[S:1](=O)[NH1:2]!@;-[c:3]([cH1])[cH1:4] 1 0.0 1 0.0 1 0.0 1 0.9 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[S:1](=O)[NH0:2]!@;-[c:3]([cH1])[cH0:4] 1 0.0 1 50.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"O=[S:1](=O)[NH1:2]!@;-[c:3]([cH1])[cH0:4] 1 1.9 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[S:1](=O)[NH0:2]!@;-[c:3]([cH0])[cH0:4] 1 0.0 1 17.8 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"O=[S:1](=O)[NH1:2]!@;-[c:3]([cH0])[cH0:4] 1 0.0 1 10.6 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"O=[S:1](=O)[N:2]!@;-[c:3][a:4] 1 0.0 1 0.0 1 0.0 -1 2.0 1 0.0 1 0.0\n"
|
||||
"[O-:1][N+:2](=O)!@;-[c:3]([cH,nX2H0])[cH,nX2H0:4] 1 0.0 -1 5.0 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[O-:1][N+:2](=O)!@;-[c:3]([cH0])[cH,nX2H0:4] -1 -0.2 1 -5.7 1 -0.2 -1 "
|
||||
"-3.2 1 0.1 1 -1.3\n"
|
||||
"[O-:1][N+:2](=O)!@;-[c:3]([cH0])[cH0:4] -1 -0.4 1 0.3 1 -0.1 -1 0.6 1 "
|
||||
"-0.1 -1 0.2\n"
|
||||
"[O-:1][N+:2](=O)!@;-[c:3][a:4] 1 0.0 -1 11.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[NX3H1:3][C,c:4] 1 0.0 1 0.0 1 0.0 -1 0.8 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[NX3H1:3][C,c:4] 1 15.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]([nX2H0])!@;-[NX3H1:3][C,c:4] 1 40.0 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[cH0:1][c:2]([nX3H1])!@;-[NX3H1:3][C,c:4] 1 50.0 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[NX3H1:3][C,c:4] 1 0.0 -1 1.4 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH1:1][c:2]([nX3H1])!@;-[NX3H1:3][C,c:4] 1 0.0 -1 100.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]([nX2H0])!@;-[NX3H1:3][C,c:4] 1 0.0 -1 15.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]([nX3H1])!@;-[NX3H1:3][C,c:4] 1 0.0 -1 27.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[a:1][a:2]!@;-[NH1:3][C,c:4] 1 0.0 -1 6.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][NH:2]!@;-[C:3](=[NH2:4])[NH2] 1 0.0 -1 100.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[NH2][C:1](=[NH2])[NH:2]!@;-[CH2:3][C:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[a:1][c:2]!@;-[NX2:3]=[C:4]([NX3])n -1 -0.1 1 1.9 -1 -0.1 -1 -1.9 -1 0.1 "
|
||||
"1 0.0\n"
|
||||
"[nX2:1][c:2]!@;-[NX2:3]=[C:4]([NX3])N 1 0.0 -1 6.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]!@;-[NX2:3]=[C:4]([NX3])N -1 -0.1 1 1.9 -1 -0.1 -1 -1.9 -1 "
|
||||
"0.1 1 0.0\n"
|
||||
"[cH1:1][c:2]!@;-[NX2:3]=[C:4]([NX3])N 1 -0.4 -1 -0.9 1 -0.4 1 1.1 1 -0.2 "
|
||||
"1 -0.1\n"
|
||||
"[O:1]=[C:2]([NH1])!@;-[NX3H1:3](C=O)[H:4] -1 144.7 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[NX3H1:3](C=O)[H:4] 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[NX3:3](C=O)[*:4] 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX3:3]=[NX2:4] 1 63.8 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[CX3:3]=[*H0:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[CX3:3]=[*H1:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
//"O=[C:1][NX3H0:2]!@;-[CX3:3]=[*H2:4] \n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX3:3]=[*H2:4] 1 0.0 -1 68.5 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX3:3]=[*H1:4] 1 0.0 1 0.0 -1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX3:3]=[*H0:4] 1 0.0 -1 39.4 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[CX3H1:3]=[*:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX3H1:3]=[*:4] 1 84.1 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX3:3]=[*:4] 1 0.0 -1 33.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[CX4H2:3][c:4]([cH,nX2H0])[cH,nX2H0] 1 0.0 1 3.0 1 "
|
||||
"0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX4H2:3][c:4]([cH,nX2H0])[cH,nX2H0] -1 -1.3 1 1.6 -1 "
|
||||
"-0.6 -1 0.6 1 -0.1 -1 0.3\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 15.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[CX4H1:3][H:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX4H1:3][H:4] -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[CX4H0:3][C:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[CX4H0:3][C:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3:2]!@;-[!#1:3][!#1:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 0.7\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[c:3]([s,o])[n:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[c:3]([s,o])[n:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3:2]!@;-[a:3]([s,o])[a:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[c:3]([cH,nX2H0])[cH,nX2H0:4] 1 0.0 -1 2.8 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
//"O=[C:1][NX3:2]!@;-[a:3]([nX2H0])[cH0:4]\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[a:3]([nX2H0])[cH1:4] -1 22.9 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"O=[C:1][NX3:2]!@;-[a:3]([nX2H0])[cH1:4] -1 21.4 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3:2]!@;-[a:3][nH:4] -1 53.3 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[c:3]([cH0]Cl)[cH:4] -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[c:3]([cH0]F)[cH:4] -1 11.4 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3:2]!@;-[a:3]([cH1])[aH0:4]!@;-O 1 38.2 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"O=[C:1][NX3:2]!@;-[a:3][aH0:4] 1 0.0 1 0.0 1 0.0 -1 0.7 1 0.0 1 0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[c:3]([cH1])[cH1:4] 1 0.0 -1 2.1 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[c:3]([cH1])[cH1:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 "
|
||||
"0.8\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[c:3]([cH0])[cH:4] 1 0.0 1 2.4 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[c:3]([cH0])[cH:4] -1 9.7 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[c:3]([cH0])[cH0:4] 1 0.0 1 2.9 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[c:3]([cH0])[cH0:4] 1 0.0 1 2.9 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"O=[C:1][NX3H0:2]!@;-[a:3][a:4] 1 0.0 1 0.7 1 0.0 1 0.0 1 0.0 -1 0.3\n"
|
||||
"O=[C:1][NX3H1:2]!@;-[a:3][a:4] 1 0.0 -1 3.1 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]([NX3H1]C)!@;-[NX3H1:3][!#1:4] -1 51.7 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([!NH1])!@;-[NX3H1:3]([H:4])(c([nX2H0])([nX2H0])) 1 100.0 1 "
|
||||
"0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([NH1])!@;-[NX3H1:3]([H:4])(c([nX2H0])([nX2H0])) -1 100.0 1 "
|
||||
"0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[NX3H1:3]([H:4])(c([nX2H0])([nX2H0])) 1 0.0 -1 100.0 1 0.0 "
|
||||
"1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[NX3H1:3]([H:4])(cn) 1 0.0 -1 50.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[O:1]=[C:2]!@;-[NX3H0:3]([a:4])[A] 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2](a)!@;-[NX3H0:3][!#1:4] 1 0.0 -1 13.9 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[NX3H0:3][!#1:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[NX3H1:3][!#1:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CH0:1][NX3:2]([CH0])!@;-[c:3][a:4] 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CH0:1][NX3:2]([CH1])!@;-[c:3][a:4] 1 0.0 1 0.0 1 0.0 -1 0.7 1 0.0 1 0.0\n"
|
||||
"[cH1,nX2H0:1][c:2]([cH1,nX2H0])!@;-[NX3&r:3][*:4] 1 0.0 -1 0.9 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[cH1,nX2H0:1][c:2]([cH1,nX2H0])!@;-[NX3&r:3][CX4&r:4] 1 0.0 -1 3.7 1 0.0 "
|
||||
"1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[NX3H1:3][CX4&r:4]([C&r])([C&r]) 1 0.0 -1 6.8 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[NX3:3][CX4:4] 1 0.0 1 -0.7 1 0.0 1 -0.5 1 0.0 1 "
|
||||
"-0.6\n"
|
||||
"[cH0:1][c:2]([cH,nX2H0])!@;-[NX3H1:3][CX4:4] 1 73.1 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH,nX2H0])!@;-[NX3H0:3][CX4:4] 1 0.0 1 0.0 1 0.8 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[NX3:3][CX4:4] 1 0.0 1 0.0 1 0.0 -1 2.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[c:1][c:2](c)!@;-[NX3:3][CX4:4] 1 0.0 -1 0.5 1 0.0 -1 0.8 1 0.0 1 -0.6\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[NX3:3][a:4] 1 0.0 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH0])!@;-[NX3:3][a:4] 1 0.0 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[NX3:3][a:4] 1 0.0 1 1.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][a:2]!@;-[NX3H0:3][CX3:4]=O 1 0.0 1 2.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][a:2]!@;-[NX3H1:3][CX3:4]=O -1 -1.6 -1 -0.6 1 0.6 -1 0.0 -1 0.1 1 "
|
||||
"-0.5\n"
|
||||
//"[nX2H0:1][a:2]([nX2H0])!@;-[NX3H0:3][CX3:4]=O\n"
|
||||
"[nX2H0:1][a:2]([!nX2H0])!@;-[NX3H1:3][CX3:4](A)=O 1 72.8 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][a:2]([!nX2H0])!@;-[NX3H1:3][CX3:4](a)=O 1 72.8 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][a:2]([!nX2H0])!@;-[NX3H1:3][CX3:4](C)=O 1 72.8 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][a:2]([!nX2H0])!@;-[NX3H1:3][CX3:4]([NX3H1])=O 1 72.8 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][a:2]([!nX2H0])!@;-[NX3H1:3][CX3:4]([OX2])=O 1 72.8 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][a:2]([!nX2H0])!@;-[NX3H1:3][CX3:4]=O 1 72.8 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[nX2H0:1][a:2]!@;-[NX3H1:3][CX3:4]=O 1 0.0 -1 34.4 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[a:1][a:2]!@;-[NX3H0:3][CX3:4]=O 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 0.6\n"
|
||||
"[a:1][a:2]!@;-[NX3H1:3][CX3:4]=O 1 0.0 -1 3.1 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][a:2]!@;-[NX3:3][CX4H0:4] 1 0.0 1 0.0 1 0.0 -1 4.0 1 0.0 1 0.0\n"
|
||||
"[a:1][a:2]!@;-[NX3:3][!#1:4] 1 0.0 1 -0.7 1 0.0 1 -0.5 1 0.0 1 -0.6\n"
|
||||
"[O:1]=[CX3:2]!@;-[nX3:3]([aH0:4])([aH0]) 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[nX3:3][aH1:4] 1 0.0 -1 18.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[nX3:3][aH0:4] 1 0.0 -1 6.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][CX3:2](=S)!@;-[NX3:3][a:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX3:2](=S)!@;-[NX3H0:3][!#1:4] 1 0.0 -1 22.5 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[!#1:1][CX3:2](=S)!@;-[NX3H1:3][!#1:4] 1 0.0 -1 20.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[!#1:1][CH2:2]!@;-[n:3][cH0:4] 1 0.0 1 6.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CH2:2]!@;-[n:3][a:4] 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX4:1][CX4H2:2]!@;-[NX3;N^3:3][CX4:4] 1 4.0 1 3.1 1 3.9 -1 -0.8 1 0.0 1 "
|
||||
"0.7\n"
|
||||
"[CX4:1][CX4H2:2]!@;-[NX3:3][CX4:4] 1 4.0 1 3.1 1 3.9 -1 -0.8 1 0.0 1 0.7\n"
|
||||
"[C:1][CX4H2:2]!@;-[NX3;N^3:3][C:4] 1 4.0 1 3.1 1 3.9 -1 -0.8 1 0.0 1 0.7\n"
|
||||
"[C:1][CX4H2:2]!@;-[NX3:3][C:4] 1 4.0 1 3.1 1 3.9 -1 -0.8 1 0.0 1 0.7\n"
|
||||
"[C:1][CX4:2]!@;-[NX3;N^3:3][C:4] 1 1.9 1 1.6 1 2.3 -1 -0.5 1 -0.1 1 0.2\n"
|
||||
"[C:1][CX4:2]!@;-[NX3:3][C:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[NX3H1;N^3:3][!#1:4] -1 -3.1 1 1.5 -1 -1.6 1 0.2 -1 "
|
||||
"-0.2 1 -0.2\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[NX3H1:3][!#1:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[NX3;N^3:3][!#1:4] 1 0.0 1 0.0 1 1.7 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[NX3:3][!#1:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[NX3;N^3:3][!#1:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[NX3:3][!#1:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][S:2](=O)(=O)!@;-[nX3:3]([aH1])[aH1:4] 1 0.0 1 20.5 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[!#1:1][S:2](=O)(=O)!@;-[nX3:3][aH0:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[!#1:1][S:2](=O)(=O)!@;-[nX3:3][a:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[c:1][S:2](=O)(=O)!@;-[NX2H0:3]-[*:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[*:1][S:2](=O)(=O)!@;-[NX3H0&r:3][*:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[C:1][S:2](=O)(=O)!@;-[NX3H1:3][c:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[C:1][S:2](=O)(=O)!@;-[NX3H0:3][c:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[c:1][S:2](=O)(=O)!@;-[NX3H1:3][C:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[c:1][S:2](=O)(=O)!@;-[NX3H0:3][C:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[c:1][S:2](=O)(=O)!@;-[NX3H1:3][c:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[c:1][S:2](=O)(=O)!@;-[NX3H0:3][c:4] 1 0.0 1 4.1 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][S:2](=O)(=O)!@;-[NX3H1:3][C:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[C:1][S:2](=O)(=O)!@;-[NX3H0:3][C:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[*:1][S:2](=O)(=O)!@;-[NX3H1:3][*:4] 1 0.0 1 1.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*:1][S:2](=O)(=O)!@;-[NX3H0:3][*:4] 1 0.0 1 3.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX3:2]!@;-[SX2:3][!#1:4] 1 0.0 -1 2.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[SX2:3][!#1:4] -1 -0.8 -1 -0.8 -1 -1.5 -1 0.4 1 -0.1 -1 "
|
||||
"0.3\n"
|
||||
"[!#1:1][CX3:2]!@;-[SX3:3][!#1:4] -1 5.5 1 8.7 -1 3.1 1 5.0 1 -1.7 1 1.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[SX3:3][!#1:4] 1 0.0 1 0.0 1 10.4 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX3:2]!@;-[SX4:3][!#1:4] 1 0.0 1 3.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[H:1][CX4H1:2]!@;-[SX4:3][!#1:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[SX4:3][!#1:4] 1 0.0 1 0.0 1 5.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[aH1:1][c:2]([aH1])!@;-[SX2:3][!#1:4] 1 0.0 1 0.0 1 0.0 -1 0.9 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[aH1:1][c:2]([aH0])!@;-[SX2:3][!#1:4] 1 0.0 1 0.0 1 0.0 -1 0.9 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[aH0:1][c:2]([aH0])!@;-[SX2:3][!#1:4] 1 -0.2 1 0.4 -1 -0.0 -1 1.9 -1 -0.0 "
|
||||
"1 -1.1\n"
|
||||
"[!#1:1][c:2]!@;-[SX2:3][!#1:4] 1 0.0 1 0.0 1 0.0 -1 4.4 1 0.0 1 0.0\n"
|
||||
"[!#1:1][c:2]!@;-[SX3:3][!#1:4] 1 0.0 1 1.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[aH1:1][c:2]([aH1])!@;-[SX4:3][!#1:4] 1 0.0 1 1.5 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[aH0:1][c:2]([aH1])!@;-[SX4:3][!#1:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[aH0:1][c:2]([aH0])!@;-[SX4:3][!#1:4] 1 0.0 1 3.3 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[!#1:1][c:2]!@;-[SX4:3][!#1:4] 1 0.0 1 1.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
//"[O:1]=[CX3:2]([NH1])!@;-[CH2:3][CX3:4]=O\n"
|
||||
"[O:1]=[CX3:2]([NH1])!@;-[CH2:3][C:4] -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[C]\\[CX3:1]([H])=[CX3:2]([C])!@;-\\[CH2:3][C:4] 1 0.0 1 0.0 -1 5.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[C]\\[CX3:1]([H])=[CX3:2]([H])!@;-\\[CH1:3](C)[C:4] 1 0.0 1 0.0 -1 5.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[C]\\[CX3:1]([H])=[CX3:2]([H])!@;-\\[CH2:3][C:4] 1 0.0 1 0.0 -1 5.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[C]\\[CX3:1]([H])=[CX3:2]([H])!@;-/[CH2:3][C:4] 1 0.0 1 0.0 -1 5.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[N:1][C:2](=O)!@;-[CX4H2:3][CX4H2:4] 1 4.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"N[C:2](=[O:1])!@;-[CH2:3][N:4] 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[CX4H1:3][H:4] 1 0.0 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0\n"
|
||||
"[CX3H2:1]=[CX3:2]!@;-[CX3:3]=[C:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH2:3][OX2:4] 1 0.0 1 0.0 -1 20.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH1:3](C)[C:4] 1 0.0 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH2:3][C:4] 1 0.0 1 0.0 -1 1.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH2:3][c:4] 1 0.0 1 0.0 -1 1.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH2:3][!#1:4] 1 0.0 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[CX3:3]=[O:4] 1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CX3:3]=[CX3:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*^2:1]~[C^2:2]([!H])!@;-[C^2:3]~[*^2:4] 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[*^2:1]~[C^2:2]!@;-[C^2:3]~[*^2:4] 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[CX4&r3:3]!@[!#1:4] -1 -0.7 -1 0.5 1 -0.3 -1 0.3 -1 -0.2 "
|
||||
"-1 0.2\n"
|
||||
"[O:1]=[CX3:2]!@;-[CX4H1&r3:3][H:4] 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OX2:1][CX4H2:2]!@;-[CX4H2:3][N&r:4] 1 0.0 1 0.0 1 5.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OX2:1][CX4H2:2]!@;-[CX4H2:3][N:4] 1 0.0 1 0.0 1 10.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OX2:1][CX4:2]!@;-[CX4:3][N:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OX2:1][CX4H2:2]!@;-[CX4H2:3][OX2:4] 1 0.0 1 0.0 1 10.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[OX2:1][CX4:2]!@;-[CX4:3][OX2:4] 1 0.0 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4&r:2]!@;-[CX4&r:3][!#1:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[CX4:3][!#1:4] 1 0.0 1 0.0 1 7.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OH1:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 2.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[NH1:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 2.1 -1 -0.1 -1 -1.0 1 -0.4 1 "
|
||||
"-0.1\n"
|
||||
"[O:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[N:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 1.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4H2:2]!@;-[CX3:3]=[O:4] 1 -1.0 1 -0.5 1 -0.2 1 -0.3 -1 0.0 1 "
|
||||
"-0.3\n"
|
||||
"[c:1][CX4H2:2]!@;-[CX3:3]=[O:4] -1 0.9 1 -0.3 1 -0.2 1 -0.5 -1 0.1 1 0.2\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[CX3:3]=[O:4] 1 0.0 1 -0.7 1 0.0 1 -0.5 1 0.0 1 -0.6\n"
|
||||
"[c:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 1 0.0 -1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
//"[C:1][CX4:2]!@;-[CX3:3]=[O:4]\n"
|
||||
//"[!#1:1][CX4:2]!@;-[CX3:3]=[O:4]\n"
|
||||
"[c:1][CX4:2]!@;-[CX3:3][C:4] 1 0.0 1 0.0 1 1.9 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4:2]!@;-[CX3:3][c:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][CX4:2]!@;-[CX3:3][c:4] -1 -4.4 1 4.0 -1 -3.9 -1 -1.0 1 0.6 -1 -0.4\n"
|
||||
"[C:1][CX4:2]!@;-[CX3:3][C:4] 1 0.0 1 0.0 1 1.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[CX3H0:3][!#1:4] 1 0.0 1 0.0 1 0.6 1 0.0 1 0.0 1 0.0\n"
|
||||
"[H:1][CX4H1:2]!@;-[CX3:3][!#1:4] -1 0.7 -1 0.5 1 0.3 -1 -0.3 1 0.0 1 "
|
||||
"-0.1\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[CX3:3][!#1:4] 1 0.0 1 0.0 1 0.0 -1 0.8 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[CX3:3][!#1:4] 1 0.0 1 0.0 1 0.6 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2]!@;-[c:3][c:4]!@c 1 0.1 1 0.9 1 0.1 -1 -0.4 1 0.0 -1 0.3\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[c:3]([cH0:4])[cH0] 1 0.0 1 3.6 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[c:3]([cH0:4])[cH1] 1 0.0 1 10.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[c:3]([cH0:4])[cH1] -1 -0.7 1 3.6 -1 -0.8 1 1.7 -1 "
|
||||
"-0.1 1 0.2\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[c:3]([cH1:4])[cH1] 1 -0.3 -1 -2.1 -1 -0.1 -1 -0.3 "
|
||||
"1 0.0 -1 0.5\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[c:3]([cH1:4])[cH1] 1 0.0 1 0.0 1 0.0 1 0.6 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[c:3]([cH1:4])[cH1] -1 -0.7 1 -8.0 1 0.0 1 4.4 1 "
|
||||
"0.0 1 -1.5\n"
|
||||
"[nX2H0:1][c:2]!@;-[c:3][nX3H1:4] 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]([!nX2H0])!@;-[c:3]([!nX2H0])[nX2H0:4] 1 100.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2](a(a)(a))!@;-[c:3][nX2H0:4] 1 30.0 1 0.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
//"[nX2H0:1][c:2](a([CX3H0]))!@;-[c:3](a([CX3H0]))[nX2H0:4] \n"
|
||||
"[nX2H0:1][c:2]!@;-[c:3][nX2H0:4] 1 0.0 -1 50.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2]!@;-[c:3][s,o,nX3H1:4] 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[c:3][nX2H0:4] 1 0.0 1 1.7 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]!@;-[c:3]([cH0])[nX2H0:4] -1 0.9 -1 -1.0 1 -0.8 -1 0.2 -1 0.3 "
|
||||
"1 -0.2\n"
|
||||
"[c:1][c:2]!@;-[c:3]([cH0])[nX2H0:4] 1 0.0 1 0.0 1 0.0 1 1.1 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2]([cH0])!@;-[c:3][nX2H0:4] 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2]!@;-[c:3][nX2H0:4] 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c&r5:2]!@;-[c&r5:3][c:4] 1 0.0 -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c&r6:2]!@;-[c&r5:3][c:4] 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c&r6:2]!@;-[c&r6:3][cH0:4] 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c&r6:2]!@;-[c&r6:3][c:4] 1 0.0 1 0.0 1 0.0 -1 0.5 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2]!@;-[c:3][c:4] 1 0.0 1 0.0 1 0.0 -1 0.5 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][a:4] 1 0.0 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][N,O,S:4] 1 0.0 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][CX3:4] 1 0.0 1 0.0 1 12.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][CX4:4] 1 0.0 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][*:4] 1 0.0 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][a:4] -1 -1.3 1 1.6 -1 -0.6 -1 0.6 1 -0.1 -1 "
|
||||
"0.3\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][CX3:4] -1 -1.3 1 1.6 -1 -0.6 -1 0.6 1 -0.1 -1 "
|
||||
"0.3\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX4H2:3][CX4H1:4]C(=O)(O) 1 0.0 1 4.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX4H2:3][CX4:4] 1 0.0 1 3.6 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][CX4:4] -1 -1.3 1 1.6 -1 -0.6 -1 0.6 1 -0.1 -1 "
|
||||
"0.3\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][N,O,S:4] 1 0.3 1 1.1 -1 -1.0 1 -0.6 -1 -0.5 1 "
|
||||
"0.1\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][!#1:4] -1 -1.3 1 1.6 -1 -0.6 -1 0.6 1 -0.1 -1 "
|
||||
"0.3\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][a:4] 1 0.9 1 1.2 1 0.6 1 0.4 1 0.0 1 0.1\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][CX4:4] 1 6.1 1 5.2 1 2.4 -1 -1.4 1 0.3 -1 0.1\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][CX3:4] 1 0.0 1 0.0 1 0.0 1 1.5 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][N,O,S:4] 1 0.0 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][H:4] 1 0.0 -1 4.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H0:3][a:4] 1 0.0 -1 -0.3 -1 -0.1 1 0.1 1 -0.0 -1 0.1\n"
|
||||
"[a:1][c:2]!@;-[CX4H0:3][CX3:4] 1 0.0 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H0:3][CX4:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 3.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H0:3][N,O:4] 1 0.0 -1 0.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H0:3][*:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 5.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H2:3][a:4] 1 0.0 1 1.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H2:3][CX3:4] 1 0.0 1 1.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H2:3][CX4:4] 1 0.0 1 1.0 1 0.0 -1 1.1 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H2:3][N,O:4] 1 0.0 1 0.0 1 0.0 -1 0.1 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H1:3][N,O:4] 1 0.0 1 0.0 1 0.0 1 0.5 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H1:3][a:4] 1 0.0 1 0.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H1:3][H:4] 1 0.0 -1 0.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[N:4][CX4H1])(N[CX4H1]) 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0 -1 5.0\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[N:4][CX4])(N[CX4]) 1 0.0 -1 0.6 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[NH0:4][CX4]) 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[N:4][!#1])(N[!#1]) 1 0.0 -1 0.6 1 0.0 1 0.3 1 0.0 "
|
||||
"-1 -0.1\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[N:4][!#1])(N~[!#1]) 1 0.0 1 -0.8 1 0.0 1 0.2 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[nX2H0:1][c:2]!@;-[C:3](=[N:4])(-[NH1,NH2]) 1 0.0 -1 26.9 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]!@;-[C:3](=[NH1,NH2:4]) 1 0.0 -1 100.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[C:3](=[N:4]) 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]!@;-[C:3](=[N:4]) 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[N:4]) 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3][a:4]C(=O)(O) 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 "
|
||||
"5.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3][a:4][CX3]=O 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 "
|
||||
"20.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3][nX3H1:4] 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3][nX2H0:4] 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3]([cH0])[cH0:4] 1 0.3 -1 -0.6 -1 0.1 -1 0.4 1 "
|
||||
"-0.0 -1 0.5\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3]([cH1])[cH0:4]([NH1,NH2]) 1 0.0 -1 30.0 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3]([cH1])[cH0:4] 1 0.0 -1 7.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3]([cH1])[cH1:4] 1 0.0 -1 7.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3][a:4] 1 0.0 -1 25.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1]([OH1])[a:2]!@;-[CX3:3](=[O:4])([NX3H0,CX4H0,c]) -1 14.8 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1]([NH1,NH2])[a:2]!@;-[CX3:3](=[O:4])([NX3H0,CX4H0,c]) -1 36.2 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
//"[c:1]([OH1])[c:2]!@;-[CX3:3](=[O:4])([NX3H0])\n"
|
||||
//"[c:1]([NH1,NH2])[c:2]!@;-[CX3:3](=[O:4])([NX3H0])\n"
|
||||
"[c:1]([OH1])[c:2]!@;-[CX3:3](=[O:4])([O]) 1 0.0 -1 100.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[c:1]([NH1,NH2])[c:2]!@;-[CX3:3](=[O:4])([O]) 1 0.0 -1 20.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[a:1]([OH1])[a:2]!@;-[CX3:3](=[O:4])([O]) 1 0.0 -1 100.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[a:1]([NH1,NH2])[a:2]!@;-[CX3:3](=[O:4])([O]) 1 0.0 -1 100.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[c:1]([OH1])[c:2]!@;-[CX3:3](=[O:4])([!O]) 1 0.0 -1 20.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[c:1]([NH1,NH2])[c:2]!@;-[CX3:3](=[O:4])([!O]) -1 36.5 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[a:1]([OH1])[a:2]!@;-[CX3:3](=[O:4])([!O]) 1 0.0 -1 100.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[a:1]([NH1,NH2])[a:2]!@;-[CX3:3](=[O:4])([!O]) -1 41.7 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[cH0:1]([CX3])[c:2]([cH1])!@;-[CX3:3](c)=[O:4] -1 3.1 -1 -3.3 -1 1.9 1 "
|
||||
"1.6 1 -0.3 1 0.1\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[CX3:3](c)=[O:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 "
|
||||
"5.0\n"
|
||||
"[cH0:1]([OH1])[c:2]([cH1])!@;-[CX3:3](c)=[O:4] -1 16.7 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[CX3:3](c)=[O:4] -1 1.0 1 0.0 -1 0.7 1 0.5 -1 -0.0 "
|
||||
"1 -0.3\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX3:3](c)=[O:4] -1 -0.1 -1 2.4 1 -0.4 -1 -1.0 1 "
|
||||
"0.1 -1 -0.5\n"
|
||||
"[a:1][a:2]!@;-[CX3:3](a)=[O:4] -1 -0.0 1 -0.9 -1 0.1 1 0.2 -1 0.0 -1 "
|
||||
"-0.3\n"
|
||||
"[s:1][c:2]!@;-[C:3]([NH1])=[O:4] -1 36.5 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1](Cl)[c:2]([cH1])!@;-[CX3:3]([NX3H1])=[O:4] 1 0.0 1 10.0 1 0.0 1 "
|
||||
"0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1](F)[c:2]([cH1])!@;-[CX3:3]([NX3H1])=[O:4] 1 6.2 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[cH0:1]([OH0])[c:2]([cH1])!@;-[C:3](=O)[NH1:4] -1 60.0 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
"[cH0:1]([OH1])[c:2]([cH1])!@;-[C:3](=O)[NH1:4] 1 0.0 -1 15.0 1 0.0 1 0.0 "
|
||||
"1 0.0 1 0.0\n"
|
||||
//"[cH0:1][c:2]([cH1])!@;-[CX3:3]([NX3H1])=[O:4] 1 -0.2 1 -0.9 -1 -0.4 -1 " // 27.6.16 change in functional form
|
||||
//"-0.1 1 0.5 1 -0.8\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[CX3:3]([NX3H1])=[O:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.1 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[CX3:3]([NX3H0])=[O:4] 1 0.0 1 5.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[C:3]([NH1,NH2])=[O:4] 1 0.0 -1 0.5 1 0.0 1 0.0 1 " // 27.6. reduced from 1.6
|
||||
"0.0 1 0.0\n"
|
||||
//"[a:1][c:2]!@;-[C:3]([NH0])=[O:4]\n"
|
||||
"[a:1][c:2]!@;-[C:3]([NH1,NH2])=[O:4] 1 0.0 -1 2.4 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1](F)[c:2]([cH1])!@;-[CX3:3]=[O:4] 1 0.0 -1 1.8 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1](Cl)[c:2]([cH1])!@;-[CX3:3]=[O:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 " // 26.6.16 reduced from 10.0
|
||||
"2.0\n"
|
||||
"[nX3H1:1][a:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2](c)!@;-[CX3:3]([!O])=[O:4] 1 66.5 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[nX2H0:1][a:2]([nX2H0])!@;-[CX3:3]=[O:4] 1 0.0 -1 36.8 1 0.0 1 0.0 1 0.0 "
|
||||
"1 0.0\n"
|
||||
"[*^2]!@;-[cH0:1][c:2]([cH1])!@;-[CX3:3]=[O:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[CX3:3]=[O:4] 1 0.0 -1 2.0 1 0.0 1 0.0 1 0.0 1 " // 25.6.16 reduced from 10.0
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[CX3:3]=[O:4] 1 0.0 1 0.0 1 0.0 -1 3.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX3:3]([CX3H0])=[O:4] 1 0.0 -1 5.9 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX3:3]=[O:4] 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[a:1][a:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([nX2])!@;-[CX3:3]=[NX3:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH1:1][c:2]([nX3H1])!@;-[CX3:3]=[NX2:4] 1 97.4 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH1:1][c:2]([nX2])!@;-[CX3:3]=[NX2:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH1:1][c:2]([cH0]([OH1]))!@;-[CX3:3]=[NX2:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH0])!@;-[CX3:3]=[NX2:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX3:3]=[NX2:4] 1 0.0 -1 9.5 1 0.0 1 0.0 1 0.0 1 "
|
||||
"0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[CX3:3]=[NX2:4] 1 0.0 1 -0.7 1 0.0 1 -0.5 1 0.0 1 "
|
||||
"-0.6\n"
|
||||
"[a:1][c:2]!@;-[CX3:3]=[CX3H0:4] 1 0.0 -1 0.7 1 0.0 1 0.6 1 0.0 1 -0.5\n"
|
||||
"[a:1][a:2]!@;-[CX3:3]=[CX3H2:4] 1 0.0 -1 1.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][a:2]!@;-[CX3:3]=[CX3H1:4] 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*:1][SX2:2]!@;-[SX2:3][*:4] 1 0.0 1 12.9 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
// ------
|
||||
// these patterns were added as part of the ET-DG work
|
||||
// non-aromatic double bonds
|
||||
//"[*:1][CX3:2]=[CX3:3][*:4] 1 0.0 -1 7.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*:1][X3,X2:2]=[X3,X2:3][*:4] 1 0.0 -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0\n";
|
||||
@@ -0,0 +1,378 @@
|
||||
/* SMARTS patterns for experimental torsion angle preferences
|
||||
* taken from J. Chem. Inf. Model. 56, 1, (2016)
|
||||
*
|
||||
* torsion-angle potential form:
|
||||
* V = V1*(1 + s1*cos(1x)) + V2*(1 + s2*cos(2x)) + V3*(1 + s3*cos(1x))
|
||||
* + V4*(1 + s4*cos(1x)) + V5*(1 + s5*cos(1x)) + V6*(1 + s6*cos(1x))
|
||||
*
|
||||
* format: [SMARTS, s1, V1, s2, V2, s3, V3, s4, V4, s5, V5, s6, V6]
|
||||
*/
|
||||
const std::string torsionPreferencesV2 =
|
||||
"[O:1]=[C:2]!@;-[O:3]~[CH0:4] -1 78.2 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([N])!@;-[O:3]~[C:4] -1 79.1 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[O:3]~[C:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[O:3]~[!#1:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][O:2]!@;-[c:3]~[*:4] 1 0.0 1 0.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][O:2]!@;-[CX3:3]~[*:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][O:2]!@;-[CH1:3][H:4] -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][O:2]!@;-[CH2:3]~[C:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[H:1][CX4H1:2]!@;-[O:3][CX4:4] -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CH2:2]!@;-[O:3][CX4:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*:1][CX4:2]!@;-[O:3][$([CX3](=[!O])):4] 1 2.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1][CX4:2]!@;-[O:3][CX4:4] 1 0.0 1 0.0 1 8.8 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*:1][CX4:2]!@;-[O:3][CX4:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[O:3][S:4] 1 0.0 1 3.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH0])!@;-[O:3][S:4] 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][S:4] 1 0.0 1 11.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[O:3][c:4] 1 0.0 1 0.0 1 0.0 -1 0.5 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH0])!@;-[O:3][c:4] 1 0.0 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][c:4] 1 0.0 1 2.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][P:4] 1 0.0 1 2.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][p:4] 1 0.0 1 11.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH:1][c:2]([cH])!@;-[O:3][$(C([F])([F])[F]):4] 1 0.0 1 30.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][CX4H0:4] 1 0.0 1 30.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]([a])!@;-[O:3][CX4H0:4] 1 0.0 1 0.0 1 0.0 -1 2.0 1 0.0 1 0.0\n"
|
||||
"[cH1,n:1][c:2]!@;-[O:3][CRH1:4] 1 0.0 -1 5.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1,n:1][c:2]!@;-[O:3][CH1:4] 1 0.0 -1 7.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]([cH0])!@;-[O:3][CX4H0:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([nX2])!@;-[O:3][C:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2:1][c:2]([nX2])!@;-[O:3][C:4] 1 0.0 -1 44.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2:1][c:2]([nX3])!@;-[O:3][C:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([nX3])!@;-[O:3][C:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([nX2])!@;-[O:3][C:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([cH0]([CX3])):1][c:2]([cH1])!@;-[O:3][C:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2](cO)!@;-[O:3][C:4] -1 61.9 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(cO):1][c:2](cO)!@;-[O:3][C:4] 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[O:3][C:4] 1 0.0 1 6.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[O:3][C:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[O:3][C:4] 1 0.0 -1 19.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[O:3][CX3H0:4] 1 0.0 1 1.9 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[aH0:1][c:2]!@;-[OX2:3][!#1:4] 1 0.0 -1 7.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H0:2]!@;-[OX2:3][!#1:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[H:1][CX4H1:2]!@;-[OX2:3][!#1:4] -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4H2:2]!@;-[OX2:3][c:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][CX4H2:2]!@;-[OX2:3][C:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4H2:2]!@;-[OX2:3][C:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][CX4H2:2]!@;-[OX2:3][c:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[OX2:3][c:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[OX2:3][C:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][CX4H2:2]!@;-[OX2:3][!#1:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4H2:2]!@;-[OX2:3][!#1:4] 1 2.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[OX2:3][!#1:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[OX2:3][!#1:4] 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([CX3]=O):1][NX3H0:2](C)!@;-[CX4H2:3][C:4] 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([CX3]=O):1][NX3H1:2]!@;-[CX4H2:3][C:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(S(=O)(=O)):1][NX3H0:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 1.9 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(S(=O)(=O)):1][NX3H1:2]!@;-[CX4H2:3][!#1:4] 1 17.9 -1 -13.3 1 9.2 1 4.7 -1 -2.3 -1 -0.9\n"
|
||||
"[$(S(=O)(=O)):1][NX3H0:2]!@;-[CX4H1:3][H:4] 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(S(=O)(=O)):1][NX3H1:2]!@;-[CX4H1:3][H:4] -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(S(=O)(=O)):1][NH1:2]!@;-[c:3][nX2:4] 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(S(=O)(=O)):1][NH0:2]!@;-[c:3]([cH1])[cH1:4] 1 0.0 1 13.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(S(=O)(=O)):1][NH1:2]!@;-[c:3]([cH1])[cH1:4] 1 0.0 1 0.0 1 0.0 1 0.9 1 0.0 1 0.0\n"
|
||||
"[$(S(=O)(=O)):1][NH0:2]!@;-[c:3]([cH1])[cH0:4] 1 0.0 1 50.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(S(=O)(=O)):1][NH1:2]!@;-[c:3]([cH1])[cH0:4] 1 1.9 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(S(=O)(=O)):1][NH0:2]!@;-[c:3]([cH0])[cH0:4] 1 0.0 1 17.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(S(=O)(=O)):1][NH1:2]!@;-[c:3]([cH0])[cH0:4] 1 0.0 1 10.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(S(=O)(=O)):1][N:2]!@;-[c:3][a:4] 1 0.0 1 0.0 1 0.0 -1 2.0 1 0.0 1 0.0\n"
|
||||
"[O-:1][N+:2](=O)!@;-[c:3]([cH,nX2H0])[cH,nX2H0:4] 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O-:1][N+:2](=O)!@;-[c:3]([cH0])[cH,nX2H0:4] -1 -0.2 1 -5.7 1 -0.2 -1 -3.2 1 0.1 1 -1.3\n"
|
||||
"[O-:1][N+:2](=O)!@;-[c:3]([cH0])[cH0:4] -1 -0.4 1 0.3 1 -0.1 -1 0.6 1 -0.1 -1 0.2\n"
|
||||
"[O-:1][N+:2](=O)!@;-[c:3][a:4] 1 0.0 -1 11.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[NX3H1:3][C,c:4](~[N,n])(~[N,n]) 1 0.0 1 2.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[NX3H1:3][C,c:4](~[N,n])(~[N,n]) 1 15.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([nX2H0])!@;-[NX3H1:3][C,c:4](~[N,n])(~[N,n]) 1 40.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[NX3H1:3][C,c:4](~[N,n])(~[N,n]) 1 0.0 -1 1.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]([nX2H0])!@;-[NX3H1:3][C,c:4](~[N,n])(~[N,n]) 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]([nX3H1])!@;-[NX3H1:3][C,c:4](~[N,n])(~[N,n]) 1 0.0 -1 27.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][a:2]!@;-[NH1:3][C,c:4](~[N,n])(~[N,n]) 1 0.0 -1 6.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][NH:2]!@;-[C:3](=[NH2:4])[NH2] 1 0.0 -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[NH2][C:1](=[NH2])[NH:2]!@;-[CH2:3][C:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[NX2:3]=[$(C([NX3])n):4] -1 -0.1 1 1.9 -1 -0.1 -1 -1.9 -1 0.1 1 0.0\n"
|
||||
"[nX2:1][c:2]!@;-[NX2:3]=[$(C([NX3])N):4] 1 0.0 -1 6.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[NX2:3]=[$(C([NX3])N):4] -1 -0.1 1 1.9 -1 -0.1 -1 -1.9 -1 0.1 1 0.0\n"
|
||||
"[cH1:1][c:2]!@;-[NX2:3]=[$(C([NX3])N):4] 1 -0.4 -1 -0.9 1 -0.4 1 1.1 1 -0.2 1 -0.1\n"
|
||||
"[O:1]=[C:2]([NH1])!@;-[NX3H1:3](C=O)[H:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[NX3H1:3](C=O)[H:4] 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[NX3:3](C=O)[*:4] 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[CX3:3]=[NX2:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H0:2]!@;-[CX3:3]=[*H0:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H0:2]!@;-[CX3:3]=[*H1:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[CX3:3]=[*H2:4] 1 0.0 -1 68.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[CX3:3]=[*H1:4] 1 0.0 1 0.0 -1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[CX3:3]=[*H0:4] 1 0.0 -1 39.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H0:2]!@;-[CX3H1:3]=[*:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[CX3H1:3]=[*:4] 1 84.1 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([C](=O)):1][NX3H0:2]!@;-[CX4H2:3][$([c]([cH,nX2H0])[cH,nX2H0]):4] 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[CX4H2:3][$([c]([cH,nX2H0])[cH,nX2H0]):4] -1 -1.3 1 1.6 -1 -0.6 -1 0.6 1 -0.1 -1 0.3\n"
|
||||
"[$(C=O):1][NX3H0:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 15.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H0:2]!@;-[CX4H1:3][H:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[CX4H1:3][H:4] -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H0:2]!@;-[CX4H0:3][C:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[CX4H0:3][C:4] 1 0.0 1 0.0 1 2.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3:2]!@;-[!#1:3][!#1:4] 1 0.0 1 0.0 1 0.0 -1 0.8 1 0.0 1 0.0\n"
|
||||
"[$([C](=O)([$([NX3H1]),$([NX3H2])])[NX3H1]):1][NX3H1:2]!@;-[c:3]([nH1])[nH0:4] 1 84.1 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([C](=O)([$([NX3H1]),$([NX3H2])])[NX3H1]):1][NX3H1:2]!@;-[c:3]([nH0])[cH1:4] 1 84.1 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([C](=O)):1][NX3H1:2]!@;-[$([a]([nH0,o])):3][cH1:4] -1 53.3 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([C](=O)([$([NX3H1]),$([NX3H2])])[NX3H1]):1][NX3H1:2]!@;-[c&r6:3][nH0&r6:4] 1 0.0 -1 39.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([C](=O)):1][NX3H1:2]!@;-[c:3]([cH])[nX2H0:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H0:2]!@;-[c:3]([s,o])[n:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[c:3]([s,o])[n:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([C](=O)):1][NX3:2]!@;-[a:3](s)[a:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3:2]!@;-[a:3][nH:4] -1 53.3 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[c:3]([cH0]Cl)[cH:4] -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[c:3]([cH0]F)[cH:4] -1 11.4 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3:2]!@;-[$([a]([cH1])):3][$([aH0](!@O)):4] 1 38.2 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3:2]!@;-[a:3][aH0:4] 1 0.0 1 0.0 1 0.8 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[c:3]([cH1])[cH1:4] 1 0.0 -1 2.1 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H0:2]!@;-[c:3]([cH1])[cH1:4] 1 0.0 1 2.9 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H0:2]!@;-[c:3]([cH0])[cH:4] 1 0.0 1 2.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[c:3]([cH0])[cH:4] -1 9.7 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H0:2]!@;-[c:3]([cH0])[cH0:4] 1 0.0 1 2.9 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(C=O):1][NX3H1:2]!@;-[c:3]([cH0])[cH0:4] 1 0.0 1 2.9 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O,S:1]=[C:2]([$([NX3H1]),$([NX3H2])])!@;-[$([NX3]c[nH0]):3][H:4] 1 0.0 -1 39.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[$([NX3](c([nH1])n)):3][H:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2](c)!@;-[$([NX3](c([nX2H0])([nX2H0]))):3][H:4] 1 0.0 -1 39.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]([$([NX3H1]C)])!@;-[NX3H1:3][!#1:4] -1 51.7 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([!$([NH1])])!@;-[NX3H1:3]([H:4])[$(c([nX2H0])([nX2H0]))] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O,S:1]=[C:2]([$([NX3H1]),$([NX3H2])])!@;-[$([NX3](cn)):3][H:4] 1 0.0 -1 50.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]!@;-[NX3H0:3]([a:4])[A] 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2](a)!@;-[NX3H0:3][!#1:4] 1 0.0 -1 13.9 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[NX3H0:3][!#1:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[NX3H1:3][!#1:4] -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CH0:1][NX3:2]([CH0])!@;-[c:3][a:4] 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CH0:1][NX3:2]([CH1])!@;-[c:3][a:4] 1 0.0 1 1.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1,nX2H0:1][c:2]([cH1,nX2H0])!@;-[NX3&r:3][*:4] 1 0.0 -1 0.9 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[NX3H1:3][$([CX4&r]([C;r])([C;r])):4] 1 0.0 -1 6.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[NX3:3][CX4:4] 1 0.0 -1 6.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH,nX2H0])!@;-[NX3H1:3][CX4:4] 1 73.1 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH,nX2H0])!@;-[NX3H0:3][CX4:4] 1 0.0 1 0.0 1 0.8 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[NX3:3][CX4:4] 1 0.0 1 0.0 1 0.0 -1 2.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2](c)!@;-[NX3:3][CX4:4] 1 0.0 -1 0.5 1 0.0 -1 0.8 1 0.0 1 -0.6\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[NX3:3][a:4] 1 0.0 -1 0.9 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH0])!@;-[NX3:3][a:4] 1 0.0 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[NX3:3][a:4] 1 0.0 1 1.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][a:2]!@;-[NX3H0:3][$([CX3]=O):4] 1 0.0 1 2.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][a:2]!@;-[NX3H1:3][$([CX3]=O):4] -1 -1.6 -1 -0.6 1 0.6 1 0.0 -1 0.1 1 -0.5\n"
|
||||
"[nX2H0:1][a:2]([nX2H0])!@;-[NX3H0:3][$([CX3]=O):4] 1 72.8 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][$(a([!nX2H0])([nX2H0])!@;-[NX3H1]):2]!@[NX3H1:3][$([CX3](a)=O):4] 1 72.8 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][a:2]!@;-[NX3H1:3][$([CX3]=O):4] 1 0.0 -1 34.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][a:2]!@;-[NX3H1:3][$([CX3]=O):4] 1 0.0 -1 3.1 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][a:2]!@;-[NX3:3][CX4H0:4] 1 0.0 1 0.0 1 0.0 -1 4.0 1 0.0 1 0.0\n"
|
||||
"[a:1][a:2]!@;-[NX3:3][!#1:4] 1 0.0 1 -0.7 1 0.0 1 -0.5 1 0.0 1 -0.6\n"
|
||||
"[O:1]=[CX3:2]!@;-[nX3:3]([aH0:4])([aH0]) 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[nX3:3][aH1:4] 1 0.0 -1 18.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][CX3:2](=S)!@;-[NX3:3][a:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX3:2](=S)!@;-[NX3H0:3][!#1:4] 1 0.0 -1 22.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX3:2](=S)!@;-[NX3H1:3][!#1:4] 1 0.0 -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CH2:2]!@;-[n:3][cH0:4] 1 0.0 1 6.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CH2:2]!@;-[n:3][a:4] 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][n:2]!@;-[CX3H0:3]~[$([n,N](-a)):4] 1 0.0 1 0.0 1 0.0 -1 4.0 1 0.0 1 0.0\n"
|
||||
"[CX4:1][CX4H2:2]!@;-[NX3:3][CX4:4] 1 4.0 1 3.1 1 3.9 -1 -0.8 1 0.0 1 0.7\n"
|
||||
"[C:1][CX4H2:2]!@;-[NX3:3][C:4] 1 4.0 1 3.1 1 3.9 -1 -0.8 1 0.0 1 0.7\n"
|
||||
"[C:1][CX4:2]!@;-[NX3:3][C:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[NX3H1:3][!#1:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[NX3:3][!#1:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H1:2]!@;-[NX3:3][!#1:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[NX3:3][!#1:4] 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][$(S(=O)=O):2]!@;-[nX3:3]([aH1])[aH1:4] 1 0.0 1 20.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][$(S(=O)=O):2]!@;-[nX3:3][aH0:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 0.0\n"
|
||||
"[c:1][S:2](=O)(=O)!@;-[NX2H0-:3]-[*:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 0.0\n"
|
||||
"[*:1][$(S(=O)=O):2]!@;-[NX3H0&r:3][*:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 0.0\n"
|
||||
"[C:1][$(S(=O)=O):2]!@;-[NX3H1:3][c:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 0.0\n"
|
||||
"[C:1][$(S(=O)=O):2]!@;-[NX3H0:3][c:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 0.0\n"
|
||||
"[c:1][$(S(=O)=O):2]!@;-[NX3H1:3][C:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 0.0\n"
|
||||
"[c:1][$(S(=O)=O):2]!@;-[NX3H0:3][C:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 0.0\n"
|
||||
"[c:1][$(S(=O)=O):2]!@;-[NX3H1:3][c:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 0.0\n"
|
||||
"[c:1][$(S(=O)=O):2]!@;-[NX3H0:3][c:4] 1 0.0 1 4.1 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][$(S(=O)=O):2]!@;-[NX3H1:3][C:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 0.0\n"
|
||||
"[C:1][$(S(=O)=O):2]!@;-[NX3H0:3][C:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 0.0\n"
|
||||
"[*:1][$(S(=O)=O):2]!@;-[NX3H1:3][*:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 0.0\n"
|
||||
"[*:1][$(S(=O)=O):2]!@;-[NX3H0:3][*:4] 1 0.0 1 3.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX3:2]!@;-[SX2:3][!#1:4] 1 0.0 -1 2.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[SX2:3][!#1:4] -1 -0.8 -1 -0.8 -1 -1.5 -1 0.4 1 -0.1 -1 0.3\n"
|
||||
"[!#1:1][CX3:2]!@;-[SX3:3][!#1:4] 1 0.0 1 16.0 1 5.0 1 7.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[SX3:3][!#1:4] 1 0.0 1 0.0 1 10.4 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX3:2]!@;-[SX4:3][!#1:4] 1 0.0 1 3.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[H:1][CX4H1:2]!@;-[SX4:3][!#1:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[SX4:3][!#1:4] 1 0.0 1 0.0 1 5.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[aH1:1][c:2]([aH1])!@;-[SX2:3][!#1:4] 1 0.0 1 0.0 1 0.0 -1 0.9 1 0.0 1 0.0\n"
|
||||
"[aH1:1][c:2]([aH0])!@;-[SX2:3][*R:4] 1 0.0 1 0.0 1 0.0 -1 0.9 1 0.0 1 0.0\n"
|
||||
"[aH1:1][c:2]([aH0])!@;-[SX2:3][!#1:4] 1 0.0 1 0.0 1 0.0 -1 0.9 1 0.0 1 0.0\n"
|
||||
"[aH0:1][c:2]([aH0])!@;-[SX2:3][!#1:4] 1 -0.2 1 0.4 1 0.0 -1 1.9 1 0.0 1 -1.1\n"
|
||||
"[!#1:1][c:2]!@;-[SX2:3][!#1:4] 1 0.0 -1 39.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][c:2]!@;-[SX3:3][!#1:4] 1 0.0 1 1.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[aH1:1][c:2]([aH1])!@;-[SX4:3][!#1:4] 1 0.0 1 1.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[aH0:1][c:2]([aH1])!@;-[SX4:3][!#1:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[aH0:1][c:2]([aH0])!@;-[SX4:3][!#1:4] 1 0.0 1 3.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]([NH1])!@;-[CH2:3][CX3:4]=O 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]([NH1])!@;-[CH2:3][C:4] -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([CX3]([C])([H])):1]=[CX3:2]([C])!@;-[CH2:3][C:4] 1 0.0 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([CX3]([C])([H])):1]=[CX3:2]([H])!@;-[CH1:3](C)[C:4] 1 0.0 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([CX3]([C])([H])):1]=[CX3:2]([H])!@;-[CH2:3][C:4] 1 0.0 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[N:1][C:2](=O)!@;-[CX4H2:3][CX4H2:4] 1 4.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"N[C:2](=[O:1])!@;-[CH2:3][N:4] 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[CX4H1:3][H:4] 1 0.0 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0\n"
|
||||
"[CX3H2:1]=[CX3:2]!@;-[CX3:3]=[C:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH2:3][OX2:4] 1 0.0 1 0.0 -1 20.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH1:3](C)[C:4] 1 0.0 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH2:3][C:4] 1 0.0 1 0.0 -1 1.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH2:3][c:4] 1 0.0 1 0.0 -1 1.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CH2:3][!#1:4] 1 0.0 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2](O)!@;-[CX3:3]([$([NH1,NH2,CH2])])=[O:4] 1 0.0 -1 39.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[CX3:3]=[O:4] 1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3R:1]=[CX3R:2]!@;-[CX3:3]=[CX3:4] 1 0.0 -1 39.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3H0:1]=[CX3H0:2]!@;-[CX3:3]=[CX3H0:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3H0:1]=[CX3H0:2]!@;-[CX3H0:3]=[CX3:4] 1 0.0 1 1.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3H0:1]=[CX3:2]!@;-[CX3H0:3]=[CX3:4] 1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3H0:1]=[CX3H0:2]!@;-[CX3:3]=[CX3:4] 1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[CX3:1]=[CX3:2]!@;-[CX3:3]=[CX3:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*^2:1]~[C^2:2]([!H])!@;-[C^2:3]~[*^2:4] 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*^2:1]~[C^2:2]!@;-[C^2:3]~[*^2:4] 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[CX3:2]!@;-[CX4&r3:3]!@[!#1:4] -1 -0.7 -1 0.5 1 -0.3 -1 0.3 -1 -0.2 -1 0.2\n"
|
||||
"[O:1]=[CX3:2]!@;-[CX4H1&r3:3][H:4] 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OX2:1][CX4H2:2]!@;-[CX4H2:3][N&r:4] 1 0.0 1 0.0 1 5.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OX2:1][CX4H2:2]!@;-[CX4H2:3][N:4] 1 0.0 1 0.0 1 10.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OX2:1][CX4:2]!@;-[CX4:3][N:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OX2:1][CX4H2:2]!@;-[CX4H2:3][OX2:4] 1 0.0 1 0.0 1 10.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OX2:1][CX4:2]!@;-[CX4:3][OX2:4] 1 0.0 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4&r:2]!@;-[CX4&r:3][!#1:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[CX4:3][!#1:4] 1 0.0 1 0.0 1 7.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OX2:1][CX4H2:2]!@;-[CX3:3]([$([NX3H1,NX3H2])])=[O:4] 1 0.0 -1 39.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[OH1:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 2.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[NH1:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[N:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 1.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4H2:2]!@;-[CX3:3]=[O:4] 1 -1.0 1 -0.5 1 -0.2 1 -0.3 1 0.0 1 -0.3\n"
|
||||
"[c:1][CX4H2:2]!@;-[CX3:3]=[O:4] -1 0.9 1 -0.3 1 -0.2 1 -0.5 -1 0.1 1 0.2\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[CX3:3]=[O:4] 1 0.0 1 -0.7 1 0.0 1 -0.5 1 0.0 1 -0.6\n"
|
||||
"[c:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 1 0.0 -1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 1 0.0 -1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[CX3:3]=[O:4] 1 0.0 1 0.0 -1 1.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][CX4:2]!@;-[CX3:3][C:4] 1 0.0 1 0.0 1 1.9 1 0.0 1 0.0 1 0.0\n"
|
||||
"[C:1][CX4:2]!@;-[CX3:3][c:4] 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][CX4:2]!@;-[CX3:3][c:4] -1 -4.4 1 4.0 -1 -3.9 -1 -1.0 1 0.6 -1 -0.4\n"
|
||||
"[C:1][CX4:2]!@;-[CX3:3][C:4] 1 0.0 1 0.0 1 1.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4:2]!@;-[CX3H0:3][!#1:4] 1 0.0 1 0.0 1 0.6 1 0.0 1 0.0 1 0.0\n"
|
||||
"[H:1][CX4H1:2]!@;-[CX3:3][!#1:4] 1 0.0 -1 1.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[!#1:1][CX4H2:2]!@;-[CX3:3][!#1:4] 1 0.0 1 0.0 1 0.0 -1 0.8 1 0.0 1 0.0\n"
|
||||
"[$([cH0]([$([NX3H2]),$([NX3H1])])):1][a:2]!@;-[a:3][nX2:4] 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nH0:1][c&r6:2]([nH0])!@;-[c&r6:3]([nH0])[nH0:4] 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nH0&r6:1][c&r6:2]([nH0&r6])!@;-[c&r6:3]([cH1&r6])[nH0&r6:4] 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nH0&r6:1][c&r6:2]([nH0&r6])!@;-[c&r6:3]([cH1&r6])[cH1&r6:4] 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2]!@;-[c:3][$(c!@c):4] 1 0.1 1 0.9 1 0.1 -1 -0.4 1 0.0 -1 0.3\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[c:3]([cH0:4])[cH0] 1 0.0 1 3.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[c:3]([cH0:4])[cH1] 1 0.0 1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[c:3]([cH0:4])[cH1] 1 0.0 1 3.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[c:3]([cH1:4])[cH1] 1 0.0 1 3.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[c:3]([cH1:4])[cH1] 1 0.0 1 0.0 1 0.0 1 0.6 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[c:3]([cH1:4])[cH1] -1 -0.7 1 -8.0 1 0.0 1 4.4 1 0.0 1 -1.5\n"
|
||||
"[nX2H0:1][c:2]!@;-[c:3][nX3H1:4] 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]([!nX2H0])!@;-[c:3]([!nX2H0])[nX2H0:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][$(c([nX2H0])(a(a)(a))!@;-c[nX2H0]):2]!@[c:3][nX2H0:4] 1 30.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][$([c&r6](c[OH])):2]!@;-[$([c&r6](c[OH])):3][nX2H0:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2]!@;-[c:3][s,o,nX3H1:4] 1 0.0 -1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[c:3][nX2H0:4] 1 0.0 1 1.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[c:3]([cH0])[nX2H0:4] -1 0.9 -1 -1.0 1 -0.8 -1 0.2 -1 0.3 1 -0.2\n"
|
||||
"[c:1][c:2]!@;-[c:3]([cH0])[nX2H0:4] 1 0.0 1 0.0 1 0.0 1 1.1 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2]([cH0])!@;-[c:3][nX2H0:4] 1 0.0 -1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]!@;-[c:3]([cH1])[nX2H0:4] 1 0.0 -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c&r5:2]!@;-[c&r5:3][c:4] 1 0.0 -1 20.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c&r6:2]!@;-[c&r5:3][c:4] 1 0.0 1 0.0 1 0.0 1 1.1 1 0.0 1 0.0\n"
|
||||
"[c:1][c&r6:2]!@;-[c&r6:3][cH0:4] 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[c:1][c&r6:2]!@;-[c&r6:3][c:4] 1 0.0 1 0.0 1 0.0 1 1.1 1 0.0 1 0.0\n"
|
||||
"[c:1][c:2]!@;-[c:3][c:4] 1 0.0 1 0.0 1 0.0 1 1.1 1 0.0 1 0.0\n"
|
||||
"[nX2&r6:1][cH0&r6:2]([cH1&r6])!@;-[CX4H2:3][O!H:4] 1 2.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][a:4] 1 0.0 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][N,O,S:4] 1 0.0 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][CX3:4] 1 0.0 1 0.0 1 12.5 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][CX4:4] 1 0.0 1 0.0 1 8.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H0:3][*:4] 1 0.0 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][a:4] -1 -1.3 1 1.6 -1 -0.6 -1 0.6 1 -0.1 -1 0.3\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][CX3:4] -1 -1.3 1 1.6 -1 -0.6 -1 0.6 1 -0.1 -1 0.3\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX4H2:3][$([CX4H1]C(=O)O):4] 1 0.0 1 4.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX4H2:3][CX4:4] 1 0.0 1 3.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][CX4:4] -1 -1.3 1 1.6 -1 -0.6 -1 0.6 1 -0.1 -1 0.3\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][N,O,S:4] -1 -1.3 1 1.6 -1 -0.6 -1 0.6 1 -0.1 -1 0.3\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H2:3][!#1:4] -1 -1.3 1 1.6 -1 -0.6 -1 0.6 1 -0.1 -1 0.3\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][a:4] 1 0.9 1 1.2 1 0.6 1 0.4 1 0.0 1 0.1\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][CX4:4] 1 0.0 1 1.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][CX3:4] 1 0.0 1 0.0 1 0.0 1 1.5 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][N,O,S:4] 1 0.0 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]!@;-[CX4H1:3][H:4] 1 0.0 -1 4.3 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H0:3][a:4] 1 0.0 -1 -0.3 -1 -0.1 1 0.1 1 0.0 -1 0.1\n"
|
||||
"[a:1][c:2]!@;-[CX4H0:3][CX3:4] 1 0.0 1 0.0 1 0.0 1 1.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H0:3][CX4:4] 1 0.0 1 0.0 1 0.0 -1 0.5 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H0:3][N,O:4] 1 0.0 -1 0.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H2:3][a:4] 1 0.0 1 1.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H2:3][CX3:4] 1 0.0 1 1.2 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[n,o,s:1][c:2]!@;-[CX4H2:3][CX4:4] 1 0.0 1 0.0 1 0.0 -1 3.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H2:3][!#1:4] 1 0.0 1 3.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H1:3][N,O:4] 1 0.0 1 0.0 1 0.0 1 0.5 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H1:3][a:4] 1 0.0 1 0.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[CX4H1:3][H:4] 1 0.0 -1 0.7 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]!@;-[C:3](=[N:4])(-[NH1,NH2]) 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[$([N][CX4]):4])([$(N[CX4])]) 1 0.0 -1 0.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[$([NH0][CX4]):4])(-N) 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[$([N][!#1]):4])([$(N(C)[!#1])]) 1 0.0 -1 0.6 1 0.0 1 0.3 1 0.0 -1 -0.1\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[$([N][!#1]):4])([$(N(C)~[!#1])]) 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[C:3](=[N:4])(-N) 1 0.0 -1 0.6 1 0.0 1 0.3 1 0.0 -1 -0.1\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3][$(aC(=O)(O)):4] 1 0.0 -1 0.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3][nX3H1:4] 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3][nX2H0:4] 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3]([cH0])[cH0:4] 1 0.0 1 0.0 1 0.0 -1 3.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3]([cH1])[$([cH0][NH1,NH2]):4] 1 0.0 -1 30.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3]([cH1])[cH0:4] 1 0.0 -1 7.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3]([cH1])[cH1:4] 1 0.0 -1 7.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[O:1]=[C:2]([O-])!@;-[c:3][a:4] 1 0.0 -1 25.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([c]([NH1,NH2])):1][c:2]!@;-[CX3:3]([!O])=[O:4] -1 14.8 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(a[OH1]):1][a:2]!@;-[CX3:3]([NX3H0,CX4H0,c])=[O:4] -1 14.8 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$(a[NH1,NH2]):1][a:2]!@;-[CX3:3]([NX3H0,CX4H0,c])=[O:4] -1 36.2 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[CX3:3](c)=[O:4] 1 0.0 1 0.0 1 0.0 1 1.5 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX3:3](c)=[O:4] -1 -0.1 -1 2.4 1 -0.4 -1 -1.0 1 0.1 -1 -0.5\n"
|
||||
"[a:1][a:2]!@;-[CX3:3](a)=[O:4] -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([cH0](=O)):1][c:2]([cH1])!@;-[CX3:3]([NX3H1,NX3H2])=[O:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nH0&r6:1][c&r6:2]([cH1&r6])!@;-[C:3]([NH1,NH2])=[O:4] 1 20.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[s:1][c:2]!@;-[C:3]([NH1])=[O:4] 1 0.0 -1 36.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([cH0]Cl):1][c:2]([cH1])!@;-[CX3:3]([NX3H1])=[O:4] 1 0.1 1 0.9 1 0.1 -1 -0.4 1 0.0 -1 0.3\n"
|
||||
"[$([cH0]F):1][c:2]([cH1])!@;-[CX3:3]([NX3H1])=[O:4] 1 6.2 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([cH0][OH0]):1][c:2]([cH1])!@;-[C:3](=O)[NH1:4] -1 60.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([cH0][OH1]):1][c:2]([cH1])!@;-[C:3](=O)[NH1:4] 1 0.0 -1 15.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[CX3:3]([NX3H1])=[O:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 1.2\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[CX3:3]([NX3H0])=[O:4] 1 0.0 1 5.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[C:3]([NH1,NH2])=[O:4] 1 0.0 -1 1.6 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][c:2]!@;-[C:3]([NH0])=[O:4] 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0 -1 1.2\n"
|
||||
"[a:1][c:2]!@;-[C:3]([NH1,NH2])=[O:4] 1 0.0 -1 2.4 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[s:1][c:2]([aX2,cH1])!@;-[CX3:3](O)=[O:4] 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[s:1][c:2]([aX2,cH1])!@;-[CX3:3]=[O:4] -1 60.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([cH0](F)):1][c:2]([cH1])!@;-[CX3:3]([O,N])=[O:4] 1 0.0 -1 1.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([cH0]F):1][c:2]([cH1])!@;-[CX3:3]=[O:4] 1 6.2 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([cH0](Cl)):1][c:2]([cH1])!@;-[CX3:3]([CX3H])=[O:4] 1 0.0 1 0.0 1 0.0 1 2.0 1 0.0 1 0.0\n"
|
||||
"[$([cH0](Cl)):1][c:2]([cH1])!@;-[CX3H:3]=[O:4] 1 6.2 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([cH0](Cl)):1][c:2]([cH1])!@;-[CX3:3](O)=[O:4] 1 0.0 -1 1.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX3H1:1][a:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][c:2]([cH1])!@;-[CX3H1:3]=[O:4] 1 66.5 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0&r6:1][c&r6:2]([c&r6])!@;-[CX3:3]([!O])=[O:4] 1 6.2 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[nX2H0:1][a:2]([nX2H0])!@;-[CX3:3]=[O:4] 1 0.0 -1 36.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[$([cH0]!@;-[*^2]):1][c:2]([cH1])!@[CX3:3]=[O:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH1])!@;-[CX3:3]=[O:4] 1 0.0 -1 10.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[CX3:3]=[O:4] 1 0.0 1 0.0 1 0.0 -1 3.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX3:3]([CX3H0])=[O:4] 1 0.0 -1 5.9 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX3:3]=[O:4] 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][a:2]!@;-[CX3:3]=[O:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([nX2])!@;-[CX3:3]=[NX3:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([nX3H1])!@;-[CX3:3]=[NX2:4] 1 97.4 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([nX2])!@;-[CX3:3]=[NX2:4] 1 0.0 -1 8.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([$([cH0][OH1])])!@;-[CX3:3]=[NX2:4] 1 100.0 1 0.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH0])!@;-[CX3x0:3]=[NX2:4] 1 0.0 -1 36.8 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH1:1][c:2]([cH1])!@;-[CX3:3]=[NX2:4] 1 0.0 -1 9.5 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[cH0:1][c:2]([cH0])!@;-[CX3!r:3]=[NX2!r:4] 1 0.0 1 -0.7 1 0.0 1 -0.5 1 0.0 1 -0.6\n"
|
||||
"[a:1][c:2]!@;-[CX3:3]=[CX3H0:4] 1 0.0 -1 0.7 1 0.0 1 0.6 1 0.0 1 -0.5\n"
|
||||
"[a:1][a:2]!@;-[CX3:3]=[CX3H2:4] 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[a:1][a:2]!@;-[CX3:3]=[CX3H1:4] 1 0.0 -1 5.0 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
"[*:1][SX2:2]!@;-[SX2:3][*:4] 1 0.0 1 12.9 1 0.0 1 0.0 1 0.0 1 0.0\n"
|
||||
// ------
|
||||
// these patterns were added as part of the ET-DG work
|
||||
// non-aromatic double bonds
|
||||
"[*:1][X3,X2:2]=[X3,X2:3][*:4] 1 0.0 -1 100.0 1 0.0 1 0.0 1 0.0 1 0.0\n";
|
||||
@@ -57,7 +57,7 @@ Mailing list discussion: <http://www.mail-archive.com/rdkit-discuss@lists.source
|
||||
|
||||
The code:
|
||||
|
||||
""" contribution from Andrew Dalke """
|
||||
""" original contribution from Andrew Dalke """
|
||||
import sys
|
||||
from rdkit import Chem
|
||||
from rdkit.Chem import AllChem
|
||||
@@ -83,9 +83,7 @@ The code:
|
||||
# The parameters (molecule and number of conformers) are passed via a Python
|
||||
def generateconformations(m, n):
|
||||
m = Chem.AddHs(m)
|
||||
ids=AllChem.EmbedMultipleConfs(m, numConfs=n)
|
||||
for id in ids:
|
||||
AllChem.UFFOptimizeMolecule(m, confId=id)
|
||||
ids=AllChem.EmbedMultipleConfs(m, numConfs=n, params=AllChem.ETKDG())
|
||||
# EmbedMultipleConfs returns a Boost-wrapped type which
|
||||
# cannot be pickled. Convert it to a Python list, which can.
|
||||
return m, list(ids)
|
||||
|
||||
Reference in New Issue
Block a user