int main(int argc, char **argv) { std::string file_root = getenv("RDBASE"); file_root += "/Docs/Book"; std::string mol_file = file_root + "/data/chiral.mol"; RDKit::ROMOL_SPTR mol(RDKit::MolFileToMol(mol_file)); std::cout << RDKit::MolToSmiles(*mol, true) << std::endl; // 2nd parameter doIsomericSmiles defaults to true std::cout << RDKit::MolToSmiles(*mol, false) << std::endl; RDKit::ROMOL_SPTR mol1(RDKit::SmilesToMol("C1=CC=CN=C1")); std::cout << RDKit::MolToSmiles(*mol1) << std::endl; RDKit::ROMOL_SPTR mol2(RDKit::SmilesToMol("c1cccnc1")); std::cout << RDKit::MolToSmiles(*mol2) << std::endl; RDKit::ROMOL_SPTR mol3(RDKit::SmilesToMol("n1ccccc1")); std::cout << RDKit::MolToSmiles(*mol3) << std::endl; RDKit::RWMOL_SPTR mol4(new RDKit::RWMol(*mol)); RDKit::MolOps::Kekulize(*mol4); std::cout << RDKit::MolToSmiles(*mol4) << std::endl; mol1.reset(RDKit::SmilesToMol("C1CCC1")); std::cout << RDKit::MolToMolBlock(*mol1) << std::endl; mol1->setProp("_Name", "cyclobutane"); std::cout << RDKit::MolToMolBlock(*mol1) << std::endl; }
void MspReaderTest::runTest(){ bool pass = true; double tol = 1e-5; MspReader msp = MspReader("tests/test_data/nist2011_cutdown.msp", "NIST2011_"); std::cout << std::setprecision(8); //Test first spectrum in msp config_t cfg; initDefaultConfig(cfg); MolData mol1( "NIST2011_1", "InChI=1S/H2/h1H", &cfg ); mol1.readInSpectraFromMSP( msp ); if( mol1.getNumSpectra() != 1 ){ std::cout << "Unexpected number of spectra for NIST2011_1: " << mol1.getNumSpectra() << std::endl; pass = false; } else{ const Spectrum *spec = mol1.getSpectrum(0); if( spec->size() != 2 ){ std::cout << "Unexpected number of peaks in spectrum: expecting 2 but found " << spec->size() << std::endl; pass = false; } else{ if( fabs(spec->getPeak(0)->mass - 1.0) > tol || fabs(spec->getPeak(0)->intensity - 2.056903) > tol || fabs(spec->getPeak(1)->mass - 2.0) > tol || fabs(spec->getPeak(1)->intensity - 97.9430962) > tol ){ std::cout << "Unexpected peaks in spectrum:" << std::endl; std::cout << "Expecting 1 20.98, 2 97.9431" << std::endl; std::cout << "Found " << spec->getPeak(0)->mass << " " << spec->getPeak(0)->intensity << ", " << spec->getPeak(1)->mass << " " << spec->getPeak(1)->intensity << std::endl; pass = false; } } } //Test mid spectrum in msp MolData mol2( "NIST2011_71459", "InChI=1S/H2/h1H", &cfg ); mol2.readInSpectraFromMSP( msp ); if( mol2.getNumSpectra() != 1 ){ std::cout << "Unexpected number of spectra for NIST2011_71459: " << mol2.getNumSpectra() << std::endl; pass = false; } else{ const Spectrum *spec = mol2.getSpectrum(0); if( spec->size() != 166 ){ std::cout << "Unexpected number of peaks in spectrum: expecting 166 but found " << spec->size() << std::endl; pass = false; } else{ if( fabs(spec->getPeak(0)->mass - 33.0) > tol || fabs(spec->getPeak(0)->intensity - 0.010019287) > tol || fabs(spec->getPeak(165)->mass - 469.0) > tol || fabs(spec->getPeak(165)->intensity - 0.0050096436) > tol ){ std::cout << "Unexpected peaks in spectrum:" << std::endl; std::cout << "Expecting 33 0.010019287, ...., 469 0.0050096436" << std::endl; std::cout << "Found " << spec->getPeak(0)->mass << " " << spec->getPeak(0)->intensity << ",...., " << spec->getPeak(165)->mass << " " << spec->getPeak(165)->intensity << std::endl; pass = false; } } } //Test last spectrum in msp MolData mol3( "NIST2011_212964", "InChI=1S/H2/h1H", &cfg ); mol3.readInSpectraFromMSP( msp ); if( mol3.getNumSpectra() != 1 ){ std::cout << "Unexpected number of spectra for NIST2011_212964: " << mol3.getNumSpectra() << std::endl; pass = false; } else{ const Spectrum *spec = mol3.getSpectrum(0); if( spec->size() != 30 ){ std::cout << "Unexpected number of peaks in spectrum: expecting 30 but found " << spec->size() << std::endl; pass = false; } else{ if( fabs(spec->getPeak(0)->mass - 192.0) > tol || fabs(spec->getPeak(0)->intensity - 0.87150087) > tol || fabs(spec->getPeak(29)->mass - 1168.0) > tol || fabs(spec->getPeak(29)->intensity - 18.15324) > tol ){ std::cout << "Unexpected peaks in spectrum:" << std::endl; std::cout << "Expecting 192 0.87150087, ...., 1168.0 18.15324" << std::endl; std::cout << "Found " << spec->getPeak(0)->mass << " " << spec->getPeak(0)->intensity << ",...., " << spec->getPeak(29)->mass << " " << spec->getPeak(29)->intensity << std::endl; pass = false; } } } passed = pass; }