47 static const char*
kLabel =
"Link CDS-mRNA pair by qualifier";
71 && (*it)->GetId().IsLocal()
72 && feat_id.
Equals((*it)->GetId()))
82 xref->SetId().Assign(to_feat.
GetId());
83 from_feat.
SetXref().push_back(xref);
109 if (!error_msg.empty()) {
112 error_msg +=
"'" + qual.
GetVal() +
"' is not a valid seq ID";
117 if (!proth || !proth.
IsAa()) {
118 if (!error_msg.empty()) {
121 error_msg +=
"Sequence with '" + qual.
GetVal() +
"' seq ID is not a protein";
131 if (mrna_product.empty()) {
138 protein_name = prot_ref.
GetName().front();
142 if (!protein_name.empty()) {
145 new_mrna->
SetData().SetRna().SetRnaProductName(protein_name, remainder);
170 if (!error_msg.empty()) {
void AddCommand(IEditCommand &command)
objects::CSeq_entry_Handle m_seh
static CIRef< IEditCommand > Create(const objects::CSeq_entry_Handle &seh, const vector< string > &quals)
virtual string GetLabel()
virtual CIRef< IEditCommand > x_CreateActionCmd()
CCmdFeatIdXrefsFromQualifiers(const objects::CSeq_entry_Handle &seh, const vector< string > &quals)
@Gb_qual.hpp User-defined methods of the data storage class.
string GetRnaProductName(void) const
namespace ncbi::objects::
Interface (functor) for object editing.
static const char * kLabel
static void s_AddCommand(CRef< CCmdComposite > &composite, IEditCommand &command)
static bool s_IsDirectXrefBetween(const CSeq_feat &from_feat, const CSeq_feat &to_feat)
static void s_CreateXRefLink(CSeq_feat &from_feat, const CSeq_feat &to_feat)
EDialogReturnValue NcbiMessageBox(const string &message, TDialogType type=eDialog_Ok, EDialogIcon icon=eIcon_Exclamation, const string &title="Error", EDialogTextMode text_mode=eRaw)
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
virtual bool Equals(const CSerialObject &object, ESerialRecursionMode how=eRecursive) const
Check if both objects contain the same values.
CSeq_id & Set(const CTempString &the_id, TParseFlags flags=fParse_AnyRaw)
Reassign based on flat specifications; arguments interpreted as with constructors.
@ fParse_Default
By default in ParseIDs and IsValid, allow raw parsable non-numeric accessions and plausible local acc...
const CSeq_feat * GetCDSForProduct(const CBioseq &product, CScope *scope)
Get the encoding CDS feature of a given protein sequence.
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
CSeq_feat_Handle GetSeq_featHandle(const CSeq_feat &feat, EMissing action=eMissing_Default)
CConstRef< CSeq_feat > GetOriginalSeq_feat(void) const
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
const TName & GetName(void) const
Get the Name member data.
bool IsSetName(void) const
protein name Check if a value has been assigned to Name data member.
const TVal & GetVal(void) const
Get the Val member data.
TXref & SetXref(void)
Assign a value to Xref data member.
const TId & GetId(void) const
Get the Id member data.
bool IsSetXref(void) const
cite other relevant features Check if a value has been assigned to Xref data member.
const TData & GetData(void) const
Get the Data member data.
void SetData(TData &value)
Assign a value to Data data member.
bool IsSetId(void) const
Check if a value has been assigned to Id data member.
const TProt & GetProt(void) const
Get the variant data.
const TQual & GetQual(void) const
Get the Qual member data.
const TRna & GetRna(void) const
Get the variant data.
bool IsSetVal(void) const
Check if a value has been assigned to Val data member.
#define FOR_EACH_GBQUAL_ON_FEATURE
#define FOR_EACH_SEQFEATXREF_ON_SEQFEAT(Itr, Var)
FOR_EACH_SEQFEATXREF_ON_SEQFEAT EDIT_EACH_SEQFEATXREF_ON_SEQFEAT.