本文整理汇总了C++中OBMol::GetLSSR方法的典型用法代码示例。如果您正苦于以下问题:C++ OBMol::GetLSSR方法的具体用法?C++ OBMol::GetLSSR怎么用?C++ OBMol::GetLSSR使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OBMol
的用法示例。
在下文中一共展示了OBMol::GetLSSR方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getIdRingPaths
std::vector< std::vector<unsigned long> > getIdRingPaths(OBMol &mol)
{
mol.UnsetFlag(OB_LSSR_MOL);
mol.DeleteData("LSSR");
std::vector<OBRing*> lssr = mol.GetLSSR();
std::vector< std::vector<unsigned long> > idPaths;
for (unsigned int i = 0; i < lssr.size(); ++i) {
OBRing *ring = lssr[i];
std::vector<unsigned long> idPath;
for (unsigned int j = 0; j < ring->_path.size(); ++j) {
idPath.push_back(mol.GetAtom(ring->_path[j])->GetId());
}
std::sort(idPath.begin(), idPath.end());
idPaths.push_back(idPath);
}
/*
cout << "# idPaths = " << idPaths.size() << endl;
for (unsigned int i = 0; i < idPaths.size(); ++i) {
cout << " ring: ";
for (unsigned int j = 0; j < idPaths[i].size(); ++j) {
cout << idPaths[i][j] << " ";
}
cout << endl;
}
*/
return idPaths;
}
示例2: verifyLSSR
bool verifyLSSR(const std::string &filename, const LSSR &ref)
{
cout << "Verify LSSR: " << filename << endl;
std::string file = OBTestUtil::GetFilename(filename);
// read a smiles string
OBMol mol;
OBConversion conv;
OBFormat *format = conv.FormatFromExt(file.c_str());
OB_REQUIRE( format );
OB_REQUIRE( conv.SetInFormat(format) );
std::ifstream ifs;
ifs.open(file.c_str());
OB_REQUIRE( ifs );
OB_REQUIRE( conv.Read(&mol, &ifs) );
std::vector<int> ringSizeCount(20, 0);
std::vector<OBRing*> lssr = mol.GetLSSR();
for (unsigned int i = 0; i < lssr.size(); ++i) {
ringSizeCount[lssr[i]->_path.size()]++;
}
/*
cout << "ringSize: ringCount" << endl;
cout << "3: " << ringSizeCount[3] << endl;
cout << "4: " << ringSizeCount[4] << endl;
cout << "5: " << ringSizeCount[5] << endl;
cout << "6: " << ringSizeCount[6] << endl;
*/
bool fail = false;
for (unsigned int i = 0; i < ref.size_count.size(); ++i) {
const LSSR::Size_Count &size_count = ref.size_count[i];
OB_ASSERT( ringSizeCount[size_count.ringSize] == size_count.ringCount );
}
return true;
}