A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/su__alignment__set_8cpp_source.html below:

NCBI C++ ToolKit: src/algo/structure/struct_util/su_alignment_set.cpp Source File

59

SeqAnnotList::const_iterator

n

,

ne

= seqAnnots.end();

60  for

(

n

=seqAnnots.begin();

n

!=

ne

; ++

n

) {

62  if

(!

n

->GetObject().GetData().IsAlign())

63  THROW_MESSAGE

(

"AlignmentSet::AlignmentSet() - confused by Seq-annot data format"

);

64  if

(

n

!= seqAnnots.begin())

67

CSeq_annot::C_Data::TAlign::const_iterator

68  a

, ae =

n

->GetObject().GetData().GetAlign().end();

69  for

(

a

=

n

->GetObject().GetData().GetAlign().begin();

a

!=ae; ++

a

) {

73

!

a

->GetObject().IsSetDim() ||

a

->GetObject().GetDim() != 2 ||

74

(!

a

->GetObject().GetSegs().IsDendiag() && !

a

->GetObject().GetSegs().IsDenseg()))

75  THROW_MESSAGE

(

"AlignmentSet::AlignmentSet() - confused by alignment type"

);

77

seqAligns.push_back(*

a

);

80  if

(seqAligns.size() == 0)

81  THROW_MESSAGE

(

"AlignmentSet::AlignmentSet() - must have at least one Seq-align"

);

87  bool

seq1PresentInAll =

true

, seq2PresentInAll =

true

;

90  const CSeq_id

& frontSid = seqAligns.front()->GetSegs().IsDendiag() ?

91

seqAligns.front()->GetSegs().GetDendiag().front()->GetIds().front().GetObject() :

92

seqAligns.front()->GetSegs().GetDenseg().GetIds().front().GetObject();

93  const CSeq_id

& backSid = seqAligns.front()->GetSegs().IsDendiag() ?

94

seqAligns.front()->GetSegs().GetDendiag().front()->GetIds().back().GetObject() :

95

seqAligns.front()->GetSegs().GetDenseg().GetIds().back().GetObject();

96

SequenceSet::SequenceList::const_iterator s, se = sequenceSet.m_sequences.end();

97  for

(s=sequenceSet.m_sequences.begin(); s!=se; ++s) {

98  if

((*s)->MatchesSeqId(frontSid)) seq1 = *s;

99  if

((*s)->MatchesSeqId(backSid)) seq2 = *s;

100  if

(seq1 && seq2)

break

;

103  THROW_MESSAGE

(

"AlignmentSet::AlignmentSet() - can't match first pair of Seq-ids to Sequences"

);

106

SeqAlignList::const_iterator

a

= seqAligns.begin(), ae = seqAligns.end();

107  for

(++

a

;

a

!=ae; ++

a

) {

108  const CSeq_id

& frontSid2 = (*a)->GetSegs().IsDendiag() ?

109

(*a)->GetSegs().GetDendiag().front()->GetIds().front().GetObject() :

110

(*a)->GetSegs().GetDenseg().GetIds().front().GetObject();

111  const CSeq_id

& backSid2 = (*a)->GetSegs().IsDendiag() ?

112

(*a)->GetSegs().GetDendiag().front()->GetIds().back().GetObject() :

113

(*a)->GetSegs().GetDenseg().GetIds().back().GetObject();

115

seq1PresentInAll =

false

;

116  if

(!seq2->MatchesSeqId(frontSid2) && !seq2->MatchesSeqId(backSid2))

117

seq2PresentInAll =

false

;

119  if

(!seq1PresentInAll && !seq2PresentInAll)

121  "all pairwise sequence alignments must have a common master sequence"

);

122  else if

(seq1PresentInAll && !seq2PresentInAll)

124  else if

(seq2PresentInAll && !seq1PresentInAll)

126  else if

(seq1PresentInAll && seq2PresentInAll && seq1 == seq2)

131  WARNING_MESSAGE

(

"alignment master sequence is ambiguous - using the first one (" 135  TRACE_MESSAGE

(

"determined master sequence: "

<< m_master->IdentifierString());

138

SeqAlignList::const_iterator

l

,

le

= seqAligns.end();

139  for

(

l

=seqAligns.begin();

l

!=

le

; ++

l

)

140

m_alignments.push_back(

143  TRACE_MESSAGE

(

"number of alignments: "

<< m_alignments.size());

148  const SequenceSet

& sequenceSet,

const

vector < unsigned int > *rowOrder)

155  for

(

unsigned int i

=0;

i

<rowOrder->size(); ++

i

)

156

rowCheck[(*rowOrder)[

i

]] =

i

;

157  if

(rowOrder->size() != multiple->

NRows

() || rowCheck.

size

() != multiple->

NRows

() || (*rowOrder)[0] != 0) {

158  ERROR_MESSAGE

(

"AlignmentSet::CreateFromMultiple() - bad row order vector"

);

166

newSeqAnnots.push_back(seqAnnot);

169

seqAligns.resize((multiple->

NRows

() == 1) ? 1 : multiple->

NRows

() - 1);

170

CSeq_annot::C_Data::TAlign::iterator sa = seqAligns.begin();

177  if

(multiple->

NRows

() > 1) {

178  for

(

unsigned int row

=1;

row

<multiple->

NRows

(); ++

row

, ++sa) {

180

(rowOrder ? (*rowOrder)[

row

] :

row

)));

185

unique_ptr<AlignmentSet> newAlignmentSet;

187

newAlignmentSet.reset(

new AlignmentSet

(newSeqAnnots, sequenceSet));

190  "AlignmentSet::CreateFromMultiple() - failed to create AlignmentSet from new asn object: " 196  return

newAlignmentSet.release();

204

m_master(masterSequence), m_slave(

NULL

)

211  const CSeq_id

& frontSeqId = seqAlign.GetSegs().IsDendiag() ?

212

seqAlign.GetSegs().GetDendiag().front()->GetIds().front().GetObject() :

213

seqAlign.GetSegs().GetDenseg().GetIds().front().GetObject();

214  const CSeq_id

& backSeqId = seqAlign.GetSegs().IsDendiag() ?

215

seqAlign.GetSegs().GetDendiag().front()->GetIds().back().GetObject() :

216

seqAlign.GetSegs().GetDenseg().GetIds().back().GetObject();

218  bool

masterFirst =

true

;

219

SequenceSet::SequenceList::const_iterator s, se = sequenceSet.

m_sequences

.end();

220  for

(s=sequenceSet.

m_sequences

.begin(); s!=se; ++s) {

222

(*s)->MatchesSeqId(backSeqId)) {

224

}

else if

((*s)->MatchesSeqId(frontSeqId) &&

226

masterFirst =

false

;

231  ERROR_MESSAGE

(

"MasterSlaveAlignment::MasterSlaveAlignment() - couldn't find matching sequences; " 233

<< backSeqId.

AsFastaString

() <<

" must be in the sequence list for this file!"

);

239  int

masterRes, slaveRes, blockNum = 0;

243  if

(seqAlign.GetSegs().IsDendiag()) {

245

CSeq_align::C_Segs::TDendiag::const_iterator d , de = seqAlign.GetSegs().GetDendiag().end();

246  for

(d=seqAlign.GetSegs().GetDendiag().begin(); d!=de; ++d, ++blockNum) {

250  THROW_MESSAGE

(

"MasterSlaveAlignment::MasterSlaveAlignment() - incorrect dendiag block dimensions"

);

259  THROW_MESSAGE

(

"MasterSlaveAlignment::MasterSlaveAlignment() - mismatched Seq-id in dendiag block"

);

262  for

(

i

=0;

i

<block.

GetLen

(); ++

i

) {

271  THROW_MESSAGE

(

"MasterSlaveAlignment::MasterSlaveAlignment() - seqloc in dendiag block > length of sequence!"

);

279  else if

(seqAlign.GetSegs().IsDenseg()) {

281  const CDense_seg

& block = seqAlign.GetSegs().GetDenseg();

284

block.

GetIds

().size() != 2 ||

287  THROW_MESSAGE

(

"MasterSlaveAlignment::MasterSlaveAlignment() - incorrect denseg block dimension"

);

296  THROW_MESSAGE

(

"MasterSlaveAlignment::MasterSlaveAlignment() - mismatched Seq-id in denseg block"

);

299

CDense_seg::TStarts::const_iterator starts = block.

GetStarts

().begin();

300

CDense_seg::TLens::const_iterator lens,

le

= block.

GetLens

().end();

301  for

(lens=block.

GetLens

().begin(); lens!=

le

; ++lens) {

303

masterRes = *(starts++);

304

slaveRes = *(starts++);

306

slaveRes = *(starts++);

307

masterRes = *(starts++);

309  if

(masterRes != -1 && slaveRes != -1) {

312  THROW_MESSAGE

(

"MasterSlaveAlignment::MasterSlaveAlignment() - " 313  "seqloc in denseg block > length of sequence!"

);

314  for

(

i

=0;

i

<*lens; ++

i

) {

User-defined methods of the data storage class.

list< const CSeq_align * > SeqAlignList

#define WARNING_MESSAGE(s)

AlignmentSet(SequenceSet *seqSet, const SeqAnnotList &seqAnnots, bool ignoreBadPairwiseAlignments=false)

SeqAnnotList * newAsnAlignmentData

std::list< ncbi::CRef< ncbi::objects::CSeq_annot > > SeqAnnotList

static AlignmentSet * CreateFromMultiple(const BlockMultipleAlignment *multiple, SeqAnnotList *newAsnAlignmentData, const SequenceSet &sequenceSet, const std::vector< unsigned int > *rowOrder=NULL)

std::vector< const UngappedAlignedBlock * > UngappedAlignedBlockList

void GetUngappedAlignedBlocks(UngappedAlignedBlockList *blocks) const

unsigned int NRows(void) const

ResidueVector m_blockStructure

MasterSlaveAlignment(const SequenceSet *sequenceSet, const Sequence *masterSequence, const objects::CSeq_align &seqAlign)

const Sequence * m_master

ResidueVector m_masterToSlave

unsigned int Length(void) const

bool MatchesSeqId(const ncbi::objects::CSeq_id &seqID) const

std::string IdentifierString(void) const

const string & GetMsg(void) const

Get message string.

const string AsFastaString(void) const

#define END_SCOPE(ns)

End the previously defined scope.

#define BEGIN_SCOPE(ns)

Define a new scope.

bool IsSetDim(void) const

dimensionality Check if a value has been assigned to Dim data member.

const TStarts & GetStarts(void) const

Get the Starts member data.

const TLens & GetLens(void) const

Get the Lens member data.

TLen GetLen(void) const

Get the Len member data.

TDim GetDim(void) const

Get the Dim member data.

const TIds & GetIds(void) const

Get the Ids member data.

TDim GetDim(void) const

Get the Dim member data.

const TIds & GetIds(void) const

Get the Ids member data.

const TStarts & GetStarts(void) const

Get the Starts member data.

TNumseg GetNumseg(void) const

Get the Numseg member data.

@ eType_partial

mapping pieces together

@ eType_diags

unbroken, but not ordered, diagonals

void SetData(TData &value)

Assign a value to Data data member.

list< CRef< CSeq_align > > TAlign

The NCBI C++/STL use hints.

bool le(T x_, T y_, T round_)

bool ne(T x_, T y_, T round_)

static SLJIT_INLINE sljit_ins l(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)

#define row(bind, expected)

static DP_BlockInfo * blocks

ncbi::objects::CSeq_align * CreatePairwiseSeqAlignFromMultipleRow(const BlockMultipleAlignment *multiple, const BlockMultipleAlignment::UngappedAlignedBlockList &blocks, unsigned int slaveRow)

#define THROW_MESSAGE(str)


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