(
"Error reading standard residue dictionary: "<< err);
86 standardDictionary->
GetId().front().GetObject().GetOther_database().GetDb() !=
"Standard residue dictionary"||
89 FATALMSG(
"file '"<< filename <<
"' does not contain expected dictionary data");
106 FATALMSG(
"need to load standard dictionary first");
117CBiostruc_graph::TDescr::const_iterator d, de = graph.
GetDescr().end();
118 for(d=graph.
GetDescr().begin(); d!=de; ++d) {
119 if((*d)->IsName()) {
120 name= (*d)->GetName();
131object->
coordSets.front()->atomSet->ensembles.size() > 1) {
133 AtomSet*atomSet =
object->coordSets.front()->atomSet;
134AtomSet::EnsembleList::iterator e, ee=atomSet->
ensembles.end();
135 for(e=atomSet->
ensembles.begin(); e!=ee; ++e) {
143StructureObject::CoordSetList::const_iterator c, ce=
object->coordSets.end();
144 for(c=object->
coordSets.begin(); c!=ce; ++c) {
146 reinterpret_cast<const string*
>(
NULL)));
153 WARNINGMSG(
"ChemicalGraph has zero AtomSets!");
161CBiostruc_graph::TMolecule_graphs::const_iterator
i, ie=graph.
GetMolecule_graphs().end();
169 ERRORMSG(
"confused by repeated Molecule-graph ID's");
176 for(
int n=0;
n<nAlts; ++
n) {
199 intorder = j->GetObject().IsSetBond_order() ?
202j->GetObject().GetAtom_id_1(),
203j->GetObject().GetAtom_id_2(),
208j->GetObject().GetAtom_id_1(), j->GetObject().GetAtom_id_2(),
222 for(
int n=0;
n<nAlts; ++
n) {
229FeatureList::const_iterator
l,
le= features.end();
230 for(
l=features.begin();
l!=
le; ++
l) {
231 if(
l->GetObject().IsSetDescr()) {
234CBiostruc_feature_set::TDescr::const_iterator d, de =
l->GetObject().GetDescr().end();
235 for(d=
l->GetObject().GetDescr().begin(); d!=de; ++d) {
236 if(d->GetObject().IsName()) {
237 if(d->GetObject().GetName() ==
"NCBI assigned secondary structure")
239 else if(d->GetObject().GetName() ==
"NCBI Domains")
250list < int > moleculeIDs;
251MoleculeMap::iterator m, me =
molecules.end();
252 for(m=
molecules.begin(); m!=me; ++m) {
253 if(m->second->IsProtein() || m->second->IsNucleotide())
254moleculeIDs.push_back(m->first);
257list < int >::const_iterator id, ide = moleculeIDs.end();
258 for(
id=moleculeIDs.begin();
id!=ide; ++id) {
266(
const_cast<StructureObject*
>(object))->domainMap[domainID] = molecule;
267(
const_cast<StructureObject*
>(object))->domainID2MMDB[domainID] = -1;
276 TRACEMSG(
"unpacking NCBI domain features");
277CBiostruc_feature_set::TFeatures::const_iterator
f, fe = featureSet.
GetFeatures().end();
280 f->GetObject().IsSetLocation() &&
281 f->GetObject().GetLocation().IsSubgraph() &&
282 f->GetObject().GetLocation().GetSubgraph().IsResidues() &&
283 f->GetObject().GetLocation().GetSubgraph().GetResidues().IsInterval()) {
290CResidue_pntrs::TInterval::const_iterator
i,
291ie =
f->GetObject().GetLocation().GetSubgraph().GetResidues().GetInterval().end();
292 for(
i=
f->GetObject().GetLocation().GetSubgraph().GetResidues().GetInterval().begin();
i!=ie; ++
i) {
293MoleculeMap::const_iterator m =
molecules.find(
i->GetObject().GetMolecule_id().Get());
296 f->GetObject().GetLocation().GetSubgraph().GetResidues().GetInterval().
297 front().GetObject().GetMolecule_id().Get()) {
298 WARNINGMSG(
"Bad moleculeID in domain interval");
301molecule =
const_cast<Molecule*
>(m->second);
302 for(
int r=
i->GetObject().GetFrom().Get()-1;
r<=
i->GetObject().GetTo().Get()-1; ++
r) {
303 if(r < 0 || r >= (
int)molecule->
residues.size()) {
304 ERRORMSG(
"Bad residue range in domain feature for moleculeID " 305<< molecule->
id<<
" residueID "<<
r+1);
308 WARNINGMSG(
"Overlapping domain feature for moleculeID " 309<< molecule->
id<<
" residueID "<<
r+1);
322 f->GetObject().GetId().Get();
331 TRACEMSG(
"unpacking NCBI sec. struc. features");
332CBiostruc_feature_set::TFeatures::const_iterator
f, fe = featureSet.
GetFeatures().end();
336 f->GetObject().IsSetLocation() &&
337 f->GetObject().GetLocation().IsSubgraph() &&
338 f->GetObject().GetLocation().GetSubgraph().IsResidues() &&
339 f->GetObject().GetLocation().GetSubgraph().GetResidues().IsInterval()) {
342 if(
f->GetObject().GetLocation().GetSubgraph().GetResidues().GetInterval().size() > 1) {
343 WARNINGMSG(
"Can't deal with multi-interval sec. struc. regions");
347 f->GetObject().GetLocation().GetSubgraph().GetResidues().GetInterval().front().GetObject();
350 WARNINGMSG(
"Bad moleculeID in sec. struc. interval");
355 if(r < 0 || r >= (
int)molecule->
residues.size()) {
356 ERRORMSG(
"Bad residue range in sec. struc. feature for moleculeID " 357<< molecule->
id<<
" residueID "<<
r+1);
360 WARNINGMSG(
"Overlapping sec. struc. feature at moleculeID " 361<< molecule->
id<<
" residueID "<<
r+1);
389<<
" of ChemicalGraph of object "<< object->
GetPDBID());
394 boolcontinueDraw =
false;
396MoleculeMap::const_iterator m, me=
molecules.end();
397 for(m=
molecules.begin(); m!=me; ++m) {
398 if(!m->second->IsProtein() && !m->second->IsNucleotide())
continue;
401Molecule::DisplayListList::const_iterator md=m->second->displayLists.begin();
410 a->first->SetActiveEnsemble(
a->second);
411continueDraw = m->second->DrawAllWithTerminiLabels(
a->first);
416 if(
a->first->GetParentOfType(&coordSet)) {
417CoordSet::Object3DMap::const_iterator objList = coordSet->
objectMap.find(m->second->id);
418 if(objList != coordSet->
objectMap.end()) {
419CoordSet::Object3DList::const_iterator o, oe=objList->second.end();
420 for(o=objList->second.begin(); o!=oe; ++o) {
421 if(!(continueDraw = (*o)->Draw(
a->first)))
break;
430 if(!continueDraw)
return false;
447 a->first->SetActiveEnsemble(
a->second);
450continueDraw =
true;
451 for(m=
molecules.begin(); m!=me; ++m) {
452 if(m->second->IsProtein() || m->second->IsNucleotide())
continue;
453 if(!(continueDraw = m->second->DrawAll(
a->first)))
break;
459 if(!(continueDraw = (*b)->Draw(
a->first)))
break;
465 if(!continueDraw)
return false;
480mol1 = mol2 = molecule;
482MoleculeMap::const_iterator
486 ERRORMSG(
"ChemicalGraph::CheckForDisulfide() - bad molecule ID");
493Molecule::ResidueMap::const_iterator
497 ERRORMSG(
"ChemicalGraph::CheckForDisulfide() - bad residue ID");
506*atom1 = res1->second->GetAtomInfo(atomPtr1.
GetAtom_id().
Get()),
507*atom2 = res2->second->GetAtomInfo(atomPtr2.
GetAtom_id().
Get());
508 if(!atom1 || !atom2) {
509 ERRORMSG(
"ChemicalGraph::CheckForDisulfide() - bad atom ID");
530 if(!virtualDisulfide)
return false;
532bondList->push_back(virtualDisulfide);
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
const Bond * MakeBond(StructureBase *parent, int mID1, int rID1, int aID1, int mID2, int rID2, int aID2, int bondOrder)
void LoadStandardDictionary(const char *filename)
static const CBiostruc_residue_graph_set * standardDictionary
void DeleteStandardDictionary(void)
static int moleculeToRedraw
std::list< ncbi::CRef< ncbi::objects::CBiostruc_feature_set > > FeatureList
CBiostruc_feature_set â.
CBiostruc_residue_graph_set â.
CResidue_interval_pntr â.
bool CheckForDisulfide(const Molecule *molecule, const ncbi::objects::CAtom_pntr &atomPtr1, const ncbi::objects::CAtom_pntr &atomPtr2, std::list< const Bond * > *bondList, Bond *bond, StructureBase *parent)
unsigned int displayListOtherStart
BondList interMoleculeBonds
void RedrawMolecule(int moleculeID) const
void UnpackSecondaryStructureFeatures(const ncbi::objects::CBiostruc_feature_set &featureSet)
bool DrawAll(const AtomSet *atomSet=NULL) const
void UnpackDomainFeatures(const ncbi::objects::CBiostruc_feature_set &featureSet)
ChemicalGraph(StructureBase *parent, const ncbi::objects::CBiostruc_graph &graph, const FeatureList &features)
std::vector< int > residueDomains
bool IsNucleotide(void) const
DisplayListList displayLists
std::vector< eSecStruc > residueSecondaryStructures
static const int NO_DOMAIN_SET
bool IsProtein(void) const
void StartDisplayList(unsigned int list)
void EndDisplayList(void)
static const unsigned int NO_LIST
static const int NO_ALPHA_ID
bool GetParentOfType(const T **ptr, bool warnIfNotFound=true) const
std::string GetPDBID(char separator='_') const
unsigned int lastDisplayList
TransformMap transformMap
bool IsMultiStructure(void) const
OpenGLRenderer * renderer
Include a standard set of the NCBI C++ Toolkit most basic headers.
static bool ReadASNFromFile(const char *filename, ASNClass *ASNobject, bool isBinary, std::string *err)
const TPrim & Get(void) const
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_SCOPE(ns)
Define a new scope.
const TMolecule_id & GetMolecule_id(void) const
Get the Molecule_id member data.
const TResidue_graphs & GetResidue_graphs(void) const
Get the Residue_graphs member data.
bool IsSetDescr(void) const
Check if a value has been assigned to Descr data member.
const TInter_molecule_bonds & GetInter_molecule_bonds(void) const
Get the Inter_molecule_bonds member data.
const TDescr & GetDescr(void) const
Get the Descr member data.
const TResidue_id & GetResidue_id(void) const
Get the Residue_id member data.
const TAtom_id & GetAtom_id(void) const
Get the Atom_id member data.
const TMolecule_graphs & GetMolecule_graphs(void) const
Get the Molecule_graphs member data.
bool IsSetInter_molecule_bonds(void) const
Check if a value has been assigned to Inter_molecule_bonds data member.
const TFeatures & GetFeatures(void) const
Get the Features member data.
const TTo & GetTo(void) const
Get the To member data.
const TFrom & GetFrom(void) const
Get the From member data.
const TMolecule_id & GetMolecule_id(void) const
Get the Molecule_id member data.
@ eType_subgraph
NCBI domain reserved.
const TResidue_graphs & GetResidue_graphs(void) const
Get the Residue_graphs member data.
const TId & GetId(void) const
Get the Id member data.
bool IsSetId(void) const
Check if a value has been assigned to Id data member.
constexpr auto front(list< Head, As... >, T=T()) noexcept -> Head
bool le(T x_, T y_, T round_)
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
static SLJIT_INLINE sljit_ins l(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4