109 vector<CRef<CAlnMixSeq> >& ds_seq =
m_DsSeq[&ds];
130 m_Seqs.push_back(aln_seq);
144 aln_seq = it->second;
154 if (width == 1 && aln_seq->
m_IsAA !=
true ||
155 width == 3 && aln_seq->
m_IsAA !=
false) {
156 string errstr =
string(
"CAlnMix::Add(): ")
159 ") or molecule type(" +
160 (aln_seq->
m_IsAA ?
"AA" :
"NA") +
180 if (row_index == -1) {
183 }
else while (row_index !=
row) {
198 m_Seqs.push_back(another_row);
208 ds_seq.push_back(aln_seq);
217 string errstr =
string(
"CAlnMix::x_IdentifyAlnMixSeq(): ")
218 +
"In order to use this functionality "
219 "scope should be provided in CAlnMix constructor.";
226 if ( !bioseq_handle ) {
227 string errstr =
string(
"CAlnMix::x_IdentifyAlnMixSeq(): ")
228 +
"Seq-id cannot be resolved: "
249 m_Seqs.push_back(aln_seq);
260 aln_seq = it->second;
291 if ( !
row->GetStarts().empty() ) {
292 if (
row->m_PositiveStrand) {
293 row->SetStarts().current =
row->GetStarts().begin();
295 row->SetStarts().current =
row->GetStarts().end();
296 row->SetStarts().current--;
299 row->SetStarts().current =
row->GetStarts().end();
302 string(
"CAlnMixSequences::InitRowsStartIts():") +
303 " Internal error: no starts for row " +
322 if ( !
row->GetStarts().empty() ) {
323 if (
row->m_PositiveStrand) {
324 row->SetStarts().current =
row->GetStarts().begin();
326 row->SetStarts().current =
row->GetStarts().end();
327 row->SetStarts().current--;
330 row->SetStarts().current =
row->GetStarts().end();
333 string(
"CAlnMixSequences::InitExtraRowStartIts():") +
334 " Internal error: no starts for row " +
349 StartItsConsistencyCheck(**row_i,
366 m_PositiveStrand(
true),
static CRef< CScope > m_Scope
CAlnMixSeq * m_AnotherRow
const CAlnMixStarts & GetStarts() const
const CBioseq_Handle * m_BioseqHandle
void Add(const CDense_seg &ds, TAddFlags flags=0)
vector< CRef< CAlnMixSeq > > TSeqs
vector< CRef< CAlnMixSeq > > m_Rows
void x_IdentifyAlnMixSeq(CRef< CAlnMixSeq > &aln_seq, const CSeq_id &seq_id)
list< CRef< CAlnMixSeq > > m_ExtraRows
void RowsStartItsContsistencyCheck(size_t match_idx)
map< const CDense_seg *, vector< CRef< CAlnMixSeq > > > m_DsSeq
static bool x_CompareScores(const CRef< CAlnMixSeq > &seq1, const CRef< CAlnMixSeq > &seq2)
void InitExtraRowsStartIts()
static bool x_CompareChainScores(const CRef< CAlnMixSeq > &seq1, const CRef< CAlnMixSeq > &seq2)
TBioseqHandleMap m_BioseqHandles
bool IsSetWidths(void) const
const TWidths & GetWidths(void) const
container_type::iterator iterator
const_iterator end() const
const_iterator find(const key_type &key) const
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
const string AsFastaString(void) const
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Optimized implementation of CSerialObject::Assign, which is not so efficient.
CBioseq_Handle GetBioseqHandle(const CSeq_id &id)
Get bioseq handle by seq-id.
CConstRef< CSeq_id > GetSeqId(void) const
Get id which can be used to access this bioseq handle Throws an exception if none is available.
bool IsProtein(void) const
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static string IntToString(int value, TNumToStringFlags flags=0, int base=10)
Convert int to string.
TDim GetDim(void) const
Get the Dim member data.
const TIds & GetIds(void) const
Get the Ids member data.
unsigned int
A callback function used to compare two keys in a database.
#define row(bind, expected)