diff --git a/modules/mol/base/doc/query.rst b/modules/mol/base/doc/query.rst index 16e9a3a02ec090145aab816ecd0f016be70e7996..99c2392fe40673dc70d182175db703c4887614a1 100644 --- a/modules/mol/base/doc/query.rst +++ b/modules/mol/base/doc/query.rst @@ -219,6 +219,9 @@ This index is the same for views and handles. **peptide** (bool): Whether the residue is :attr:`peptide linking <ResidueHandle.peptide_linking>`. +**nucleotide** (bool): Whether the residue is :attr:`nucleotide linking +<ResidueHandle.nucleotide_linking>`. + **protein** (bool): Whether the residue is considered to be :attr:`part of a connected protein <ResidueHandle.is_protein>`. diff --git a/modules/mol/base/src/property_id.cc b/modules/mol/base/src/property_id.cc index 467227294144e5cdfcb9afe3f0d79f4927324f86..ad2f9033320bfaf56715c72c60e48f6d60c48840 100644 --- a/modules/mol/base/src/property_id.cc +++ b/modules/mol/base/src/property_id.cc @@ -50,6 +50,7 @@ struct Properties : public boost::spirit::symbols<Prop> { ("abfac", Prop(Prop::ABFAC, Prop::FLOAT, Prop::ATOM)) ("rbfac", Prop(Prop::RBFAC, Prop::FLOAT, Prop::RESIDUE)) ("peptide", Prop(Prop::PEPTIDE, Prop::INT, Prop::RESIDUE)) + ("nucleotide", Prop(Prop::NUCLEOTIDE, Prop::INT, Prop::RESIDUE)) ("rindex", Prop(Prop::RINDEX, Prop::INT, Prop::RESIDUE)) ("protein", Prop(Prop::PROTEIN, Prop::INT, Prop::RESIDUE)) ("ligand", Prop(Prop::LIGAND, Prop::INT, Prop::RESIDUE)) @@ -111,7 +112,9 @@ String Prop::GetName() const case ABFAC: return "abfac"; case PEPTIDE: - return "peptide"; + return "peptide"; + case NUCLEOTIDE: + return "nucleotide"; case ACHARGE: return "acharge"; case RINDEX: diff --git a/modules/mol/base/src/property_id.hh b/modules/mol/base/src/property_id.hh index 7fec20853d02b62dd19adb6259ba583297255c7f..a3b24ac42d1fbbf9f7795e4b70496166e2a0f309 100644 --- a/modules/mol/base/src/property_id.hh +++ b/modules/mol/base/src/property_id.hh @@ -39,9 +39,9 @@ public: /// the GenericProp 'propname' at the atom, residue and chain level /// respectively. typedef enum { - RNAME, ANAME, CNAME, ELE, RNUM, ANUM, AX, AY, AZ, OCC, AINDEX, RTYPE, ISHETATM, - RBFAC, ABFAC, PEPTIDE, ACHARGE, RINDEX, PROTEIN, LIGAND, WATER, WITHIN, - UNDEF, CUSTOM + RNAME, ANAME, CNAME, ELE, RNUM, ANUM, AX, AY, AZ, OCC, AINDEX, RTYPE, + ISHETATM, RBFAC, ABFAC, PEPTIDE, NUCLEOTIDE, ACHARGE, RINDEX, PROTEIN, + LIGAND, WATER, WITHIN, UNDEF, CUSTOM } ID; typedef enum { diff --git a/modules/mol/base/src/query_state.cc b/modules/mol/base/src/query_state.cc index 2b18845d3342153ff3d8a06e0f0b741c0908aa78..40e09a53dbc36fa7a41dc62b48fe464c8f193261 100644 --- a/modules/mol/base/src/query_state.cc +++ b/modules/mol/base/src/query_state.cc @@ -204,6 +204,10 @@ boost::logic::tribool QueryState::EvalResidue(const ResidueImplPtr& r) { case Prop::PEPTIDE: int_value=r->GetChemClass().IsPeptideLinking(); s_[*i] = cmp_num<int>(ss.comp_op,int_value,boost::get<int>(ss.param)); + break; + case Prop::NUCLEOTIDE: + int_value=r->GetChemClass().IsNucleotideLinking(); + s_[*i] = cmp_num<int>(ss.comp_op,int_value,boost::get<int>(ss.param)); break; case Prop::RBFAC: // This is ugly! Outcome is the same for a prefiltered view as it is for