105 if (
i->IsLocal() &&
i->GetLocal().IsStr() &&
i->GetLocal().GetStr() ==
"consensus") {
106 WARNINGMSG(
"ASNDataManager::Load() - consensus still referenced in the data: " <<
i.GetContext());
112 if (
i->IsLocal() &&
i->GetLocal().IsStr() &&
i->GetLocal().GetStr() ==
"consensus") {
113 WARNINGMSG(
"ASNDataManager::Load() - a consensus is present in the data: " <<
i.GetContext());
122 if (
mimeData->GetEntrez().GetData().IsStructure())
126 else if (
mimeData->IsAlignstruc()) {
151 if (
mimeData->GetGeneral().IsSetStructures())
154 if (
mimeData->GetGeneral().IsSetStructure_type())
158 if (
mimeData->GetGeneral().GetSeq_align_data().IsBundle()) {
159 if (
mimeData->GetGeneral().GetSeq_align_data().GetBundle().IsSetSequences())
161 if (
mimeData->GetGeneral().GetSeq_align_data().GetBundle().IsSetStrucaligns())
163 &(
mimeData->SetGeneral().SetSeq_align_data().SetBundle().SetStrucaligns());
164 if (
mimeData->GetGeneral().GetSeq_align_data().GetBundle().IsSetSeqaligns())
166 &(
mimeData->SetGeneral().SetSeq_align_data().SetBundle().SetSeqaligns());
167 if (
mimeData->GetGeneral().GetSeq_align_data().GetBundle().IsSetImports()) {
170 SeqAnnotList::iterator
i,
171 ie =
mimeData->SetGeneral().SetSeq_align_data().SetBundle().SetImports().end();
172 for (
i=
mimeData->SetGeneral().SetSeq_align_data().SetBundle().SetImports().begin();
175 update->SetSeqannot(**
i);
183 if (
mimeData->GetGeneral().GetSeq_align_data().GetCdd().IsSetSequences()) {
184 if (
mimeData->GetGeneral().GetSeq_align_data().GetCdd().GetSequences().IsSeq()) {
187 &(
mimeData->SetGeneral().SetSeq_align_data().SetCdd().SetSequences()));
188 mimeData->SetGeneral().SetSeq_align_data().SetCdd().ResetSequences();
189 mimeData->SetGeneral().SetSeq_align_data().SetCdd().SetSequences().
190 SetSet().SetSeq_set().push_back(seqEntry);
193 &(
mimeData->SetGeneral().SetSeq_align_data().SetCdd().SetSequences().SetSet().SetSeq_set());
195 if (
mimeData->GetGeneral().GetSeq_align_data().GetCdd().IsSetFeatures())
197 if (
mimeData->GetGeneral().GetSeq_align_data().GetCdd().IsSetSeqannot())
199 if (
mimeData->GetGeneral().GetSeq_align_data().GetCdd().IsSetPending())
205 ERRORMSG(
"Unrecognized mime type!");
210 if (
cddData->IsSetSequences()) {
211 if (
cddData->GetSequences().IsSeq()) {
215 cddData->SetSequences().SetSet().SetSeq_set().push_back(seqEntry);
237 list < CRef < CSeq_align > > validAlignments;
241 if (!
n->GetObject().GetData().IsAlign()) {
242 ERRORMSG(
"Warning - confused by seqannot data format");
247 CSeq_annot::C_Data::TAlign::const_iterator
248 a, ae =
n->GetObject().GetData().GetAlign().end();
249 for (
a=
n->GetObject().GetData().GetAlign().begin();
a!=ae; ++
a) {
254 !
a->GetObject().IsSetDim() ||
a->GetObject().GetDim() != 2 ||
255 (!
a->GetObject().GetSegs().IsDendiag() && !
a->GetObject().GetSegs().IsDenseg())) {
256 ERRORMSG(
"Warning - confused by alignment type");
259 validAlignments.push_back(*
a);
264 if (validAlignments.size() == 0) {
265 ERRORMSG(
"Warning - no valid Seq-aligns present");
282 TRACEMSG(
"PurgeConsensusSequences() removed " <<
result <<
" sequence(s)");
300 cdd->SetName(cddName);
303 static int localID = 1;
305 cdd->SetId().Set().push_back(
id);
307 oss <<
"loc_" << localID++;
312 ERRORMSG(
"can't find sequences to put into new Cdd");
315 cdd->SetSequences().SetSet().SetSeq_set() = *
seqEntryList;
317 ERRORMSG(
"can't find sequence alignments to put into new Cdd");
343 mimeData->GetGeneral().GetSeq_align_data().IsBundle())
345 &(
mimeData->SetGeneral().SetSeq_align_data().SetBundle().SetSeqaligns());
352 if (
mimeData->IsAlignstruc() &&
mimeData->GetAlignstruc().IsSetStyle_dictionary())
353 return &(
mimeData->GetAlignstruc().GetStyle_dictionary());
354 else if (
mimeData->IsAlignseq() &&
mimeData->GetAlignseq().IsSetStyle_dictionary())
355 return &(
mimeData->GetAlignseq().GetStyle_dictionary());
356 else if (
mimeData->IsStrucseq() &&
mimeData->GetStrucseq().IsSetStyle_dictionary())
357 return &(
mimeData->GetStrucseq().GetStyle_dictionary());
358 else if (
mimeData->IsStrucseqs() &&
mimeData->GetStrucseqs().IsSetStyle_dictionary())
359 return &(
mimeData->GetStrucseqs().GetStyle_dictionary());
361 if (
mimeData->GetGeneral().GetSeq_align_data().IsBundle() &&
362 mimeData->GetGeneral().GetSeq_align_data().GetBundle().IsSetStyle_dictionary())
363 return &(
mimeData->GetGeneral().GetSeq_align_data().GetBundle().GetStyle_dictionary());
364 else if (
mimeData->GetGeneral().GetSeq_align_data().IsCdd() &&
365 mimeData->GetGeneral().GetSeq_align_data().GetCdd().IsSetStyle_dictionary())
366 return &(
mimeData->GetGeneral().GetSeq_align_data().GetCdd().GetStyle_dictionary());
368 }
else if (
cddData->IsSetStyle_dictionary())
369 return &(
cddData->GetStyle_dictionary());
377 if (
mimeData->IsAlignstruc())
mimeData->SetAlignstruc().SetStyle_dictionary(styles);
378 else if (
mimeData->IsAlignseq())
mimeData->SetAlignseq().SetStyle_dictionary(styles);
379 else if (
mimeData->IsStrucseq())
mimeData->SetStrucseq().SetStyle_dictionary(styles);
380 else if (
mimeData->IsStrucseqs())
mimeData->SetStrucseqs().SetStyle_dictionary(styles);
382 if (
mimeData->GetGeneral().GetSeq_align_data().IsBundle())
383 mimeData->SetGeneral().SetSeq_align_data().SetBundle().SetStyle_dictionary(styles);
385 mimeData->SetGeneral().SetSeq_align_data().SetCdd().SetStyle_dictionary(styles);
388 cddData->SetStyle_dictionary(styles);
394 if (
mimeData->IsAlignstruc())
mimeData->SetAlignstruc().ResetStyle_dictionary();
395 else if (
mimeData->IsAlignseq())
mimeData->SetAlignseq().ResetStyle_dictionary();
396 else if (
mimeData->IsStrucseq())
mimeData->SetStrucseq().ResetStyle_dictionary();
397 else if (
mimeData->IsStrucseqs())
mimeData->SetStrucseqs().ResetStyle_dictionary();
399 if (
mimeData->GetGeneral().GetSeq_align_data().IsBundle())
400 mimeData->SetGeneral().SetSeq_align_data().SetBundle().ResetStyle_dictionary();
402 mimeData->SetGeneral().SetSeq_align_data().SetCdd().ResetStyle_dictionary();
405 cddData->ResetStyle_dictionary();
411 if (
mimeData->IsAlignstruc() &&
mimeData->GetAlignstruc().IsSetUser_annotations())
412 return &(
mimeData->GetAlignstruc().GetUser_annotations());
413 else if (
mimeData->IsAlignseq() &&
mimeData->GetAlignseq().IsSetUser_annotations())
414 return &(
mimeData->GetAlignseq().GetUser_annotations());
415 else if (
mimeData->IsStrucseq() &&
mimeData->GetStrucseq().IsSetUser_annotations())
416 return &(
mimeData->GetStrucseq().GetUser_annotations());
417 else if (
mimeData->IsStrucseqs() &&
mimeData->GetStrucseqs().IsSetUser_annotations())
418 return &(
mimeData->GetStrucseqs().GetUser_annotations());
420 if (
mimeData->GetGeneral().GetSeq_align_data().IsBundle() &&
421 mimeData->GetGeneral().GetSeq_align_data().GetBundle().IsSetUser_annotations())
422 return &(
mimeData->GetGeneral().GetSeq_align_data().GetBundle().GetUser_annotations());
423 else if (
mimeData->GetGeneral().GetSeq_align_data().IsCdd() &&
424 mimeData->GetGeneral().GetSeq_align_data().GetCdd().IsSetUser_annotations())
425 return &(
mimeData->GetGeneral().GetSeq_align_data().GetCdd().GetUser_annotations());
427 }
else if (
cddData->IsSetUser_annotations())
428 return &(
cddData->GetUser_annotations());
436 if (
mimeData->IsAlignstruc())
mimeData->SetAlignstruc().SetUser_annotations(annots);
437 else if (
mimeData->IsAlignseq())
mimeData->SetAlignseq().SetUser_annotations(annots);
438 else if (
mimeData->IsStrucseq())
mimeData->SetStrucseq().SetUser_annotations(annots);
439 else if (
mimeData->IsStrucseqs())
mimeData->SetStrucseqs().SetUser_annotations(annots);
441 if (
mimeData->GetGeneral().GetSeq_align_data().IsBundle())
442 mimeData->SetGeneral().SetSeq_align_data().SetBundle().SetUser_annotations(annots);
444 mimeData->SetGeneral().SetSeq_align_data().SetCdd().SetUser_annotations(annots);
447 cddData->SetUser_annotations(annots);
453 if (
mimeData->IsAlignstruc())
mimeData->SetAlignstruc().ResetUser_annotations();
454 else if (
mimeData->IsAlignseq())
mimeData->SetAlignseq().ResetUser_annotations();
455 else if (
mimeData->IsStrucseq())
mimeData->SetStrucseq().ResetUser_annotations();
456 else if (
mimeData->IsStrucseqs())
mimeData->SetStrucseqs().ResetUser_annotations();
458 if (
mimeData->GetGeneral().GetSeq_align_data().IsBundle())
459 mimeData->SetGeneral().SetSeq_align_data().SetBundle().ResetUser_annotations();
461 mimeData->SetGeneral().SetSeq_align_data().SetCdd().ResetUser_annotations();
464 cddData->ResetUser_annotations();
471 mimeData->SetGeneral().SetSeq_align_data().SetBundle().SetStrucaligns(*strucAligns);
473 mimeData->SetGeneral().SetSeq_align_data().SetBundle().ResetStrucaligns();
480 ERRORMSG(
"ASNDataManager::SetStructureAlignments() - can't add to this data type");
497 if (
IsCDD())
return true;
505 ERRORMSG(
"ASNDataManager::ConvertMimeToGeneral() - can't convert to general mime type");
549 if (
mimeData->GetGeneral().GetSeq_align_data().IsCdd()) {
557 UpdateAlignList::iterator u, ue = newUpdates.end();
558 for (u=newUpdates.begin(); u!=ue; ++u)
559 if ((*u)->IsSetSeqannot())
562 }
else if (
cddData.NotEmpty()) {
565 }
else if (newUpdates.size() > 0)
566 ERRORMSG(
"ASNDataManager::ReplaceUpdates() - can't put updates in this data type");
574 if (!alignmentSet)
return;
577 ERRORMSG(
"ASNDataManager::RemoveUnusedSequences() - can't find sequence list");
584 int nStructuredDependents = 0;
587 #define CONDITIONAL_ADD_SEQENTRY(seq) do { \
588 if (usedSeqs.find((seq)->identifier) == usedSeqs.end()) { \
589 seqEntryList->resize(seqEntryList->size() + 1); \
590 seqEntryList->back().Reset(new CSeq_entry); \
591 seqEntryList->back().GetObject().SetSeq((const_cast<Sequence*>(seq))->bioseqASN.GetObject()); \
592 usedSeqs[(seq)->identifier] = true; \
598 AlignmentSet::AlignmentList::const_iterator
a, ae = alignmentSet->
alignments.end();
601 if ((*a)->dependent->molecule) ++nStructuredDependents;
605 SequenceList::const_iterator s, se = updateSequences.end();
606 for (s=updateSequences.begin(); s!=se; ++s)
632 mimeData->GetGeneral().GetSeq_align_data().IsCdd())
633 return &(
mimeData->SetGeneral().SetSeq_align_data().SetCdd());
642 mimeData->GetGeneral().GetSeq_align_data().IsCdd())
643 return &(
mimeData->GetGeneral().GetSeq_align_data().GetCdd());
660 static const string empty =
"";
671 if (!cdd || name.size() == 0)
return false;
679 static const string empty =
"";
681 if (!cdd)
return empty;
687 if ((*d)->IsComment())
688 return (*d)->GetComment();
696 if (!cdd)
return false;
700 CCdd_descr_set::Tdata::iterator d, de = cdd->
SetDescription().Set().end();
702 if ((*d)->IsComment()) {
703 if ((*d)->GetComment() != descr) {
704 (*d)->SetComment(descr);
714 comment->SetComment(descr);
723 if (!lines || !cdd)
return false;
732 if ((*d)->IsScrapbook()) {
735 lines->resize((*d)->GetScrapbook().size());
736 CCdd_descr::TScrapbook::const_iterator l,
le = (*d)->GetScrapbook().end();
738 for (l=(*d)->GetScrapbook().begin(); l!=
le; ++l)
749 if (!cdd)
return false;
755 CCdd_descr_set::Tdata::iterator d, de = cdd->
SetDescription().Set().end();
757 if ((*d)->IsScrapbook()) {
758 if (lines.size() == 0) {
763 scrapbook = &((*d)->SetScrapbook());
768 if (lines.size() == 0)
return true;
773 scrapbook = &(descr->SetScrapbook());
779 for (
unsigned int i=0;
i<lines.size(); ++
i)
780 scrapbook->push_back(lines[
i]);
846 int Start1, Start2,
Len, Dim;
851 Dim = DenDiag->GetDim();
853 sprintf(
buf,
"Dense-diag Dim = %d. It should always be exactly 2.\n", Dim);
858 Len = DenDiag->GetLen();
860 sprintf(
buf,
"Dense-diag Len = %d. It should always be non-negative.\n",
Len);
865 Start1 = DenDiag->GetStarts().front();
867 sprintf(
buf,
"Dense-diag has 1st row Start %d. It should always be non-negative.\n", Start1);
872 Start2 = DenDiag->GetStarts().back();
874 sprintf(
buf,
"Dense-diag has 2nd row start %d. It should always be non-negative.\n", Start2);
888 int Start11, Start12, Start21, Start22,
Len;
893 Start11 = DenDiag1->GetStarts().front();
894 Start12 = DenDiag1->GetStarts().back();
895 Len = DenDiag1->GetLen();
898 Start21 = DenDiag2->GetStarts().front();
899 Start22 = DenDiag2->GetStarts().back();
902 if (Start21 < (Start11 +
Len)) {
903 sprintf(
buf,
"Dense-diag has 1st row Start %d, Len %d. Next Dense-diag has Start %d.\n", Start11,
Len, Start21);
907 if (Start22 < (Start12 +
Len)) {
908 sprintf(
buf,
"Dense-diag has 2nd row Start %d, Len %d. Next Dense-diag has Start %d.\n", Start12,
Len, Start22);
922 list< CRef< CDense_diag > > DenDiags;
923 list< CRef< CDense_diag > >::iterator dd_iter;
928 if (!
SeqAlign->GetSegs().IsDendiag())
return(RetVal);
931 DenDiags =
SeqAlign->GetSegs().GetDendiag();
934 dd_iter = DenDiags.begin();
941 if (dd_iter == DenDiags.end())
return(RetVal);
945 for (; dd_iter != DenDiags.end(); dd_iter++) {
971 SeqAnnotList::const_iterator
a, ae = seqAnnots->end();
972 for (
a=seqAnnots->begin();
a!=ae; ++
a) {
973 if ((*a)->GetData().IsAlign()) {
974 CSeq_annot::C_Data::TAlign::const_iterator s, se = (*a)->GetData().GetAlign().end();
976 for (s=(*a)->GetData().GetAlign().begin(); s!=se; ++s, ++
n) {
979 sprintf(
buf,
"Normal Alignment #%i\n\n",
n);
990 UpdateAlignList::const_iterator u, ue = updates->end();
991 for (u=updates->begin(); u!=ue; ++u) {
992 if ((*u)->IsSetSeqannot() && (*u)->GetSeqannot().GetData().IsAlign()) {
993 CSeq_annot::C_Data::TAlign::const_iterator s, se = (*u)->GetSeqannot().GetData().GetAlign().end();
995 for (s=(*u)->GetSeqannot().GetData().GetAlign().begin(); s!=se; ++s, ++
n) {
998 sprintf(
buf,
"Pending Alignment #%i\n\n",
n);
1007 TRACEMSG(
"MonitorAlignments() succeeded");
1009 ERRORMSG(
"MonitorAlignments() found errors, see log for details; please copy&paste and send a complete report to cdt-swg");
1010 WARNINGMSG(
"MonitorAlignments() found errors:\n\n" << messages);
1026 ERRORMSG(
"This file is not a valid Biostruc");
1037 list < CRef < CBiostruc_model > > desiredModels;
1038 CBiostruc::TModel::const_iterator m, me = biostruc->
GetModel().end();
1039 for (m=biostruc->
GetModel().begin(); m!=me; ++m) {
1040 if ((*m)->GetType() == model)
1041 desiredModels.push_back(*m);
1043 if (desiredModels.size() == 0) {
1044 ERRORMSG(
"Ack! There's no appropriate model in this Biostruc");
1048 biostruc->
SetModel() = desiredModels;
1053 mime->SetStrucseq(*strucseq);
1054 strucseq->SetStructure(*biostruc);
1058 CBiostruc_graph::TMolecule_graphs::const_iterator
g,
1061 if ((*g)->IsSetSeq_id() && (*g)->GetSeq_id().IsGi())
1062 gis.push_back((*g)->GetSeq_id().GetGi());
1066 if (gis.size() > 0) {
1068 strucseq->SetSequences().push_back(seqs);
1071 for (
unsigned int i=0;
i<gis.size(); ++
i) {
1075 seqentry->
SetSeq(*bioseq);
1078 ERRORMSG(
"Failed to retrieve all Bioseqs");
1083 WARNINGMSG(
"Can't find any sequence gi identifiers in this Biostruc");
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
ncbi::objects::CBiostruc_annot_set * structureAlignments
bool GetCDDNotes(TextLines *lines) const
void SetUserAnnotations(ncbi::objects::CCn3d_user_annotations &annots)
bool SetCDDDescription(const std::string &descr)
void ReplaceUpdates(UpdateAlignList &newUpdates)
SeqAnnotList * sequenceAlignments
ncbi::objects::EModel_type biostrucModelType
void SetStyleDictionary(ncbi::objects::CCn3d_style_dictionary &styles)
bool SetCDDNotes(const TextLines &lines)
std::list< ncbi::CRef< ncbi::objects::CUpdate_align > > UpdateAlignList
const ncbi::objects::CCn3d_user_annotations * GetUserAnnotations(void) const
const UpdateAlignList * GetUpdates(void) const
bool ConvertMimeDataToCDD(const std::string &cddName)
ncbi::objects::CAlign_annot_set * GetCDDAnnotSet(void)
std::list< const Sequence * > SequenceList
bool WriteDataToFile(const char *filename, bool isBinary, std::string *err, ncbi::EFixNonPrint fixNonPrint=ncbi::eFNP_Default) const
ncbi::CRef< ncbi::objects::CNcbi_mime_asn1 > mimeData
bool ConvertMimeToGeneral(void)
void SetStructureAlignments(ncbi::objects::CBiostruc_annot_set *structureAlignments)
SeqEntryList * seqEntryList
bool AddBiostrucToASN(ncbi::objects::CBiostruc *biostruc)
SeqAnnotList * GetSequenceAlignments(void) const
ncbi::CRef< ncbi::objects::CCdd > cddData
const ncbi::objects::CSeq_id * GetCDDMaster3d(void) const
const ncbi::objects::CCn3d_style_dictionary * GetStyleDictionary(void) const
void RemoveUserAnnotations(void)
bool IsCDDInMime(void) const
bool SetCDDName(const std::string &name)
SeqAnnotList * bundleImports
BiostrucList * biostrucList
void SetDataChanged(unsigned int what) const
const std::string & GetCDDName(void) const
ASNDataManager(ncbi::objects::CNcbi_mime_asn1 *mime)
ncbi::objects::CCdd * GetInternalCDDData(void)
const std::string & GetCDDDescription(void) const
UpdateAlignList bundleImportsFaked
ncbi::objects::CBiostruc * masterBiostruc
std::vector< std::string > TextLines
void AddReject(ncbi::objects::CReject_id *reject)
void RemoveStyleDictionary(void)
bool MonitorAlignments(void) const
ncbi::objects::CCdd_descr_set * GetCDDDescrSet(void)
const StructureSet::RejectList * GetRejects(void) const
std::list< ncbi::CRef< ncbi::objects::CSeq_annot > > SeqAnnotList
UpdateAlignList * cddUpdates
void RemoveConsensusFromCDD(void)
void RemoveUnusedSequences(const AlignmentSet *alignmentSet, const SequenceList &updateSequences)
SeqAnnotList * GetOrCreateSequenceAlignments(void)
CCn3d_style_dictionary –.
CCn3d_user_annotations –.
CNcbiOstrstreamToString class helps convert CNcbiOstrstream to a string Sample usage:
Template class for iteration on objects of class C (non-medifiable version)
static const unsigned int eSequenceData
static const unsigned int eCDDData
static const unsigned int eOtherData
static const unsigned int eUpdateData
std::list< ncbi::CRef< ncbi::objects::CReject_id > > RejectList
Include a standard set of the NCBI C++ Toolkit most basic headers.
int PurgeConsensusSequences(CCdCore *pCD, bool resetFields=true)
static bool ReadASNFromFile(const char *filename, ASNClass *ASNobject, bool isBinary, std::string *err)
static bool WriteASNToFile(const char *filename, const ASNClass &ASNobject, bool isBinary, std::string *err, ncbi::EFixNonPrint fixNonPrint=ncbi::eFNP_Default)
bool CheckOneDenDiag(CRef< CDense_diag > &DenDiag, string &Str)
CNcbi_mime_asn1 * CreateMimeFromBiostruc(const string &filename, EModel_type model)
#define CONDITIONAL_ADD_SEQENTRY(seq)
bool CheckTwoDenDiags(CRef< CDense_diag > &DenDiag1, CRef< CDense_diag > &DenDiag2, string &Str)
bool CheckOneAlignment(const CRef< CSeq_align > &SeqAlign, string &Str)
EDiagSev SetDiagPostLevel(EDiagSev post_sev=eDiag_Error)
Set the threshold severity for posting the messages.
@ eDiag_Info
Informational message.
@ eDiag_Fatal
Fatal error – guarantees exit(or abort)
EFixNonPrint
How to process non-printing character in the ASN VisibleString.
CConstBeginInfo ConstBegin(const C &obj)
Get starting point of non-modifiable object hierarchy.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
bool NotEmpty(void) const THROWS_NONE
Check if CRef is not empty – pointing to an object and has a non-null value.
TObjectType * Release(void)
Release a reference to the object and return a pointer to the object.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_SCOPE(ns)
Define a new scope.
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.
const TMolecule_graphs & GetMolecule_graphs(void) const
Get the Molecule_graphs member data.
EModel_type
Access to EModel_type's attributes (values, names) as defined in spec.
@ eModel_type_ncbi_all_atom
const TModel & GetModel(void) const
Get the Model member data.
void ResetModel(void)
Reset Model data member.
TModel & SetModel(void)
Assign a value to Model data member.
const TChemical_graph & GetChemical_graph(void) const
Get the Chemical_graph member data.
const Tdata & Get(void) const
Get the member data.
bool IsSetRejects(void) const
SeqIds of rejected CD- members, ignore in update Check if a value has been assigned to Rejects data m...
const TMaster3d & GetMaster3d(void) const
Get the Master3d member data.
bool IsSetDescription(void) const
status, references, etc.
bool IsSetAlignannot(void) const
alignment annotation Check if a value has been assigned to Alignannot data member.
const TRejects & GetRejects(void) const
Get the Rejects member data.
void SetDescription(TDescription &value)
Assign a value to Description data member.
list< string > TScrapbook
bool IsSetMaster3d(void) const
record if CD has a 3D representative Check if a value has been assigned to Master3d data member.
TRejects & SetRejects(void)
Assign a value to Rejects data member.
const TDescription & GetDescription(void) const
Get the Description member data.
void SetName(const TName &value)
Assign a value to Name data member.
void SetAlignannot(TAlignannot &value)
Assign a value to Alignannot data member.
const TName & GetName(void) const
Get the Name member data.
void SetStrucaligns(TStrucaligns &value)
Assign a value to Strucaligns data member.
TSeqaligns & SetSeqaligns(void)
Assign a value to Seqaligns data member.
const TStructures & GetStructures(void) const
Get the Structures member data.
void SetSeq_align_data(TSeq_align_data &value)
Assign a value to Seq_align_data data member.
TGeneral & SetGeneral(void)
Select the variant.
const TGeneral & GetGeneral(void) const
Get the variant data.
TStructures & SetStructures(void)
Assign a value to Structures data member.
TSequences & SetSequences(void)
Assign a value to Sequences data member.
@ eType_partial
mapping pieces together
@ eType_diags
unbroken, but not ordered, diagonals
TSet & SetSet(void)
Select the variant.
TSeq & SetSeq(void)
Select the variant.
TSeq_set & SetSeq_set(void)
Assign a value to Seq_set data member.
constexpr bool empty(list< Ts... >) noexcept
Magic spell ;-) needed for some weird compilers... very empiric.
bool le(T x_, T y_, T round_)
bool ge(T x_, T y_, T round_)
bool ne(T x_, T y_, T round_)
Neutral sequence alignment (for representing an HSP in BLAST)
int g(Seg_Gsm *spe, Seq_Mtf *psm, Thd_Gsm *tdg)