52 }
catch (std::bad_cast) {
58 bool gotAnswer =
false;
60 TTaxItemId prefNodeIdLHS, prefNodeIdRHS, modelOrgIdLHS, modelOrgIdRHS;
61 string nodeName, orgName;
69 if (prefNodeIdLHS == badId) {
70 result = (prefNodeIdRHS == badId) ? 0 : -1;
72 }
else if (prefNodeIdRHS == badId) {
80 if (!gotAnswer && prefNodeIdLHS != prefNodeIdRHS) {
90 if (modelOrgIdLHS == badId) {
91 if (modelOrgIdRHS == badId) {
96 }
else if (modelOrgIdRHS == badId) {
98 }
else if (modelOrgIdLHS != modelOrgIdRHS) {
159 m_name =
"Taxonomic Non-redundification Criteria";
178 unsigned int nSubcluster = 0, nMarkedRedundant = 0;
183 if (!clusterPtr || !
m_id2ItemMap)
return nMarkedRedundant;
195 for (; itemIt != itemItEnd; ++itemIt) {
201 if (priorityNodeId == -1) priorityNodeId = badId;
210 taxNRItem->
keep =
false;
223 if (report && report->length() > 0) report->append(
"\n");
225 return nMarkedRedundant;
231 string nodeName, orgName;
246 return (lhsItem.taxId == rhsItem.
taxId) ? 0 : (lhsItem.taxId < rhsItem.
taxId) ? -1 : 1;
TCluster::iterator TClusterIt
TCluster::value_type TClusterVT
TId2Item::value_type TId2ItemVT
static const TItemId INVALID_ITEM_ID
int GetPriorityTaxnode(TTaxId taxid, string &nodeName, TaxClient *taxClient=NULL)
TTaxId GetTaxIdFromClient(const CBioseq &bioseq)
virtual int CompareItems(const CTaxNRItem &lhs, const CTaxNRItem &rhs) const
void InitializeCriteria()
TSubclusterMap m_subclusters
virtual ~CTaxNRCriteria()
CPriorityTaxNodes * m_priorityTaxNodes
TId2TaxidMap::const_iterator TId2TaxidMapCIt
virtual unsigned int Apply(CBaseClusterer::TCluster *&cluster, string *report=NULL)
TTaxId GetTaxIdForId(const CBaseClusterer::TId &id) const
static TaxClient * m_taxClient
static const TTaxItemId INVALID_TAX_ITEM_ID
static int CompareItems(const CTaxNRItem &lhs, const CTaxNRItem &rhs)
virtual int Compare(const CNRItem &rhs) const
virtual TTaxId GetTaxIDFromBioseq(const CBioseq &bioseq, bool lookInBioseq)
virtual bool ConnectToTaxServer()
const_iterator end() const
iterator_bool insert(const value_type &val)
container_type::value_type value_type
const_iterator find(const key_type &key) const
const_iterator begin() const
const_iterator end() const
SStrictId_Tax::TId TTaxId
Taxon id type.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
static string UIntToString(unsigned int value, TNumToStringFlags flags=0, int base=10)
Convert UInt to string.
static enable_if< is_arithmetic< TNumeric >::value||is_convertible< TNumeric, Int8 >::value, string >::type NumericToString(TNumeric value, TNumToStringFlags flags=0, int base=10)
Convert numeric value to string.