: m_seqAligns(), m_rowSources(), m_firstCd(0), m_seqTable()
14AddAlignment(cd,alignUse, uniqueSeqId, scoped);
20: m_seqAligns(), m_rowSources(), m_firstCd(0), m_seqTable()
46vector<RowSource> srcs;
48 for(
unsigned intj = 0; j < srcs.size(); j++)
69list< CRef< CUpdate_align > >& pending = cd->
SetPending();
70list< CRef< CUpdate_align > >::iterator lit = pending.begin();
73 for(; lit != pending.end(); ++lit)
75 if((*lit)->IsSetSeqannot())
114list< CRef< CSeq_align > >& alignList = cd->
GetSeqAligns();
115list< CRef< CSeq_align > >::iterator lit = alignList.begin();
140 for(; lit != alignList.end(); ++lit)
213 if(SeqID->
IsGi() || SeqID->
IsPdb()) {
216 result+=
"<Non-gi/pdb Sequence Types Unsupported>";
229gi = SeqID->
GetGi();
231}
else if(SeqID->
IsPdb() && !ignorePDBs) {
242 boolgetSlave =
true;
266 for(
unsigned int i= 0;
i< rows.size();
i++)
326vector<RowSource> src;
330 else if(src.size() ==1)
332 if((src[0].cd ==
m_firstCd) && (!includeSelf))
335 return(src.rbegin())->cd;
340vector<RowSource> src;
344vector<RowSource>::reverse_iterator rit = src.rbegin();
345 for(; rit != src.rend(); rit++)
359vector<RowSource> src;
377 for(;
i< num;
i++)
383childless.push_back(
i);
403rowVec.push_back(*sit);
406 for(; cit != cdRowsMap.
end(); ++cit)
411vector<int>& cdRows = cit->second;
419vector<RowSource> src;
421 for(
unsigned int i= 0;
i< src.size();
i++)
434 for(
int i= 0;
i< num;
i++)
437colRows.push_back(
i);
483list< CRef< CSeqdesc > >::const_iterator j;
486 if(seqEntry->
IsSeq()) {
492 if((*j)->IsTitle()) {
493 return((*j)->GetTitle());
497 if((*j)->GetPdb().GetCompound().size() > 0) {
498 return((*j)->GetPdb().GetCompound().front());
520 int result= -1, index = -1;
521vector<int>::iterator vit, vend = rows.end(), vrow = vend;
526 for(vit = rows.begin(),
i= 0; vit != vend; ++vit, ++
i) {
527 if(rowToMatch == *vit) {
532 if(!inclusive && vrow != vend) {
535 result= (index != -1) ? (
int) rows.size() : -1;
544 for(
int i= 0;
i< num;
i++)
559 for(
unsigned int i= 0;
i< rows.size();
i++)
575CDense_diag::TStarts::const_iterator pos=DenDiag->GetStarts().begin();
589CDense_diag::TStarts::const_iterator pos=DenDiag->GetStarts().begin();
593 return(*pos)+(
len) - 1;
619 for(
int i= 0;
i< numRow; ++
i)
675 intStart, Start2, Stop=-1, Stop2=-1,
Len;
679 for(iter=pDenDiagSet->begin(); iter!=pDenDiagSet->end(); iter++) {
680 Len= (*iter)->GetLen();
681Start = (*iter)->GetStarts().front();
682Start2 = (*iter)->GetStarts().back();
684 if((Stop >= 0) && ((Start <= Stop) || (Start2 <= Stop2))) {
687Stop = Start +
Len- 1;
688Stop2 = Start2 +
Len- 1;
708 if(ppAlignedResidues ==
NULL)
710ppAlignedResidues =
new char*[numRows];
712 else if(!forceRecompute)
718 for(
int i= 0;
i< numRows;
i++)
764vector<CCdCore*> cds;
766 for(
unsigned int i= 0;
i< cds.size();
i++)
778vector<CDFamilyIterator> cdits;
780 for(
unsigned int i= 0;
i< cdits.size();
i++)
783 tmp.setAlignment(family, cdits[
i]);
785 if(start == family.
begin())
825 if(matches.size() <= 0)
859 LOG_POST(
"The alignment of the master in cd "<<malign.
getFirstCD()->
GetAccession()<<
" does not match with that of its parent and its content is not used.\n");
867 if(!deltaStatus.second)
869 deletedeltaStatus.first;
870 LOG_POST(
"The master of cd "<<malign.
getFirstCD()->
GetAccession()<<
" is not properly aligned to its parent and its content is not used.");
874 for(
int i= 1;
i< num;
i++)
892pair<BlockModel*, bool> resultStatus = malign.
m_blockTable[
i] + *(deltaStatus.first);
893 if(resultStatus.second)
895 boolIsLegit =
true;
897 boolshouldAdd =
true;
906IsLegit = (resultStatus.first)->isValid(seqLen, blockIndex);
907 if(IsLegit && !seqAlign.
Empty()) {
918blockIndex+1<<
" in order to fit it into its parental block. This row is not used.");
922 if(IsLegit && (parentRow >= 0)) {
929<<
". It is thus not used to make the tree.");
938vector<int> seqIdMatches;
942 for(
unsigned int i= 0;
i< seqIdMatches.size();
i++)
945pRow = seqIdMatches[
i];
980found =
bmp->contain(bar);
992vector<RowSource> sources;
994 for(
unsigned int i= 0;
i< sources.size();
i++)
1066 for(; sit != normalRows.
end(); ++sit)
1090 for(; sit != normalRows.
end(); ++sit)
1093 if(slave != master)
void addRowSources(const vector< int > &rows, CCdCore *cd, bool scoped=true)
bool GetGI(int row, TGi &gi, bool ignorePDBs=true) const
bool GetSeqEntryForRow(int row, CRef< CSeq_entry > &seqEntry) const
bool Get_GI_or_PDB_String_FromAlignment(int row, std::string &result) const
bool GetBioseqForRow(int rowId, CRef< CBioseq > &bioseq)
bool wasMaster(int row) const
void getNormalRowsNotInChild(vector< int > &childless, bool excludeMaster=false) const
void GetAlignedResiduesForRow(int row, char *&)
void mapRows(const AlignmentCollection &ac, const set< int > &rows, set< int > &convertedRows) const
void addNormalAlignment(CCdCore *cd, bool uniqueSeqId=false, bool scoped=true)
bool GetSpeciesForRow(int row, string &species) const
int GetNumPendingRows() const
vector< CRef< CBioseq > > m_bioseqs
bool IsNonOverlapping(const CRef< CSeq_align > &align, int &blockIndex) const
RowSourceTable m_rowSources
CCdCore * GetLeafDescendentCD(int row, bool includeSelf=false) const
string GetSequenceForRow(int row)
void convertToCDRows(const vector< int > &colRows, CDRowsMap &cdRows) const
void GetAllSequences(vector< string > &sequences)
void removeRowSourcesForCD(CCdCore *cd)
int GetAlignmentLength(int row=0) const
void addPendingAlignment(CCdCore *cd, bool uniqueSeqId=false, bool scoped=true)
int GetRowsWithSameSeqID(int rowToMatch, vector< int > &rows, bool inclusive=true) const
int getCDs(vector< CCdCore * > &cds)
bool AreNonOverlapping() const
int getCDsOutofScope(vector< CCdCore * > &cds)
bool IsPdb(int row) const
void getAllRowsForCD(CCdCore *cd, vector< int > &colRows) const
const RowSource & GetRowSource(int row) const
CCdCore * GetScopedLeafCD(int row) const
int FindSeqInterval(const CSeq_interval &seqLoc) const
void GetAlignedResiduesForAll(char **&ppAlignedResidues, bool forceRecompute)
CRef< CSeq_align > getSeqAlign(int row) const
const RowSourceTable & GetRowSourceTable() const
CCdCore * getFirstCD() const
void AddSequence(CCdCore *cd)
bool isInstanceOf(MultipleAlignment *ma)
int GetRowsWithSeqID(const CRef< CSeq_id > &SeqID, vector< int > &rows) const
int GetLowerBound(int row) const
bool IsPending(int row) const
void AddAlignment(CCdCore *cd, CCdCore::AlignmentUsage alignUse=CCdCore::USE_PENDING_ALIGNMENT, bool uniqueSeqId=false, bool scoped=true)
int mapRow(const AlignmentCollection &ac, int row) const
bool isRowInScope(int row) const
bool isCDInScope(CCdCore *cd) const
int GetUpperBound(int row) const
CCdCore * GetSeniorMemberCD(int row, bool scopedOnly=true) const
string GetDefline(int row) const
vector< CRef< CSeq_align > > m_seqAligns
bool GetSeqIDForRow(int row, CRef< CSeq_id > &SeqID) const
virtual ~AlignmentCollection()
void convertFromCDRows(CCdCore *cd, const vector< int > &cdRows, set< int > &colRows) const
int getCDsInScope(vector< CCdCore * > &cds)
BlockModel * completeCastTo(const BlockModel &target) const
CRef< CSeq_id > getSeqId() const
bool contain(const BlockModel &rhs) const
CRef< CSeq_align > toSeqAlign(const BlockModel &master) const
bool blockMatch(const BlockModel &bm) const
bool GetBioseqForIndex(int seqIndex, CRef< CBioseq > &bioseq)
bool AddSequence(CRef< CSeq_entry > seqAntry)
bool AddPendingSeqAlign(CRef< CSeq_align > seqAlign)
TGi GetGIFromSequenceList(int SeqIndex) const
bool AddSeqAlign(CRef< CSeq_align > seqAlign)
int GetSeqIndex(const CRef< CSeq_id > &SeqID) const
const list< CRef< CSeq_align > > & GetSeqAligns() const
string GetSpeciesForIndex(int SeqIndex)
string GetAccession(int &Version) const
int getAllCD(vector< CCdCore * > &cds) const
void getChildren(vector< CCdCore * > &cds, CCdCore *parentCD) const
bool isBlockAligned() const
void copyRowSource(int currentRow, const AlignmentCollection &malign, int rowInAc)
const cd_utils::BlockModel & getBlockModel(int row) const
int appendAlignment(MultipleAlignment &malign, bool includeUnScoped=true)
bool setAlignment(const CDFamily &family)
bool transferToCD(CCdCore *cd=0)
bool findParentalEquivalent(const cd_utils::BlockModel &bar, int &pRow, bool inputAsChild=true) const
bool locateChildRow(const cd_utils::BlockModel &childRow, int &pRow) const
int transferOneRow(CCdCore *cd, int row)
bool extractAlignedSubset(const AlignmentCollection &ac, const set< int > &normalRows, int master)
bool findParentalCastible(const cd_utils::BlockModel &bar, int &pRow) const
vector< cd_utils::BlockModel > m_blockTable
int getCDs(vector< CCdCore * > &cds)
void removeEntriesForCD(vector< int > &colRows, CCdCore *cd)
int getCDsOutofScope(vector< CCdCore * > &cds)
void convertToCDRows(const vector< int > &colRows, CDRowsMap &cdRows) const
int findEntries(int row, vector< RowSource > &src, bool scopedOnly=false) const
int convertFromCDRow(CCdCore *cd, int cdRows) const
bool isCDInScope(CCdCore *cd) const
void addEntry(int row, CCdCore *cd, int rowInCD, bool normal=true, bool scoped=true)
void convertFromCDRows(CCdCore *cd, const vector< int > &cdRows, set< int > &colRows) const
bool isEntryInScope(const RowSource &rs) const
int getCDsInScope(vector< CCdCore * > &cds)
bool isRowInCD(int row, CCdCore *cd) const
const RowSource & findEntry(int row) const
bool findSequence(CRef< CSeq_id > seqId, CRef< CBioseq > &bioseq) const
void addSequences(vector< CRef< CBioseq > > &bioseqVec, bool grouped=false)
container_type::iterator iterator
const_iterator begin() const
const_iterator end() const
const_iterator begin() const
const_iterator end() const
pre_order_iterator begin() const
TDendiag::const_iterator TDendiag_cit
CSeq_align::C_Segs::TDendiag TDendiag
void SetAlignedResiduesOnSequence(const CRef< CSeq_align > &align, const string &sequenceString, char *&pAlignedRes, bool isMaster=false)
bool GetFirstOrLastDenDiag(const CRef< CSeq_align > &seqAlign, bool firstOrLast, CRef< CDense_diag > &dd)
bool GetSeqID(const CRef< CSeq_align > &seqAlign, CRef< CSeq_id > &SeqID, bool getSlave=true)
bool GetDDSetFromSeqAlign(const CSeq_align &align, const TDendiag *&dd)
int GetNumAlignedResidues(const CRef< CSeq_align > &align)
bool SeqIdsMatch(const CRef< CSeq_id > &id1, const CRef< CSeq_id > &id2)
bool GetNcbieaaString(const CBioseq &bioseq, string &str)
int GetMMDBId(const CBioseq &bioseq)
string GetSeqIDStr(const CRef< CSeq_id > &SeqID)
bool Empty(const CNcbiOstrstream &src)
thread_local unique_ptr< FtaMsgPost > bmp
unsigned int TSeqPos
Type for sequence locations and lengths.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
bool NotEmpty(void) const THROWS_NONE
Check if CRef is not empty â pointing to an object and has a non-null value.
bool Empty(void) const THROWS_NONE
Check if CRef is empty â not pointing to any object, which means having a null value.
#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.
bool IsSetPending(void) const
contains alignments from update or "lower panel" Check if a value has been assigned to Pending data m...
TPending & SetPending(void)
Assign a value to Pending data member.
void SetSequences(TSequences &value)
Assign a value to Sequences data member.
const TId & GetId(void) const
Get the Id member data.
TFrom GetFrom(void) const
Get the From member data.
bool IsPdb(void) const
Check if variant Pdb is selected.
TGi GetGi(void) const
Get the variant data.
bool IsGi(void) const
Check if variant Gi is selected.
TTo GetTo(void) const
Get the To member data.
const TSeq & GetSeq(void) const
Get the variant data.
bool IsSeq(void) const
Check if variant Seq is selected.
bool IsAlign(void) const
Check if variant Align is selected.
void SetData(TData &value)
Assign a value to Data data member.
const Tdata & Get(void) const
Get the member data.
bool IsSetDescr(void) const
descriptors Check if a value has been assigned to Descr data member.
const TData & GetData(void) const
Get the Data member data.
const TDescr & GetDescr(void) const
Get the Descr member data.
unsigned int
A callback function used to compare two keys in a database.
const CConstRef< CSeq_id > GetAccession(const CSeq_id_Handle &id_handle)
#define row(bind, expected)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4