[Rdkit-discuss] Multiple products with runReactants in C++
Open-Source Cheminformatics and Machine Learning
Brought to you by:
glandrum
|
From: Andreas L. <and...@gm...> - 2023-08-06 14:47:38
|
Dear RDKit community,
I'm trying to convert phenolic hydroxyls into fluorines with runReactants.
In my example below, I attempt turning resorcinol into 3-fluorophenol and
1,3-difluorobenzene.
#include <string>
#include <vector>
#include <GraphMol/GraphMol.h>
#include <GraphMol/SmilesParse/SmilesParse.h>
#include <GraphMol/SmilesParse/SmilesWrite.h>
#include <GraphMol/ChemReactions/Reaction.h>
#include <GraphMol/ChemReactions/ReactionParser.h>
int main()
{
RDKit::ChemicalReaction *rxn = RDKit::RxnSmartsToChemicalReaction("
[c:1][OH]>>[c:1][F]");
rxn->initReactantMatchers();
RDKit::ROMol *mol_to_convert(RDKit::SmilesToMol("c1cc(cc(c1)O)O"));
RDKit::MOL_SPTR_VECT reacts;
reacts.push_back(RDKit::ROMOL_SPTR(mol_to_convert));
std::vector<RDKit::MOL_SPTR_VECT> converted_molecules;
converted_molecules = rxn->runReactants(reacts,1);
for (const auto& product_vector : converted_molecules)
{
for (const auto& product : product_vector)
{
std::string converted_smiles = RDKit::MolToSmiles(*product);
std::cout << "Converted smiles: " << converted_smiles << std::endl;
}
}
return 0;
}
No matter what *unsigned int* I choose for the number of products, I get a
single molecule (3-fluorophenol) as output. Resorcinol has two hydroxyls
that can turn into fluorines, why is 1,3-difluorobenzene not listed as a
product?
Thanks in advance!
Best regards,
Andreas
|