// ---------------------------------------------------------------------------- bool CSoMap::xFeatureMakeMiscRna( const string& so_type, CSeq_feat& feature) // ---------------------------------------------------------------------------- { feature.SetData().SetImp().SetKey("misc_RNA"); if (so_type=="pseudogenic_transcript") { feature.SetPseudo(true); } return true; }
// ---------------------------------------------------------------------------- bool CSoMap::xFeatureMakeCds( const string& so_type, CSeq_feat& feature) // ---------------------------------------------------------------------------- { feature.SetData().SetCdregion(); if (so_type=="pseudogenic_CDS") { feature.SetPseudo(true); } return true; }
// ---------------------------------------------------------------------------- bool CSoMap::xFeatureMakeGene( const string& so_type, CSeq_feat& feature) // ---------------------------------------------------------------------------- { feature.SetData().SetGene(); if (so_type == "pseudogene") { feature.SetPseudo(true); } return true; }
// ---------------------------------------------------------------------------- bool CSoMap::xFeatureMakeRna( const string& so_type, CSeq_feat& feature) // ---------------------------------------------------------------------------- { static const map<string, CRNA_ref::EType, CompareNoCase> mTypeToRna = { {"mRNA", CRNA_ref::eType_mRNA}, {"rRNA", CRNA_ref::eType_rRNA}, {"pseudogenic_rRNA", CRNA_ref::eType_rRNA}, {"tRNA", CRNA_ref::eType_tRNA}, {"pseudogenic_tRNA", CRNA_ref::eType_tRNA}, {"tmRNA", CRNA_ref::eType_tmRNA}, }; auto it = mTypeToRna.find(so_type); feature.SetData().SetRna().SetType(it->second); if(NStr::StartsWith(so_type, "pseudogenic_")) { feature.SetPseudo(true); } return true; }