84 if (!geneLocation.IsNull()) {
87 pGene->SetData().SetRegion(record.
Name());
88 pGene->SetLocation().Assign(geneLocation);
91 if (displayData.IsSetData()) {
93 pDisplayData->
Assign(displayData);
94 pGene->SetExts().push_back(pDisplayData);
98 annot.
SetData().SetFtable().push_back(pGene);
101 const auto mRnaLocation =
103 if (!mRnaLocation->IsNull()) {
106 pMrna->SetData().SetRegion(record.
Name());
107 pMrna->SetLocation(). Assign(*mRnaLocation);
109 annot.
SetData().SetFtable().push_back(pMrna);
114 if (!mRnaLocation->IsNull()) {
116 *mRnaLocation, 0,
nullptr);
117 pCdsLocation->
Assign(*pIntersection);
119 if (!pCdsLocation->
IsNull()) {
125 annot.
SetData().SetFtable().push_back(pCds);
128 if (pGene && pMrna) {
129 pGene->AddSeqFeatXref(pMrna->GetId());
130 pMrna->AddSeqFeatXref(pGene->GetId());
133 pGene->AddSeqFeatXref(pCds->
GetId());
137 pMrna->AddSeqFeatXref(pCds->
GetId());
150 auto description = annotInfo.
ValueOf(
"description");
151 if (!description.empty()) {
154 auto name = annotInfo.
ValueOf(
"name");
160 pTrackData->
SetType().SetStr(
"Track Data");
162 for (
auto info: annotInfo) {
167 annot.
SetDesc().Set().push_back(user);
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
std::string ValueOf(const std::string &) const
unique_ptr< CFeatureIdGenerator > mpIdGenerator
virtual void FinalizeAnnot(const CAnnotImportData &, CSeq_annot &) override
virtual ~CBedAnnotAssembler()
void ProcessRecord(const CFeatImportData &, CSeq_annot &) override
CBedAnnotAssembler(CImportMessageHandler &)
const CSeq_loc & ChromLocation() const
const CSeq_loc & BlocksLocation() const
const std::string & Name() const
const CSeq_loc & ThickLocation() const
const CUser_object & DisplayData() const
void SetNameDesc(const string &name)
void SetTitleDesc(const string &title)
namespace ncbi::objects::
bool AddSeqFeatXref(const CSeqFeatXref::TId &id)
CUser_object & AddField(const string &label, const string &value, EParseField parse=eParse_String)
add a data field to the user object that holds a given value
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Override Assign() to incorporate cache invalidation.
CRef< CSeq_loc > Merge(TOpFlags flags, ISynonymMapper *syn_mapper) const
All functions create and return a new seq-loc object.
CRef< CSeq_loc > Intersect(const CSeq_loc &other, TOpFlags flags, ISynonymMapper *syn_mapper) const
Find the intersection with the seq-loc, merge/sort resulting ranges depending on flags.
void Reset(void)
Reset reference object.
TData & SetData(void)
Assign a value to Data data member.
void SetType(TType &value)
Assign a value to Type data member.
void SetLocation(TLocation &value)
Assign a value to Location data member.
const TId & GetId(void) const
Get the Id member data.
void SetId(TId &value)
Assign a value to Id data member.
void SetData(TData &value)
Assign a value to Data data member.
virtual void Reset(void)
Reset the whole object.
bool IsNull(void) const
Check if variant Null is selected.
void SetData(TData &value)
Assign a value to Data data member.
void SetDesc(TDesc &value)
Assign a value to Desc data member.
TUser & SetUser(void)
Select the variant.
Defines classes: CDirEntry, CFile, CDir, CSymLink, CMemoryFile, CFileUtil, CFileLock,...