Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;

}