mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-03 21:44:30 +08:00
ScsrHbondMrvError (#8646)
* fix MRV for Hbonds * add test file * add test file * enforce chirality in DistGeom catch test * Added test for correct hbond retention * removed debug print statement * retrigger checks * testing java AromaticTests * testing java aromaticTests * removed testing code
This commit is contained in:
@@ -607,7 +607,7 @@ TEST_CASE("double bond stereo not honored in conformer generator") {
|
||||
RWMol cp(*m);
|
||||
MolOps::addHs(cp);
|
||||
DGeomHelpers::EmbedParameters ps = DGeomHelpers::ETKDGv3;
|
||||
ps.enforceChirality = false;
|
||||
ps.enforceChirality = true;
|
||||
for (unsigned int iter = 0; iter < 10; ++iter) {
|
||||
INFO(iter);
|
||||
RWMol lcp(cp);
|
||||
|
||||
@@ -961,6 +961,8 @@ const std::string MarvinBond::getBondType() const {
|
||||
{
|
||||
if (tempConvention == "CXN:COORD") {
|
||||
return "DATIVE";
|
||||
} else if (tempConvention == "CXN:HYDROGEN") {
|
||||
return "HYDROGEN";
|
||||
} else {
|
||||
std::ostringstream err;
|
||||
err << "unrecognized convention " << convention << " in MRV File ";
|
||||
@@ -1242,6 +1244,8 @@ int MarvinMolBase::getExplicitValence(const MarvinAtom &marvinAtom) const {
|
||||
// if (bondPtr->atomRefs2[1] == marvinAtom.id) //second atom of dative
|
||||
// bond count as 1 (first atom is zero)
|
||||
// resTimes10 += 10; // really 1 order bond
|
||||
} else if (marvinBondType == "HYDROGEN") {
|
||||
// hydrogen bonds do not add to valence}
|
||||
} else if (marvinBondType == "1") {
|
||||
resTimes10 += 10; // really 1 order bond
|
||||
} else if (marvinBondType == "2") {
|
||||
|
||||
@@ -31,7 +31,8 @@ namespace RDKit {
|
||||
const std::vector<std::string> sruSgroupConnectChoices{"hh", "ht", "eu"};
|
||||
const std::vector<std::string> marvinBondOrders{"1", "2", "3", "A"};
|
||||
const std::vector<std::string> marvinQueryBondsTypes{"SD", "SA", "DA", "Any"};
|
||||
const std::vector<std::string> marvinConventionTypes{"cxn:coord"};
|
||||
const std::vector<std::string> marvinConventionTypes{"cxn:coord",
|
||||
"cxn:hydrogen"};
|
||||
const std::vector<std::string> marvinStereoDictRefTypes{"cml:W", "cml:H"};
|
||||
const std::vector<std::string> marvinStereoConventionTypes{"1", "3", "4", "6"};
|
||||
|
||||
|
||||
@@ -295,6 +295,10 @@ class MarvinCMLReader {
|
||||
bond = new Bond();
|
||||
type = Bond::DATIVE;
|
||||
bType = 1;
|
||||
} else if (marvinBondType == "HYDROGEN") {
|
||||
bond = new Bond();
|
||||
type = Bond::HYDROGEN;
|
||||
bType = 1;
|
||||
} else if (marvinBondType == "1") {
|
||||
type = Bond::SINGLE;
|
||||
bond = new Bond;
|
||||
|
||||
@@ -340,6 +340,10 @@ class MarvinCMLWriter {
|
||||
convention = "cxn:coord";
|
||||
break;
|
||||
|
||||
case Bond::HYDROGEN:
|
||||
convention = "cxn:hydrogen";
|
||||
break;
|
||||
|
||||
default:
|
||||
throw MarvinWriterException(
|
||||
"Only 1,2,3,Aromatic, and query bonds SA, DA, and SD are supported for MarvinWriter");
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <GraphMol/Chirality.h>
|
||||
#include <GraphMol/test_fixtures.h>
|
||||
#include <GraphMol/FileParsers/FileParsers.h>
|
||||
|
||||
#include <GraphMol/FileParsers/SequenceParsers.h>
|
||||
#include <GraphMol/FileParsers/SequenceWriters.h>
|
||||
#include <GraphMol/FileParsers/MolFileStereochem.h>
|
||||
@@ -27,6 +28,9 @@
|
||||
#include <fstream>
|
||||
#include <filesystem>
|
||||
|
||||
using namespace RDKit;
|
||||
using namespace v2::FileParsers;
|
||||
|
||||
using namespace RDKit;
|
||||
|
||||
class MrvTests {
|
||||
@@ -59,6 +63,26 @@ class MrvTests {
|
||||
reapplyMolBlockWedging(reapplyMolBlockWedgingInit) {};
|
||||
};
|
||||
|
||||
class ScsrMolTest {
|
||||
public:
|
||||
unsigned int atomCount;
|
||||
unsigned int bondCount;
|
||||
std::vector<int> hbondIds;
|
||||
unsigned int sGroupCount;
|
||||
std::string fileName;
|
||||
bool expectedResult;
|
||||
|
||||
ScsrMolTest(std::string fileNameInit, bool expectedResultInit,
|
||||
int atomCountInit, int bondCountInit,
|
||||
std::vector<int> hbondIdsInit, int sGroupCountInit)
|
||||
: atomCount(atomCountInit),
|
||||
bondCount(bondCountInit),
|
||||
hbondIds(hbondIdsInit),
|
||||
sGroupCount(sGroupCountInit),
|
||||
fileName(fileNameInit),
|
||||
expectedResult(expectedResultInit) {};
|
||||
};
|
||||
|
||||
class RxnTest {
|
||||
public:
|
||||
std::string fileName;
|
||||
@@ -366,6 +390,62 @@ class MrvTests {
|
||||
return;
|
||||
}
|
||||
|
||||
void testMarvinFromScsr(const ScsrMolTest *scsrMolTest) {
|
||||
BOOST_LOG(rdInfoLog) << "testing marvin generate from an SCSR mol file"
|
||||
<< std::endl;
|
||||
|
||||
std::string rdbase = getenv("RDBASE");
|
||||
std::string fName = rdbase + "/Code/GraphMol/MarvinParse/test_data/" +
|
||||
scsrMolTest->fileName;
|
||||
|
||||
try {
|
||||
RDKit::v2::FileParsers::MolFileParserParams pp;
|
||||
pp.sanitize = false;
|
||||
pp.removeHs = false;
|
||||
pp.strictParsing = true;
|
||||
|
||||
RDKit::v2::FileParsers::MolFromSCSRParams molFromSCSRParams;
|
||||
molFromSCSRParams.includeLeavingGroups = true;
|
||||
molFromSCSRParams.scsrBaseHbondOptions = SCSRBaseHbondOptions::Auto;
|
||||
|
||||
std::unique_ptr<RDKit::RWMol> mol;
|
||||
mol = MolFromSCSRFile(fName, pp, molFromSCSRParams);
|
||||
|
||||
TEST_ASSERT(mol != nullptr);
|
||||
TEST_ASSERT(mol->getNumAtoms() == scsrMolTest->atomCount);
|
||||
TEST_ASSERT(mol->getNumBonds() == scsrMolTest->bondCount);
|
||||
TEST_ASSERT(getSubstanceGroups(*mol).size() == scsrMolTest->sGroupCount);
|
||||
|
||||
std::string outMolStr = "";
|
||||
outMolStr = MolToMrvBlock(*mol, true, -1, true, false);
|
||||
|
||||
RDKit::v2::MarvinParser::MrvParserParams mpp;
|
||||
mol = RDKit::v2::MarvinParser::MolFromMrvBlock(outMolStr, mpp);
|
||||
|
||||
TEST_ASSERT(mol != nullptr);
|
||||
TEST_ASSERT(mol->getNumAtoms() == scsrMolTest->atomCount);
|
||||
TEST_ASSERT(mol->getNumBonds() == scsrMolTest->bondCount);
|
||||
TEST_ASSERT(getSubstanceGroups(*mol).size() == scsrMolTest->sGroupCount);
|
||||
|
||||
// test for some H-bonds
|
||||
|
||||
for (auto hbondIndex : scsrMolTest->hbondIds) {
|
||||
TEST_ASSERT(mol->getBondWithIdx(hbondIndex)->getBondType() ==
|
||||
RDKit::Bond::BondType::HYDROGEN);
|
||||
}
|
||||
|
||||
BOOST_LOG(rdInfoLog) << "done" << std::endl;
|
||||
} catch (const std::exception &) {
|
||||
if (scsrMolTest->expectedResult != false) {
|
||||
throw;
|
||||
}
|
||||
return;
|
||||
}
|
||||
TEST_ASSERT(scsrMolTest->expectedResult == true);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void testMarvinRxn(const RxnTest *rxnTest) {
|
||||
BOOST_LOG(rdInfoLog) << "testing marvin parsing" << std::endl;
|
||||
|
||||
@@ -1138,6 +1218,21 @@ M END
|
||||
}
|
||||
}
|
||||
|
||||
if (testToRun == "" || testToRun == "scsrFileTests") {
|
||||
std::list<ScsrMolTest> scsrFileTests{
|
||||
ScsrMolTest(
|
||||
"153944501_original_structure.mol", true, 859, 1025,
|
||||
{66, 67, 68, 72, 73, 74} /* Some but not all hbonds in the mol */,
|
||||
128),
|
||||
ScsrMolTest("rnaTest.mol", true, 22, 24, {}, 4)};
|
||||
|
||||
for (auto &scsrFileTest : scsrFileTests) {
|
||||
BOOST_LOG(rdInfoLog) << "Test: " << scsrFileTest.fileName << std::endl;
|
||||
|
||||
testMarvinFromScsr(&scsrFileTest);
|
||||
}
|
||||
}
|
||||
|
||||
if (testToRun == "" || testToRun == "chiral3dFileTests") {
|
||||
std::list<MolTest> chiral3dFileTests{
|
||||
MolTest("Cubane.mrv", true, 16, 20),
|
||||
|
||||
@@ -0,0 +1,589 @@
|
||||
|
||||
-INDIGO-07022509322D
|
||||
|
||||
0 0 0 0 0 0 0 0 0 0 0 V3000
|
||||
M V30 BEGIN CTAB
|
||||
M V30 COUNTS 124 143 0 0 0
|
||||
M V30 BEGIN ATOM
|
||||
M V30 1 dR 6.29948 -4.1256 0.0 0 CLASS=SUGAR SEQID=1 ATTCHORD=(4 2 Cx 5 Br)
|
||||
M V30 2 G 6.29948 -5.6256 0.0 0 CLASS=BASE SEQID=1 ATTCHORD=(2 1 Al)
|
||||
M V30 3 dR 9.29948 -4.1256 0.0 0 CLASS=SUGAR SEQID=2 ATTCHORD=(6 4 Cx 5 Al 8-
|
||||
M V30 Br)
|
||||
M V30 4 G 9.29948 -5.6256 0.0 0 CLASS=BASE SEQID=2 ATTCHORD=(2 3 Al)
|
||||
M V30 5 P 7.79948 -4.1256 0.0 0 CLASS=PHOSPHATE SEQID=1 ATTCHORD=(4 1 Al 3 B-
|
||||
M V30 r)
|
||||
M V30 6 dR 12.2994 -4.1256 0.0 0 CLASS=SUGAR SEQID=3 ATTCHORD=(6 7 Cx 8 Al 1-
|
||||
M V30 1 Br)
|
||||
M V30 7 C 12.2994 -5.6256 0.0 0 CLASS=BASE SEQID=3 ATTCHORD=(2 6 Al)
|
||||
M V30 8 P 10.7994 -4.1256 0.0 0 CLASS=PHOSPHATE SEQID=2 ATTCHORD=(4 3 Al 6 B-
|
||||
M V30 r)
|
||||
M V30 9 dR 15.2994 -4.1256 0.0 0 CLASS=SUGAR SEQID=4 ATTCHORD=(6 10 Cx 11 Al-
|
||||
M V30 14 Br)
|
||||
M V30 10 T 15.2994 -5.6256 0.0 0 CLASS=BASE SEQID=4 ATTCHORD=(2 9 Al)
|
||||
M V30 11 P 13.7994 -4.1256 0.0 0 CLASS=PHOSPHATE SEQID=3 ATTCHORD=(4 6 Al 9 -
|
||||
M V30 Br)
|
||||
M V30 12 dR 18.2994 -4.1256 0.0 0 CLASS=SUGAR SEQID=5 ATTCHORD=(6 13 Cx 14 A-
|
||||
M V30 l 17 Br)
|
||||
M V30 13 G 18.2994 -5.6256 0.0 0 CLASS=BASE SEQID=5 ATTCHORD=(2 12 Al)
|
||||
M V30 14 P 16.7994 -4.1256 0.0 0 CLASS=PHOSPHATE SEQID=4 ATTCHORD=(4 9 Al 12-
|
||||
M V30 Br)
|
||||
M V30 15 dR 21.2994 -4.1256 0.0 0 CLASS=SUGAR SEQID=6 ATTCHORD=(6 16 Cx 17 A-
|
||||
M V30 l 20 Br)
|
||||
M V30 16 C 21.2994 -5.6256 0.0 0 CLASS=BASE SEQID=6 ATTCHORD=(2 15 Al)
|
||||
M V30 17 P 19.7994 -4.1256 0.0 0 CLASS=PHOSPHATE SEQID=5 ATTCHORD=(4 12 Al 1-
|
||||
M V30 5 Br)
|
||||
M V30 18 dR 24.2994 -4.1256 0.0 0 CLASS=SUGAR SEQID=7 ATTCHORD=(6 19 Cx 20 A-
|
||||
M V30 l 23 Br)
|
||||
M V30 19 G 24.2994 -5.6256 0.0 0 CLASS=BASE SEQID=7 ATTCHORD=(2 18 Al)
|
||||
M V30 20 P 22.7994 -4.1256 0.0 0 CLASS=PHOSPHATE SEQID=6 ATTCHORD=(4 15 Al 1-
|
||||
M V30 8 Br)
|
||||
M V30 21 dR 27.2994 -4.1256 0.0 0 CLASS=SUGAR SEQID=8 ATTCHORD=(6 22 Cx 23 A-
|
||||
M V30 l 26 Br)
|
||||
M V30 22 T 27.2994 -5.6256 0.0 0 CLASS=BASE SEQID=8 ATTCHORD=(2 21 Al)
|
||||
M V30 23 P 25.7994 -4.1256 0.0 0 CLASS=PHOSPHATE SEQID=7 ATTCHORD=(4 18 Al 2-
|
||||
M V30 1 Br)
|
||||
M V30 24 dR 30.2994 -4.1256 0.0 0 CLASS=SUGAR SEQID=9 ATTCHORD=(6 25 Cx 26 A-
|
||||
M V30 l 29 Br)
|
||||
M V30 25 A 30.2994 -5.6256 0.0 0 CLASS=BASE SEQID=9 ATTCHORD=(2 24 Al)
|
||||
M V30 26 P 28.7994 -4.1256 0.0 0 CLASS=PHOSPHATE SEQID=8 ATTCHORD=(4 21 Al 2-
|
||||
M V30 4 Br)
|
||||
M V30 27 dR 33.2994 -4.1256 0.0 0 CLASS=SUGAR SEQID=10 ATTCHORD=(6 28 Cx 29 -
|
||||
M V30 Al 32 Br)
|
||||
M V30 28 C 33.2994 -5.6256 0.0 0 CLASS=BASE SEQID=10 ATTCHORD=(2 27 Al)
|
||||
M V30 29 P 31.7994 -4.1256 0.0 0 CLASS=PHOSPHATE SEQID=9 ATTCHORD=(4 24 Al 2-
|
||||
M V30 7 Br)
|
||||
M V30 30 dR 36.2994 -4.1256 0.0 0 CLASS=SUGAR SEQID=11 ATTCHORD=(6 31 Cx 32 -
|
||||
M V30 Al 35 Br)
|
||||
M V30 31 G 36.2994 -5.6256 0.0 0 CLASS=BASE SEQID=11 ATTCHORD=(2 30 Al)
|
||||
M V30 32 P 34.7994 -4.1256 0.0 0 CLASS=PHOSPHATE SEQID=10 ATTCHORD=(4 27 Al -
|
||||
M V30 30 Br)
|
||||
M V30 33 dR 39.2994 -4.1256 0.0 0 CLASS=SUGAR SEQID=12 ATTCHORD=(6 34 Cx 35 -
|
||||
M V30 Al 38 Br)
|
||||
M V30 34 T 39.2994 -5.6256 0.0 0 CLASS=BASE SEQID=12 ATTCHORD=(2 33 Al)
|
||||
M V30 35 P 37.7994 -4.1256 0.0 0 CLASS=PHOSPHATE SEQID=11 ATTCHORD=(4 30 Al -
|
||||
M V30 33 Br)
|
||||
M V30 36 dR 6.29948 -11.4256 0.0 0 CLASS=SUGAR SEQID=13 ATTCHORD=(6 37 Cx 38-
|
||||
M V30 Al 41 Br)
|
||||
M V30 37 G 6.29948 -12.9256 0.0 0 CLASS=BASE SEQID=13 ATTCHORD=(2 36 Al)
|
||||
M V30 38 P 40.7994 -4.1256 0.0 0 CLASS=PHOSPHATE SEQID=12 ATTCHORD=(4 33 Al -
|
||||
M V30 36 Br)
|
||||
M V30 39 dR 9.29948 -11.4256 0.0 0 CLASS=SUGAR SEQID=14 ATTCHORD=(6 40 Cx 41-
|
||||
M V30 Al 44 Br)
|
||||
M V30 40 C 9.29948 -12.9256 0.0 0 CLASS=BASE SEQID=14 ATTCHORD=(2 39 Al)
|
||||
M V30 41 P 7.79948 -11.4256 0.0 0 CLASS=PHOSPHATE SEQID=13 ATTCHORD=(4 36 Al-
|
||||
M V30 39 Br)
|
||||
M V30 42 dR 12.2994 -11.4256 0.0 0 CLASS=SUGAR SEQID=15 ATTCHORD=(6 43 Cx 44-
|
||||
M V30 Al 47 Br)
|
||||
M V30 43 G 12.2994 -12.9256 0.0 0 CLASS=BASE SEQID=15 ATTCHORD=(2 42 Al)
|
||||
M V30 44 P 10.7994 -11.4256 0.0 0 CLASS=PHOSPHATE SEQID=14 ATTCHORD=(4 39 Al-
|
||||
M V30 42 Br)
|
||||
M V30 45 dR 15.2994 -11.4256 0.0 0 CLASS=SUGAR SEQID=16 ATTCHORD=(6 46 Cx 47-
|
||||
M V30 Al 50 Br)
|
||||
M V30 46 G 15.2994 -12.9256 0.0 0 CLASS=BASE SEQID=16 ATTCHORD=(2 45 Al)
|
||||
M V30 47 P 13.7994 -11.4256 0.0 0 CLASS=PHOSPHATE SEQID=15 ATTCHORD=(4 42 Al-
|
||||
M V30 45 Br)
|
||||
M V30 48 dR 18.2994 -11.4256 0.0 0 CLASS=SUGAR SEQID=17 ATTCHORD=(6 49 Cx 50-
|
||||
M V30 Al 53 Br)
|
||||
M V30 49 G 18.2994 -12.9256 0.0 0 CLASS=BASE SEQID=17 ATTCHORD=(2 48 Al)
|
||||
M V30 50 P 16.7994 -11.4256 0.0 0 CLASS=PHOSPHATE SEQID=16 ATTCHORD=(4 45 Al-
|
||||
M V30 48 Br)
|
||||
M V30 51 dR 21.2994 -11.4256 0.0 0 CLASS=SUGAR SEQID=18 ATTCHORD=(6 52 Cx 53-
|
||||
M V30 Al 56 Br)
|
||||
M V30 52 T 21.2994 -12.9256 0.0 0 CLASS=BASE SEQID=18 ATTCHORD=(2 51 Al)
|
||||
M V30 53 P 19.7994 -11.4256 0.0 0 CLASS=PHOSPHATE SEQID=17 ATTCHORD=(4 48 Al-
|
||||
M V30 51 Br)
|
||||
M V30 54 dR 24.2994 -11.4256 0.0 0 CLASS=SUGAR SEQID=19 ATTCHORD=(6 55 Cx 56-
|
||||
M V30 Al 59 Br)
|
||||
M V30 55 C 24.2994 -12.9256 0.0 0 CLASS=BASE SEQID=19 ATTCHORD=(2 54 Al)
|
||||
M V30 56 P 22.7994 -11.4256 0.0 0 CLASS=PHOSPHATE SEQID=18 ATTCHORD=(4 51 Al-
|
||||
M V30 54 Br)
|
||||
M V30 57 dR 27.2994 -11.4256 0.0 0 CLASS=SUGAR SEQID=20 ATTCHORD=(6 58 Cx 59-
|
||||
M V30 Al 62 Br)
|
||||
M V30 58 G 27.2994 -12.9256 0.0 0 CLASS=BASE SEQID=20 ATTCHORD=(2 57 Al)
|
||||
M V30 59 P 25.7994 -11.4256 0.0 0 CLASS=PHOSPHATE SEQID=19 ATTCHORD=(4 54 Al-
|
||||
M V30 57 Br)
|
||||
M V30 60 dR 30.2994 -11.4256 0.0 0 CLASS=SUGAR SEQID=21 ATTCHORD=(4 61 Cx 62-
|
||||
M V30 Al)
|
||||
M V30 61 T 30.2994 -12.9256 0.0 0 CLASS=BASE SEQID=21 ATTCHORD=(2 60 Al)
|
||||
M V30 62 P 28.7994 -11.4256 0.0 0 CLASS=PHOSPHATE SEQID=20 ATTCHORD=(4 57 Al-
|
||||
M V30 60 Br)
|
||||
M V30 63 dR 30.2994 -15.9256 0.0 0 CLASS=SUGAR SEQID=1 ATTCHORD=(4 64 Cx 67 -
|
||||
M V30 Br)
|
||||
M V30 64 A 30.2994 -14.4256 0.0 0 CLASS=BASE SEQID=1 ATTCHORD=(2 63 Al)
|
||||
M V30 65 dR 27.2994 -15.9256 0.0 0 CLASS=SUGAR SEQID=2 ATTCHORD=(6 66 Cx 67 -
|
||||
M V30 Al 70 Br)
|
||||
M V30 66 C 27.2994 -14.4256 0.0 0 CLASS=BASE SEQID=2 ATTCHORD=(2 65 Al)
|
||||
M V30 67 P 28.7994 -15.9256 0.0 0 CLASS=PHOSPHATE SEQID=1 ATTCHORD=(4 65 Br -
|
||||
M V30 63 Al)
|
||||
M V30 68 dR 24.2994 -15.9256 0.0 0 CLASS=SUGAR SEQID=3 ATTCHORD=(6 69 Cx 70 -
|
||||
M V30 Al 73 Br)
|
||||
M V30 69 G 24.2994 -14.4256 0.0 0 CLASS=BASE SEQID=3 ATTCHORD=(2 68 Al)
|
||||
M V30 70 P 25.7994 -15.9256 0.0 0 CLASS=PHOSPHATE SEQID=2 ATTCHORD=(4 68 Br -
|
||||
M V30 65 Al)
|
||||
M V30 71 dR 21.2994 -15.9256 0.0 0 CLASS=SUGAR SEQID=4 ATTCHORD=(6 72 Cx 73 -
|
||||
M V30 Al 76 Br)
|
||||
M V30 72 A 21.2994 -14.4256 0.0 0 CLASS=BASE SEQID=4 ATTCHORD=(2 71 Al)
|
||||
M V30 73 P 22.7994 -15.9256 0.0 0 CLASS=PHOSPHATE SEQID=3 ATTCHORD=(4 71 Br -
|
||||
M V30 68 Al)
|
||||
M V30 74 dR 18.2994 -15.9256 0.0 0 CLASS=SUGAR SEQID=5 ATTCHORD=(6 75 Cx 76 -
|
||||
M V30 Al 79 Br)
|
||||
M V30 75 C 18.2994 -14.4256 0.0 0 CLASS=BASE SEQID=5 ATTCHORD=(2 74 Al)
|
||||
M V30 76 P 19.7994 -15.9256 0.0 0 CLASS=PHOSPHATE SEQID=4 ATTCHORD=(4 74 Br -
|
||||
M V30 71 Al)
|
||||
M V30 77 dR 15.2994 -15.9256 0.0 0 CLASS=SUGAR SEQID=6 ATTCHORD=(6 78 Cx 79 -
|
||||
M V30 Al 82 Br)
|
||||
M V30 78 C 15.2994 -14.4256 0.0 0 CLASS=BASE SEQID=6 ATTCHORD=(2 77 Al)
|
||||
M V30 79 P 16.7994 -15.9256 0.0 0 CLASS=PHOSPHATE SEQID=5 ATTCHORD=(4 77 Br -
|
||||
M V30 74 Al)
|
||||
M V30 80 dR 12.2994 -15.9256 0.0 0 CLASS=SUGAR SEQID=7 ATTCHORD=(6 81 Cx 82 -
|
||||
M V30 Al 85 Br)
|
||||
M V30 81 C 12.2994 -14.4256 0.0 0 CLASS=BASE SEQID=7 ATTCHORD=(2 80 Al)
|
||||
M V30 82 P 13.7994 -15.9256 0.0 0 CLASS=PHOSPHATE SEQID=6 ATTCHORD=(4 80 Br -
|
||||
M V30 77 Al)
|
||||
M V30 83 dR 9.29948 -15.9256 0.0 0 CLASS=SUGAR SEQID=8 ATTCHORD=(6 84 Cx 85 -
|
||||
M V30 Al 88 Br)
|
||||
M V30 84 G 9.29948 -14.4256 0.0 0 CLASS=BASE SEQID=8 ATTCHORD=(2 83 Al)
|
||||
M V30 85 P 10.7994 -15.9256 0.0 0 CLASS=PHOSPHATE SEQID=7 ATTCHORD=(4 83 Br -
|
||||
M V30 80 Al)
|
||||
M V30 86 dR 6.29948 -15.9256 0.0 0 CLASS=SUGAR SEQID=9 ATTCHORD=(6 87 Cx 88 -
|
||||
M V30 Al 91 Br)
|
||||
M V30 87 C 6.29948 -14.4256 0.0 0 CLASS=BASE SEQID=9 ATTCHORD=(2 86 Al)
|
||||
M V30 88 P 7.79948 -15.9256 0.0 0 CLASS=PHOSPHATE SEQID=8 ATTCHORD=(4 86 Br -
|
||||
M V30 83 Al)
|
||||
M V30 89 dR 39.2994 -8.6256 0.0 0 CLASS=SUGAR SEQID=10 ATTCHORD=(6 90 Cx 91 -
|
||||
M V30 Al 94 Br)
|
||||
M V30 90 A 39.2994 -7.1256 0.0 0 CLASS=BASE SEQID=10 ATTCHORD=(2 89 Al)
|
||||
M V30 91 P 40.7994 -8.6256 0.0 0 CLASS=PHOSPHATE SEQID=9 ATTCHORD=(4 89 Br 8-
|
||||
M V30 6 Al)
|
||||
M V30 92 dR 36.2994 -8.6256 0.0 0 CLASS=SUGAR SEQID=11 ATTCHORD=(6 93 Cx 94 -
|
||||
M V30 Al 97 Br)
|
||||
M V30 93 C 36.2994 -7.1256 0.0 0 CLASS=BASE SEQID=11 ATTCHORD=(2 92 Al)
|
||||
M V30 94 P 37.7994 -8.6256 0.0 0 CLASS=PHOSPHATE SEQID=10 ATTCHORD=(4 92 Br -
|
||||
M V30 89 Al)
|
||||
M V30 95 dR 33.2994 -8.6256 0.0 0 CLASS=SUGAR SEQID=12 ATTCHORD=(6 96 Cx 97 -
|
||||
M V30 Al 100 Br)
|
||||
M V30 96 G 33.2994 -7.1256 0.0 0 CLASS=BASE SEQID=12 ATTCHORD=(2 95 Al)
|
||||
M V30 97 P 34.7994 -8.6256 0.0 0 CLASS=PHOSPHATE SEQID=11 ATTCHORD=(4 95 Br -
|
||||
M V30 92 Al)
|
||||
M V30 98 dR 30.2994 -8.6256 0.0 0 CLASS=SUGAR SEQID=13 ATTCHORD=(6 99 Cx 100-
|
||||
M V30 Al 103 Br)
|
||||
M V30 99 T 30.2994 -7.1256 0.0 0 CLASS=BASE SEQID=13 ATTCHORD=(2 98 Al)
|
||||
M V30 100 P 31.7994 -8.6256 0.0 0 CLASS=PHOSPHATE SEQID=12 ATTCHORD=(4 98 Br-
|
||||
M V30 95 Al)
|
||||
M V30 101 dR 27.2994 -8.6256 0.0 0 CLASS=SUGAR SEQID=14 ATTCHORD=(6 102 Cx 1-
|
||||
M V30 03 Al 106 Br)
|
||||
M V30 102 A 27.2994 -7.1256 0.0 0 CLASS=BASE SEQID=14 ATTCHORD=(2 101 Al)
|
||||
M V30 103 P 28.7994 -8.6256 0.0 0 CLASS=PHOSPHATE SEQID=13 ATTCHORD=(4 101 B-
|
||||
M V30 r 98 Al)
|
||||
M V30 104 dR 24.2994 -8.6256 0.0 0 CLASS=SUGAR SEQID=15 ATTCHORD=(6 105 Cx 1-
|
||||
M V30 06 Al 109 Br)
|
||||
M V30 105 C 24.2994 -7.1256 0.0 0 CLASS=BASE SEQID=15 ATTCHORD=(2 104 Al)
|
||||
M V30 106 P 25.7994 -8.6256 0.0 0 CLASS=PHOSPHATE SEQID=14 ATTCHORD=(4 104 B-
|
||||
M V30 r 101 Al)
|
||||
M V30 107 dR 21.2994 -8.6256 0.0 0 CLASS=SUGAR SEQID=16 ATTCHORD=(6 108 Cx 1-
|
||||
M V30 09 Al 112 Br)
|
||||
M V30 108 G 21.2994 -7.1256 0.0 0 CLASS=BASE SEQID=16 ATTCHORD=(2 107 Al)
|
||||
M V30 109 P 22.7994 -8.6256 0.0 0 CLASS=PHOSPHATE SEQID=15 ATTCHORD=(4 107 B-
|
||||
M V30 r 104 Al)
|
||||
M V30 110 dR 18.2994 -8.6256 0.0 0 CLASS=SUGAR SEQID=17 ATTCHORD=(6 111 Cx 1-
|
||||
M V30 12 Al 115 Br)
|
||||
M V30 111 C 18.2994 -7.1256 0.0 0 CLASS=BASE SEQID=17 ATTCHORD=(2 110 Al)
|
||||
M V30 112 P 19.7994 -8.6256 0.0 0 CLASS=PHOSPHATE SEQID=16 ATTCHORD=(4 110 B-
|
||||
M V30 r 107 Al)
|
||||
M V30 113 dR 15.2994 -8.6256 0.0 0 CLASS=SUGAR SEQID=18 ATTCHORD=(6 114 Cx 1-
|
||||
M V30 15 Al 118 Br)
|
||||
M V30 114 A 15.2994 -7.1256 0.0 0 CLASS=BASE SEQID=18 ATTCHORD=(2 113 Al)
|
||||
M V30 115 P 16.7994 -8.6256 0.0 0 CLASS=PHOSPHATE SEQID=17 ATTCHORD=(4 113 B-
|
||||
M V30 r 110 Al)
|
||||
M V30 116 dR 12.2994 -8.6256 0.0 0 CLASS=SUGAR SEQID=19 ATTCHORD=(6 117 Cx 1-
|
||||
M V30 18 Al 121 Br)
|
||||
M V30 117 G 12.2994 -7.1256 0.0 0 CLASS=BASE SEQID=19 ATTCHORD=(2 116 Al)
|
||||
M V30 118 P 13.7994 -8.6256 0.0 0 CLASS=PHOSPHATE SEQID=18 ATTCHORD=(4 116 B-
|
||||
M V30 r 113 Al)
|
||||
M V30 119 dR 9.29948 -8.6256 0.0 0 CLASS=SUGAR SEQID=20 ATTCHORD=(6 120 Cx 1-
|
||||
M V30 21 Al 124 Br)
|
||||
M V30 120 C 9.29948 -7.1256 0.0 0 CLASS=BASE SEQID=20 ATTCHORD=(2 119 Al)
|
||||
M V30 121 P 10.7994 -8.6256 0.0 0 CLASS=PHOSPHATE SEQID=19 ATTCHORD=(4 119 B-
|
||||
M V30 r 116 Al)
|
||||
M V30 122 dR 6.29948 -8.6256 0.0 0 CLASS=SUGAR SEQID=21 ATTCHORD=(4 123 Cx 1-
|
||||
M V30 24 Al)
|
||||
M V30 123 C 6.29948 -7.1256 0.0 0 CLASS=BASE SEQID=21 ATTCHORD=(2 122 Al)
|
||||
M V30 124 P 7.79948 -8.6256 0.0 0 CLASS=PHOSPHATE SEQID=20 ATTCHORD=(4 122 B-
|
||||
M V30 r 119 Al)
|
||||
M V30 END ATOM
|
||||
M V30 BEGIN BOND
|
||||
M V30 1 1 1 2
|
||||
M V30 2 1 3 4
|
||||
M V30 3 1 1 5
|
||||
M V30 4 1 5 3
|
||||
M V30 5 1 6 7
|
||||
M V30 6 1 3 8
|
||||
M V30 7 1 8 6
|
||||
M V30 8 1 9 10
|
||||
M V30 9 1 6 11
|
||||
M V30 10 1 11 9
|
||||
M V30 11 1 12 13
|
||||
M V30 12 1 9 14
|
||||
M V30 13 1 14 12
|
||||
M V30 14 1 15 16
|
||||
M V30 15 1 12 17
|
||||
M V30 16 1 17 15
|
||||
M V30 17 1 18 19
|
||||
M V30 18 1 15 20
|
||||
M V30 19 1 20 18
|
||||
M V30 20 1 21 22
|
||||
M V30 21 1 18 23
|
||||
M V30 22 1 23 21
|
||||
M V30 23 1 24 25
|
||||
M V30 24 1 21 26
|
||||
M V30 25 1 26 24
|
||||
M V30 26 1 27 28
|
||||
M V30 27 1 24 29
|
||||
M V30 28 1 29 27
|
||||
M V30 29 1 30 31
|
||||
M V30 30 1 27 32
|
||||
M V30 31 1 32 30
|
||||
M V30 32 1 33 34
|
||||
M V30 33 1 30 35
|
||||
M V30 34 1 35 33
|
||||
M V30 35 1 36 37
|
||||
M V30 36 1 33 38
|
||||
M V30 37 1 38 36
|
||||
M V30 38 1 39 40
|
||||
M V30 39 1 36 41
|
||||
M V30 40 1 41 39
|
||||
M V30 41 1 42 43
|
||||
M V30 42 1 39 44
|
||||
M V30 43 1 44 42
|
||||
M V30 44 1 45 46
|
||||
M V30 45 1 42 47
|
||||
M V30 46 1 47 45
|
||||
M V30 47 1 48 49
|
||||
M V30 48 1 45 50
|
||||
M V30 49 1 50 48
|
||||
M V30 50 1 51 52
|
||||
M V30 51 1 48 53
|
||||
M V30 52 1 53 51
|
||||
M V30 53 1 54 55
|
||||
M V30 54 1 51 56
|
||||
M V30 55 1 56 54
|
||||
M V30 56 1 57 58
|
||||
M V30 57 1 54 59
|
||||
M V30 58 1 59 57
|
||||
M V30 59 1 60 61
|
||||
M V30 60 1 57 62
|
||||
M V30 61 1 62 60
|
||||
M V30 62 1 63 64
|
||||
M V30 63 10 61 64
|
||||
M V30 64 1 65 66
|
||||
M V30 65 1 67 65
|
||||
M V30 66 1 63 67
|
||||
M V30 67 10 58 66
|
||||
M V30 68 1 68 69
|
||||
M V30 69 1 70 68
|
||||
M V30 70 1 65 70
|
||||
M V30 71 10 55 69
|
||||
M V30 72 1 71 72
|
||||
M V30 73 1 73 71
|
||||
M V30 74 1 68 73
|
||||
M V30 75 10 52 72
|
||||
M V30 76 1 74 75
|
||||
M V30 77 1 76 74
|
||||
M V30 78 1 71 76
|
||||
M V30 79 10 49 75
|
||||
M V30 80 1 77 78
|
||||
M V30 81 1 79 77
|
||||
M V30 82 1 74 79
|
||||
M V30 83 10 46 78
|
||||
M V30 84 1 80 81
|
||||
M V30 85 1 82 80
|
||||
M V30 86 1 77 82
|
||||
M V30 87 10 43 81
|
||||
M V30 88 1 83 84
|
||||
M V30 89 1 85 83
|
||||
M V30 90 1 80 85
|
||||
M V30 91 10 40 84
|
||||
M V30 92 1 86 87
|
||||
M V30 93 1 88 86
|
||||
M V30 94 1 83 88
|
||||
M V30 95 10 37 87
|
||||
M V30 96 1 89 90
|
||||
M V30 97 1 91 89
|
||||
M V30 98 1 86 91
|
||||
M V30 99 10 34 90
|
||||
M V30 100 1 92 93
|
||||
M V30 101 1 94 92
|
||||
M V30 102 1 89 94
|
||||
M V30 103 10 31 93
|
||||
M V30 104 1 95 96
|
||||
M V30 105 1 97 95
|
||||
M V30 106 1 92 97
|
||||
M V30 107 10 28 96
|
||||
M V30 108 1 98 99
|
||||
M V30 109 1 100 98
|
||||
M V30 110 1 95 100
|
||||
M V30 111 10 25 99
|
||||
M V30 112 1 101 102
|
||||
M V30 113 1 103 101
|
||||
M V30 114 1 98 103
|
||||
M V30 115 10 22 102
|
||||
M V30 116 1 104 105
|
||||
M V30 117 1 106 104
|
||||
M V30 118 1 101 106
|
||||
M V30 119 10 19 105
|
||||
M V30 120 1 107 108
|
||||
M V30 121 1 109 107
|
||||
M V30 122 1 104 109
|
||||
M V30 123 10 16 108
|
||||
M V30 124 1 110 111
|
||||
M V30 125 1 112 110
|
||||
M V30 126 1 107 112
|
||||
M V30 127 10 13 111
|
||||
M V30 128 1 113 114
|
||||
M V30 129 1 115 113
|
||||
M V30 130 1 110 115
|
||||
M V30 131 10 10 114
|
||||
M V30 132 1 116 117
|
||||
M V30 133 1 118 116
|
||||
M V30 134 1 113 118
|
||||
M V30 135 10 7 117
|
||||
M V30 136 1 119 120
|
||||
M V30 137 1 121 119
|
||||
M V30 138 1 116 121
|
||||
M V30 139 10 4 120
|
||||
M V30 140 1 122 123
|
||||
M V30 141 1 124 122
|
||||
M V30 142 1 119 124
|
||||
M V30 143 10 2 123
|
||||
M V30 END BOND
|
||||
M V30 END CTAB
|
||||
M V30 BEGIN TEMPLATE
|
||||
M V30 TEMPLATE 1 SUGAR/dRib/dR NATREPLACE=SUGAR/R
|
||||
M V30 BEGIN CTAB
|
||||
M V30 COUNTS 11 11 4 0 0
|
||||
M V30 BEGIN ATOM
|
||||
M V30 1 C 0.294 -1.026 0.0 0 CFG=1
|
||||
M V30 2 C 1.103 -0.438 0.0 0
|
||||
M V30 3 C 0.794 0.513 0.0 0 CFG=1
|
||||
M V30 4 C -0.206 0.513 0.0 0 CFG=2
|
||||
M V30 5 O -0.515 -0.438 0.0 0
|
||||
M V30 6 O 0.294 -2.026 0.0 0
|
||||
M V30 7 O 1.382 1.322 0.0 0
|
||||
M V30 8 H 2.376 1.217 0.0 0
|
||||
M V30 9 C -0.794 1.322 0.0 0
|
||||
M V30 10 O -1.788 1.217 0.0 0
|
||||
M V30 11 H -2.376 2.026 0.0 0
|
||||
M V30 END ATOM
|
||||
M V30 BEGIN BOND
|
||||
M V30 1 1 1 5
|
||||
M V30 2 1 5 4
|
||||
M V30 3 1 4 3
|
||||
M V30 4 1 3 2
|
||||
M V30 5 1 2 1
|
||||
M V30 6 1 1 6 CFG=3
|
||||
M V30 7 1 3 7 CFG=1
|
||||
M V30 8 1 7 8
|
||||
M V30 9 1 4 9 CFG=3
|
||||
M V30 10 1 9 10
|
||||
M V30 11 1 10 11
|
||||
M V30 END BOND
|
||||
M V30 BEGIN COLLECTION
|
||||
M V30 MDLV30/STEABS ATOMS=(3 1 3 4)
|
||||
M V30 END COLLECTION
|
||||
M V30 BEGIN SGROUP
|
||||
M V30 1 SUP 1 ATOMS=(1 11) XBONDS=(1 11) BRKXYZ=(9 0.294000 -0.404500 0.0000-
|
||||
M V30 00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLAS-
|
||||
M V30 S=LGRP
|
||||
M V30 2 SUP 2 ATOMS=(1 8) XBONDS=(1 8) BRKXYZ=(9 -0.497000 0.052500 0.000000-
|
||||
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLASS=-
|
||||
M V30 LGRP
|
||||
M V30 3 SUP 3 ATOMS=(1 6) XBONDS=(1 6) BRKXYZ=(9 0.000000 0.500000 0.000000 -
|
||||
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=OH CLASS=-
|
||||
M V30 LGRP
|
||||
M V30 4 SUP 4 ATOMS=(8 1 2 3 4 5 7 9 10) XBONDS=(3 6 8 11) BRKXYZ=(9 0.00000-
|
||||
M V30 0 -0.500000 0.000000 0.497000 -0.052500 0.000000 0.000000 0.000000 0.0-
|
||||
M V30 00000) BRKXYZ=(9 -0.294000 0.404500 0.000000 0.000000 0.000000 0.00000-
|
||||
M V30 0 0.000000 0.000000 0.000000) LABEL=dR CLASS=SUGAR SAP=(3 10 11 Al) SA-
|
||||
M V30 P=(3 7 8 Br) SAP=(3 1 6 Cx) NATREPLACE=SUGAR/R
|
||||
M V30 END SGROUP
|
||||
M V30 END CTAB
|
||||
M V30 TEMPLATE 2 BASE/Gua/G NATREPLACE=BASE/G
|
||||
M V30 BEGIN CTAB
|
||||
M V30 COUNTS 12 13 2 0 0
|
||||
M V30 BEGIN ATOM
|
||||
M V30 1 N -0.438 0.541 0.0 0
|
||||
M V30 2 C -0.438 -0.459 0.0 0
|
||||
M V30 3 C 0.428 -0.959 0.0 0
|
||||
M V30 4 C 1.294 -0.459 0.0 0
|
||||
M V30 5 N 1.294 0.541 0.0 0
|
||||
M V30 6 C 0.428 1.041 0.0 0
|
||||
M V30 7 N 0.22 -1.937 0.0 0
|
||||
M V30 8 C -0.775 -2.041 0.0 0
|
||||
M V30 9 N -1.182 -1.128 0.0 0
|
||||
M V30 10 O 2.16 -0.959 0.0 0
|
||||
M V30 11 H -2.16 -0.92 0.0 0
|
||||
M V30 12 N 0.428 2.041 0.0 0
|
||||
M V30 END ATOM
|
||||
M V30 BEGIN BOND
|
||||
M V30 1 2 6 1
|
||||
M V30 2 1 1 2
|
||||
M V30 3 2 2 3
|
||||
M V30 4 1 3 4
|
||||
M V30 5 1 4 5
|
||||
M V30 6 1 5 6
|
||||
M V30 7 1 2 9
|
||||
M V30 8 1 9 8
|
||||
M V30 9 2 8 7
|
||||
M V30 10 1 7 3
|
||||
M V30 11 2 4 10
|
||||
M V30 12 1 9 11
|
||||
M V30 13 1 6 12
|
||||
M V30 END BOND
|
||||
M V30 BEGIN SGROUP
|
||||
M V30 1 SUP 1 ATOMS=(1 11) XBONDS=(1 12) BRKXYZ=(9 0.489000 -0.104000 0.0000-
|
||||
M V30 00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLAS-
|
||||
M V30 S=LGRP
|
||||
M V30 2 SUP 2 ATOMS=(11 1 2 3 4 5 6 7 8 9 10 12) XBONDS=(1 12) BRKXYZ=(9 -0.-
|
||||
M V30 489000 0.104000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -
|
||||
M V30 0.000000) LABEL=G CLASS=BASE SAP=(3 9 11 Al) NATREPLACE=BASE/G
|
||||
M V30 END SGROUP
|
||||
M V30 END CTAB
|
||||
M V30 TEMPLATE 3 PHOSPHATE/P/P NATREPLACE=PHOSPHATE/P
|
||||
M V30 BEGIN CTAB
|
||||
M V30 COUNTS 5 4 3 0 0
|
||||
M V30 BEGIN ATOM
|
||||
M V30 1 P 0.0 0.0 0.0 0
|
||||
M V30 2 O 0.5 -0.866 0.0 0
|
||||
M V30 3 O 0.5 0.866 0.0 0
|
||||
M V30 4 O -1.0 0.0 0.0 0
|
||||
M V30 5 O 1.0 0.0 0.0 0
|
||||
M V30 END ATOM
|
||||
M V30 BEGIN BOND
|
||||
M V30 1 2 1 2
|
||||
M V30 2 1 1 3
|
||||
M V30 3 1 1 4
|
||||
M V30 4 1 1 5
|
||||
M V30 END BOND
|
||||
M V30 BEGIN SGROUP
|
||||
M V30 1 SUP 1 ATOMS=(1 4) XBONDS=(1 3) BRKXYZ=(9 0.500000 0.000000 0.000000 -
|
||||
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=OH CLASS=-
|
||||
M V30 LGRP
|
||||
M V30 2 SUP 2 ATOMS=(1 5) XBONDS=(1 4) BRKXYZ=(9 -0.500000 0.000000 0.000000-
|
||||
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=OH CLASS-
|
||||
M V30 =LGRP
|
||||
M V30 3 SUP 3 ATOMS=(3 1 2 3) XBONDS=(2 3 4) BRKXYZ=(9 -0.500000 0.000000 0.-
|
||||
M V30 000000 0.500000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=P -
|
||||
M V30 CLASS=PHOSPHATE SAP=(3 1 4 Al) SAP=(3 1 5 Br) NATREPLACE=PHOSPHATE/P
|
||||
M V30 END SGROUP
|
||||
M V30 END CTAB
|
||||
M V30 TEMPLATE 4 BASE/Cyt/C NATREPLACE=BASE/C
|
||||
M V30 BEGIN CTAB
|
||||
M V30 COUNTS 9 9 2 0 0
|
||||
M V30 BEGIN ATOM
|
||||
M V30 1 C -0.5 -0.433 0.0 0
|
||||
M V30 2 N 0.5 -0.433 0.0 0
|
||||
M V30 3 C 1.0 0.433 0.0 0
|
||||
M V30 4 C 0.5 1.299 0.0 0
|
||||
M V30 5 C -0.5 1.299 0.0 0
|
||||
M V30 6 N -1.0 0.433 0.0 0
|
||||
M V30 7 N 2.0 0.433 0.0 0
|
||||
M V30 8 O -1.0 -1.299 0.0 0
|
||||
M V30 9 H -2.0 0.433 0.0 0
|
||||
M V30 END ATOM
|
||||
M V30 BEGIN BOND
|
||||
M V30 1 1 6 1
|
||||
M V30 2 1 1 2
|
||||
M V30 3 2 2 3
|
||||
M V30 4 1 3 4
|
||||
M V30 5 2 4 5
|
||||
M V30 6 1 5 6
|
||||
M V30 7 1 3 7
|
||||
M V30 8 2 1 8
|
||||
M V30 9 1 6 9
|
||||
M V30 END BOND
|
||||
M V30 BEGIN SGROUP
|
||||
M V30 1 SUP 1 ATOMS=(1 9) XBONDS=(1 9) BRKXYZ=(9 0.500000 0.000000 0.000000 -
|
||||
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLASS=L-
|
||||
M V30 GRP
|
||||
M V30 2 SUP 2 ATOMS=(8 1 2 3 4 5 6 7 8) XBONDS=(1 9) BRKXYZ=(9 -0.500000 0.0-
|
||||
M V30 00000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) -
|
||||
M V30 LABEL=C CLASS=BASE SAP=(3 6 9 Al) NATREPLACE=BASE/C
|
||||
M V30 END SGROUP
|
||||
M V30 END CTAB
|
||||
M V30 TEMPLATE 5 BASE/Thy/T NATREPLACE=BASE/T
|
||||
M V30 BEGIN CTAB
|
||||
M V30 COUNTS 10 10 2 0 0
|
||||
M V30 BEGIN ATOM
|
||||
M V30 1 C -0.5 -0.866 0.0 0
|
||||
M V30 2 C 0.5 -0.866 0.0 0
|
||||
M V30 3 C 1.0 0.0 0.0 0
|
||||
M V30 4 N 0.5 0.866 0.0 0
|
||||
M V30 5 C -0.5 0.866 0.0 0
|
||||
M V30 6 N -1.0 0.0 0.0 0
|
||||
M V30 7 O 2.0 0.0 0.0 0
|
||||
M V30 8 H -2.0 0.0 0.0 0
|
||||
M V30 9 C 1.0 -1.732 0.0 0
|
||||
M V30 10 O -1.0 1.732 0.0 0
|
||||
M V30 END ATOM
|
||||
M V30 BEGIN BOND
|
||||
M V30 1 1 6 1
|
||||
M V30 2 2 1 2
|
||||
M V30 3 1 2 3
|
||||
M V30 4 1 3 4
|
||||
M V30 5 1 4 5
|
||||
M V30 6 1 5 6
|
||||
M V30 7 2 3 7
|
||||
M V30 8 1 6 8
|
||||
M V30 9 1 2 9
|
||||
M V30 10 2 5 10
|
||||
M V30 END BOND
|
||||
M V30 BEGIN SGROUP
|
||||
M V30 1 SUP 1 ATOMS=(1 8) XBONDS=(1 8) BRKXYZ=(9 0.500000 0.000000 0.000000 -
|
||||
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLASS=L-
|
||||
M V30 GRP
|
||||
M V30 2 SUP 2 ATOMS=(9 1 2 3 4 5 6 7 9 10) XBONDS=(1 8) BRKXYZ=(9 -0.500000 -
|
||||
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.00000-
|
||||
M V30 0) LABEL=T CLASS=BASE SAP=(3 6 8 Al) NATREPLACE=BASE/T
|
||||
M V30 END SGROUP
|
||||
M V30 END CTAB
|
||||
M V30 TEMPLATE 6 BASE/Ade/A NATREPLACE=BASE/A
|
||||
M V30 BEGIN CTAB
|
||||
M V30 COUNTS 11 12 2 0 0
|
||||
M V30 BEGIN ATOM
|
||||
M V30 1 N -0.438 1.041 0.0 0
|
||||
M V30 2 C -0.438 0.041 0.0 0
|
||||
M V30 3 C 0.428 -0.459 0.0 0
|
||||
M V30 4 C 1.294 0.041 0.0 0
|
||||
M V30 5 N 1.294 1.041 0.0 0
|
||||
M V30 6 C 0.428 1.541 0.0 0
|
||||
M V30 7 N 0.22 -1.437 0.0 0
|
||||
M V30 8 C -0.775 -1.541 0.0 0
|
||||
M V30 9 N -1.182 -0.628 0.0 0
|
||||
M V30 10 N 2.16 -0.459 0.0 0
|
||||
M V30 11 H -2.16 -0.42 0.0 0
|
||||
M V30 END ATOM
|
||||
M V30 BEGIN BOND
|
||||
M V30 1 2 6 1
|
||||
M V30 2 1 1 2
|
||||
M V30 3 2 2 3
|
||||
M V30 4 1 3 4
|
||||
M V30 5 2 4 5
|
||||
M V30 6 1 5 6
|
||||
M V30 7 1 2 9
|
||||
M V30 8 1 9 8
|
||||
M V30 9 2 8 7
|
||||
M V30 10 1 7 3
|
||||
M V30 11 1 4 10
|
||||
M V30 12 1 9 11
|
||||
M V30 END BOND
|
||||
M V30 BEGIN SGROUP
|
||||
M V30 1 SUP 1 ATOMS=(1 11) XBONDS=(1 12) BRKXYZ=(9 0.489000 -0.104000 0.0000-
|
||||
M V30 00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLAS-
|
||||
M V30 S=LGRP
|
||||
M V30 2 SUP 2 ATOMS=(10 1 2 3 4 5 6 7 8 9 10) XBONDS=(1 12) BRKXYZ=(9 -0.489-
|
||||
M V30 000 0.104000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.0-
|
||||
M V30 00000) LABEL=A CLASS=BASE SAP=(3 9 11 Al) NATREPLACE=BASE/A
|
||||
M V30 END SGROUP
|
||||
M V30 END CTAB
|
||||
M V30 END TEMPLATE
|
||||
M END
|
||||
109
Code/GraphMol/MarvinParse/test_data/rnaTest.mol
Normal file
109
Code/GraphMol/MarvinParse/test_data/rnaTest.mol
Normal file
@@ -0,0 +1,109 @@
|
||||
|
||||
-INDIGO-07162514412D
|
||||
|
||||
0 0 0 0 0 0 0 0 0 0 0 V3000
|
||||
M V30 BEGIN CTAB
|
||||
M V30 COUNTS 2 1 0 0 0
|
||||
M V30 BEGIN ATOM
|
||||
M V30 1 R 1.25 -1.25 0.0 0 CLASS=SUGAR SEQID=1 ATTCHORD=(2 2 Cx)
|
||||
M V30 2 G 1.25 -2.75 0.0 0 CLASS=BASE SEQID=1 ATTCHORD=(2 1 Al)
|
||||
M V30 END ATOM
|
||||
M V30 BEGIN BOND
|
||||
M V30 1 1 1 2
|
||||
M V30 END BOND
|
||||
M V30 END CTAB
|
||||
M V30 BEGIN TEMPLATE
|
||||
M V30 TEMPLATE 1 SUGAR/Rib/R NATREPLACE=SUGAR/R
|
||||
M V30 BEGIN CTAB
|
||||
M V30 COUNTS 12 12 4 0 0
|
||||
M V30 BEGIN ATOM
|
||||
M V30 1 C 1.499 1.176 0.0 0 CFG=1
|
||||
M V30 2 C 1.656 0.188 0.0 0 CFG=2
|
||||
M V30 3 C 0.765 -0.266 0.0 0 CFG=1
|
||||
M V30 4 C 0.058 0.441 0.0 0 CFG=2
|
||||
M V30 5 O 0.512 1.332 0.0 0
|
||||
M V30 6 O 2.207 1.883 0.0 0
|
||||
M V30 7 O 0.608 -1.254 0.0 0
|
||||
M V30 8 O 2.547 -0.266 0.0 0
|
||||
M V30 9 H 1.386 -1.883 0.0 0
|
||||
M V30 10 C -0.93 0.285 0.0 0
|
||||
M V30 11 O -1.559 1.062 0.0 0
|
||||
M V30 12 H -2.547 0.905 0.0 0
|
||||
M V30 END ATOM
|
||||
M V30 BEGIN BOND
|
||||
M V30 1 1 1 5
|
||||
M V30 2 1 5 4
|
||||
M V30 3 1 4 3
|
||||
M V30 4 1 3 2
|
||||
M V30 5 1 2 1
|
||||
M V30 6 1 1 6 CFG=1
|
||||
M V30 7 1 3 7 CFG=3
|
||||
M V30 8 1 2 8 CFG=1
|
||||
M V30 9 1 7 9
|
||||
M V30 10 1 4 10 CFG=1
|
||||
M V30 11 1 10 11
|
||||
M V30 12 1 11 12
|
||||
M V30 END BOND
|
||||
M V30 BEGIN COLLECTION
|
||||
M V30 MDLV30/STEABS ATOMS=(4 1 2 3 4)
|
||||
M V30 END COLLECTION
|
||||
M V30 BEGIN SGROUP
|
||||
M V30 1 SUP 1 ATOMS=(1 12) XBONDS=(1 12) BRKXYZ=(9 0.494000 0.078500 0.00000-
|
||||
M V30 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLASS-
|
||||
M V30 =LGRP
|
||||
M V30 2 SUP 2 ATOMS=(1 9) XBONDS=(1 9) BRKXYZ=(9 -0.389000 0.314500 0.000000-
|
||||
M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLASS=-
|
||||
M V30 LGRP
|
||||
M V30 3 SUP 3 ATOMS=(1 6) XBONDS=(1 6) BRKXYZ=(9 -0.354000 -0.353500 0.00000-
|
||||
M V30 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=OH CLAS-
|
||||
M V30 S=LGRP
|
||||
M V30 4 SUP 4 ATOMS=(9 1 2 3 4 5 7 8 10 11) XBONDS=(3 6 9 12) BRKXYZ=(9 0.35-
|
||||
M V30 4000 0.353500 0.000000 0.389000 -0.314500 0.000000 0.000000 0.000000 0-
|
||||
M V30 .000000) BRKXYZ=(9 -0.494000 -0.078500 0.000000 0.000000 0.000000 0.00-
|
||||
M V30 0000 0.000000 0.000000 0.000000) LABEL=R CLASS=SUGAR SAP=(3 11 12 Al) -
|
||||
M V30 SAP=(3 7 9 Br) SAP=(3 1 6 Cx) NATREPLACE=SUGAR/R
|
||||
M V30 END SGROUP
|
||||
M V30 END CTAB
|
||||
M V30 TEMPLATE 2 BASE/Gua/G NATREPLACE=BASE/G
|
||||
M V30 BEGIN CTAB
|
||||
M V30 COUNTS 12 13 2 0 0
|
||||
M V30 BEGIN ATOM
|
||||
M V30 1 N -0.438 0.541 0.0 0
|
||||
M V30 2 C -0.438 -0.459 0.0 0
|
||||
M V30 3 C 0.428 -0.959 0.0 0
|
||||
M V30 4 C 1.294 -0.459 0.0 0
|
||||
M V30 5 N 1.294 0.541 0.0 0
|
||||
M V30 6 C 0.428 1.041 0.0 0
|
||||
M V30 7 N 0.22 -1.937 0.0 0
|
||||
M V30 8 C -0.775 -2.041 0.0 0
|
||||
M V30 9 N -1.182 -1.128 0.0 0
|
||||
M V30 10 O 2.16 -0.959 0.0 0
|
||||
M V30 11 H -2.16 -0.92 0.0 0
|
||||
M V30 12 N 0.428 2.041 0.0 0
|
||||
M V30 END ATOM
|
||||
M V30 BEGIN BOND
|
||||
M V30 1 2 6 1
|
||||
M V30 2 1 1 2
|
||||
M V30 3 2 2 3
|
||||
M V30 4 1 3 4
|
||||
M V30 5 1 4 5
|
||||
M V30 6 1 5 6
|
||||
M V30 7 1 2 9
|
||||
M V30 8 1 9 8
|
||||
M V30 9 2 8 7
|
||||
M V30 10 1 7 3
|
||||
M V30 11 2 4 10
|
||||
M V30 12 1 9 11
|
||||
M V30 13 1 6 12
|
||||
M V30 END BOND
|
||||
M V30 BEGIN SGROUP
|
||||
M V30 1 SUP 1 ATOMS=(1 11) XBONDS=(1 12) BRKXYZ=(9 0.489000 -0.104000 0.0000-
|
||||
M V30 00 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) LABEL=H CLAS-
|
||||
M V30 S=LGRP
|
||||
M V30 2 SUP 2 ATOMS=(11 1 2 3 4 5 6 7 8 9 10 12) XBONDS=(1 12) BRKXYZ=(9 -0.-
|
||||
M V30 489000 0.104000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -
|
||||
M V30 0.000000) LABEL=G CLASS=BASE SAP=(3 9 11 Al) NATREPLACE=BASE/G
|
||||
M V30 END SGROUP
|
||||
M V30 END CTAB
|
||||
M V30 END TEMPLATE
|
||||
M END
|
||||
@@ -31,6 +31,7 @@
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
package org.RDKit;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.io.*;
|
||||
@@ -44,14 +45,14 @@ public class AromaticTests extends GraphMolTest {
|
||||
@Test
|
||||
public void testAromaticRegression() throws Exception {
|
||||
String filePath = getFilePath("aromat_regress.txt");
|
||||
performAromaticTest(filePath,0);
|
||||
performAromaticTest(filePath, 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNCIAromaticRegression() throws Exception {
|
||||
String filePath = getFilePath("NCI_aromat_regress.txt");
|
||||
// assertEquals(filePath,"foo");
|
||||
performAromaticTest(filePath,0);
|
||||
performAromaticTest(filePath, 0);
|
||||
}
|
||||
|
||||
public void performAromaticTest(String filePath, int expectedFailures) throws Exception {
|
||||
@@ -74,13 +75,14 @@ public class AromaticTests extends GraphMolTest {
|
||||
}
|
||||
}
|
||||
}
|
||||
assertEquals("More than " + expectedFailures + " on file " + filePath, expectedFailures, nFailed);
|
||||
|
||||
assertEquals("More than " + expectedFailures + " on file " + filePath,
|
||||
expectedFailures, nFailed);
|
||||
}
|
||||
|
||||
public String getFilePath(String fileName) {
|
||||
File base = getRdBase();
|
||||
File testFileDir = new File(base, "rdkit" + File.separator + "Chem" + File.separator + "test_data");
|
||||
File testFileDir = new File(base, "rdkit" + File.separator + "Chem" +
|
||||
File.separator + "test_data");
|
||||
return testFileDir.getAbsolutePath() + File.separator + fileName;
|
||||
}
|
||||
|
||||
@@ -88,7 +90,7 @@ public class AromaticTests extends GraphMolTest {
|
||||
String smi1;
|
||||
String smi2;
|
||||
int numAromatics;
|
||||
int[] aromaticIdx;
|
||||
int[] aromaticIdx;
|
||||
int lineNo;
|
||||
|
||||
public AromaticTestEntry(int lineNo, String[] line) {
|
||||
@@ -100,7 +102,8 @@ public class AromaticTests extends GraphMolTest {
|
||||
// Catch a null string
|
||||
String[] aromatics = aromaticList.length() > 0 ? aromaticList.split(",")
|
||||
: new String[0];
|
||||
assertTrue("bad test line at " + lineNo, aromatics.length == numAromatics || smi2.equals("FAIL"));
|
||||
assertTrue("bad test line at " + lineNo, aromatics.length == numAromatics ||
|
||||
smi2.equals("FAIL"));
|
||||
aromaticIdx = new int[aromatics.length];
|
||||
for (int i = 0; i < aromatics.length; i++)
|
||||
aromaticIdx[i] = Integer.parseInt(aromatics[i].trim());
|
||||
|
||||
Reference in New Issue
Block a user