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/showalign_8cpp_source.html below:

NCBI C++ ToolKit: src/objtools/align_format/showalign.cpp Source File

93 static const char

*

color

[]={

"#000000"

,

"#808080"

,

"#FF0000"

};

105 static const char

*

k_DefaultCheckboxTempl

=

"<input type=\"checkbox\" name=\"getSeqGi\" value=\"<@id_lbl@>\" onClick=\"synchronizeCheck(this.value, 'getSeqAlignment<@queryNumber@>', 'getSeqGi', this.checked)\">"

;

106 static const char

*

k_DefaultCheckboxExTempl

=

"<input type=\"checkbox\" name=\"getSeqGi\" value=\"<@id_lbl@>\" checked=\"checked\" onClick=\"synchAl(this);\">"

;

115 static const char

* k_GetSeqSubmitForm[] = {

"<FORM method=\"post\" \ 116 action=\"//www.ncbi.nlm.nih.gov:80/entrez/query.fcgi?SUBMIT=y\" \ 117 name=\"%s%d\"><input type=button value=\"Get selected sequences\" \ 118 onClick=\"finalSubmit(%d, 'getSeqAlignment%d', 'getSeqGi', '%s%d', %d)\"><input \ 119 type=\"hidden\" name=\"db\" value=\"\"><input type=\"hidden\" name=\"term\" \ 120 value=\"\"><input type=\"hidden\" name=\"doptcmdl\" value=\"docsum\"><input \ 121 type=\"hidden\" name=\"cmd\" value=\"search\"></form>"

,

123  "<FORM method=\"POST\" \ 124 action=\"//www.ncbi.nlm.nih.gov/Traces/trace.cgi\" \ 125 name=\"%s%d\"><input type=button value=\"Get selected sequences\" \ 126 onClick=\"finalSubmit(%d, 'getSeqAlignment%d', 'getSeqGi', '%s%d', %d)\"><input \ 127 type=\"hidden\" name=\"val\" value=\"\"><input \ 128 type=\"hidden\" name=\"cmd\" value=\"retrieve\"></form>" 131 static const char

* k_GetSeqSelectForm =

"<FORM><input \ 132 type=\"button\" value=\"Select all\" onClick=\"handleCheckAll('select', \ 133 'getSeqAlignment%d', 'getSeqGi')\"></form></td><td><FORM><input \ 134 type=\"button\" value=\"Deselect all\" onClick=\"handleCheckAll('deselect', \ 135 'getSeqAlignment%d', 'getSeqGi')\"></form>"

;

137 static const char

* k_GetTreeViewForm =

"<FORM method=\"post\" \ 138 action=\"//www.ncbi.nlm.nih.gov/blast/treeview/blast_tree_view.cgi?request=page&rid=%s&queryID=%s&distmode=on\" \ 139 name=\"tree%s%d\" target=\"trv%s\"> \ 140 <input type=button value=\"Distance tree of results\" onClick=\"extractCheckedSeq('getSeqAlignment%d', 'getSeqGi', 'tree%s%d')\"> \ 141 <input type=\"hidden\" name=\"sequenceSet\" value=\"\"><input type=\"hidden\" name=\"screenWidth\" value=\"\"></form>"

;

152

list <FeatureInfo*>* external_feature,

153  const char

* matrix_name

)

154

: m_SeqalignSetRef(&seqalign),

155

m_Seqloc(mask_seqloc),

156

m_QueryFeature(external_feature),

159

m_UseLongSeqIds(

false

)

163

m_SeqLocColor = eBlack;

166

m_CanRetrieveSeq =

false

;

168

m_NumAlignToShow = 1000000;

175

m_MidLineStyle = eBar;

176

m_ConfigFile =

NULL

;

178

m_DynamicFeature =

NULL

;

179

m_MasterGeneticCode = 1;

180

m_SlaveGeneticCode = 1;

181

m_AlignTemplates =

NULL

;

184

m_DomainInfo =

NULL

;

185

m_SeqPropertyLabel.reset(

new

vector<string>);

186

m_TranslatedFrameForLocalSeq = eFirst;

187

m_ResultPositionIndex = -1;

188

m_currAlignSeqListIndex = 1;

189

m_QueryAnchoredSetIndex = -1;

198  if

(

mtx

.GetData().empty()) {

205  if

( !

mtx

.GetData().empty() )

207

m_Matrix =

new int

*[

mtx

.GetRows()];

208  for

(

size_t i

= 0;

i

<

mtx

.GetRows(); ++

i

) {

209

m_Matrix[

i

] =

new int

[

mtx

.GetCols()];

212  for

(

size_t i

= 0;

i

<

mtx

.GetRows(); ++

i

) {

213  for

(

size_t

j = 0; j <

mtx

.GetCols(); j++) {

214

m_Matrix[

i

][j] =

mtx

(

i

, j);

246  int

aln_stop = (

int

)

m_AV

->GetAlnStop();

247  int

master_strand =

m_AV

->StrandSign(0);

248  int

slave_strand =

m_AV

->StrandSign(1);

254  string

alignParams = alignInfo;

265

alignParams =

CAlignFormatUtil::MapTemplate

(alignParams,

"aln_strand"

,(master_strand==1 ?

"Plus"

:

"Minus"

)+ (

string

)

"/"

+ (slave_strand==1?

"Plus"

:

"Minus"

));

272  if

(master_frame != 0 && slave_frame != 0) {

274

+ (

string

)

"/"

+((slave_frame > 0) ?

"+"

:

""

) +

NStr::IntToString

(slave_frame));

276

}

else if

(master_frame != 0){

279

}

else if

(slave_frame != 0){

306  int

gap,

int

master_strand,

307  int

slave_strand,

int

master_frame,

308  int

slave_frame,

bool

aln_is_prot)

310  out

<<

" Identities = "

<<

match

<<

"/"

<<(aln_stop+1)<<

" ("

<<identity<<

"%"

<<

")"

;

315  out

<<

", Gaps = "

<<gap<<

"/"

<<(aln_stop+1)

318  out

<<

" Strand="

<<(master_strand==1 ?

"Plus"

:

"Minus"

)

319

<<

"/"

<<(slave_strand==1?

"Plus"

:

"Minus"

)<<

"\n"

;

321  if

(master_frame != 0 && slave_frame != 0) {

322  out

<<

" Frame = "

<< ((master_frame > 0) ?

"+"

:

""

)

323

<< master_frame <<

"/"

<<((slave_frame > 0) ?

"+"

:

""

)

324

<< slave_frame<<

"\n"

;

325

}

else if

(master_frame != 0){

326  out

<<

" Frame = "

<< ((master_frame > 0) ?

"+"

:

""

)

327

<< master_frame <<

"\n"

;

328

}

else if

(slave_frame != 0){

329  out

<<

" Frame = "

<< ((slave_frame > 0) ?

"+"

:

""

)

330

<< slave_frame <<

"\n"

;

342  const int

line_len = 60;

343  bool

do_wrap =

false

;

344  int

length = (

int

)

str

.size();

345  if

(length > line_len) {

346  for

(

int i

= 0;

i

< length;

i

++){

347  if

(

i

> 0 &&

i

% line_len == 0){

351  if

(do_wrap &&

isspace

((

unsigned char

)

str

[

i

])){

376  bool

isStyled =

false

;

377  if

(startStyledOutput || (!styledSeqStr.empty() && !stopStyledOutput)){

378

styledSeqStr += seq[currIndex];

381  if

(!styledSeqStr.empty() && (stopStyledOutput || currIndex == (

int

)seq.size() - 1) ) {

397  for

(

int i

= 0;

i

< (

int

)seq.size();

i

++){

399  if

(!isStyled)

out

<< seq[

i

];

416

frame = (start % 3) + 1;

438

*(ss.

GetIds

().front()), scope);

456  string

& raw_cdr_product,

TSeqPos

frame_adj)

459  string

concat_exon(total_coding_len,

' '

);

469

coding_start_base = total_coding_len - 1 - (frame -1) - frame_adj;

470

num_base = total_coding_len - 1;

474

coding_start_base = 0;

475

coding_start_base += frame - 1 + frame_adj;

484  for

(

TSeqPos i

= 0;

i

< iter->GetLength();

i

++){

485  if

((

TSeqPos

)num_base >= coding_start_base){

487  if

(num_coding_base % 3 == 2){

489  if

(num_coding_base / 3 < raw_cdr_product.size()){

493

concat_exon[num_base]

494

= raw_cdr_product[num_coding_base / 3];

502  for

(

TSeqPos i

= 0;

i

< iter->GetLength() &&

503

num_base >= 0;

i

++){

504  if

((

TSeqPos

)num_base <= coding_start_base){

506  if

(num_coding_base % 3 == 2){

508  if

(num_coding_base / 3 <

509

raw_cdr_product.size() &&

510

coding_start_base >= num_coding_base){

514

concat_exon[num_base]

515

= raw_cdr_product[num_coding_base / 3];

537

list<CSeq_loc_CI::TRange>& slave_feat_range,

547

trans_frame += frame_adj;

550  bool

is_first_in_range =

true

;

559

list<CSeq_loc_CI::TRange> acutal_slave_feat_range = slave_feat_range;

561  ITERATE

(list<CSeq_loc_CI::TRange>, iter_temp,

562

acutal_slave_feat_range){

564

IntersectionWith(*iter_temp);

565  if

(!actual_feat_seq_range.

Empty

()){

566  TSeqPos

slave_aln_from = 0, slave_aln_to = 0;

568  int

curr_exon_leading_len = 0;

570  if

(is_first_in_range) {

572

curr_exon_leading_len

573

= actual_feat_seq_range.

GetFrom

() - iter_temp->GetFrom();

576

curr_exon_leading_len

577

= iter_temp->GetTo() - actual_feat_seq_range.

GetTo

();

579

is_first_in_range =

false

;

580

frame_offset = (3 - (prev_exon_len + curr_exon_leading_len)%3

581

+ (trans_frame - 1)) % 3;

602

actual_feat_seq_range.

GetFrom

() +

632

master_feat_range.push_back(master_range);

635

prev_exon_len += iter_temp->GetLength();

657  TSeqPos

frame_adj,

bool

mix_loc)

672

GetBioseqLength(), raw_cdr_product);

676  TSeqPos

from = iter->GetFrom();

690  if

(genetic_code > 0) {

694

ce->SetId(genetic_code);

695

gc.

Set

().push_back(ce);

699

raw_cdr_product, &gc);

702  return

raw_cdr_product;

714  size_t

length_per_line,

715  TSeqPos

feat_aln_start_totalexon,

718

list<TSeqPos>& start)

720  size_t

actual_line_len = 0;

721  size_t

aln_len = line.size();

722  TSeqPos

previous_num_letter = 0;

725  for

(

size_t i

= 0;

i

<= feat_aln_start_totalexon;

i

++){

730  int

pos = concat_exon.size() -1 -

i

;

731  if

(pos >= 0 &&

isalpha

((

unsigned char

) concat_exon[pos])){

732

previous_num_letter ++;

736  if

(

isalpha

((

unsigned char

) concat_exon[

i

])){

737

previous_num_letter ++;

746  for

(

size_t i

= 0;

i

< aln_len;

i

+= actual_line_len){

748  if

(aln_len -

i

< length_per_line) {

749

actual_line_len = aln_len -

i

;

751

actual_line_len = length_per_line;

755  bool

has_intron =

false

;

758  for

(

size_t

j =

i

; j < actual_line_len +

i

; j ++){

760  if

(

isalpha

((

unsigned char

) line[j])){

770

start.push_back(previous_num_letter - prev_num);

772

start.push_back(previous_num_letter + prev_num);

776

start.push_back(previous_num_letter + prev_num);

778

start.push_back(previous_num_letter - prev_num);

781

}

else if

(has_intron) {

796

list<ENa_strand>& feat_seq_strand,

819

seq_feat->

SetData

(*feat_data);

826

feat_seq_strand.front())));

829  ftable

.push_back(seq_feat);

830

feat_seq_strand.pop_front();

832

anot_list.push_back(anot);

851  bool

color_feat_mismatch,

857  if

((

int

)feat_line.size() > start){

858  string

actual_feat = feat_line.substr(start,

len

);

861

actual_reference_feat = reference_feat_line.substr(start,

len

);

863  if

(color_feat_mismatch

866  string

styledSequenceStr;

867  for

(

int i

= 0;

i

< (

int

)actual_feat.size() &&

868  i

< (

int

)actual_reference_feat.size();

i

++){

869  bool

styledOutput = actual_feat[

i

] != actual_reference_feat[

i

] &&

871  bool

stopStyledOutput = (actual_feat[

i

] == actual_reference_feat[

i

]) && actual_feat[

i

] !=

' '

;

873  if

(!isStyled)

out

<< actual_feat[

i

];

885  string

& master_feat_str,

893  int

id_length = alnRoInfo->

maxIdLen

;

906

substr(aln_start, line_length)) &&

913  out

<<(*iter)->feature->feature_id;

914  if

((*iter)->feature_start.empty()){

918

-(*iter)->feature->feature_id.size());

920  int

feat_start = (*iter)->feature_start.front();

924

-(*iter)->feature->feature_id.size());

934

-(*iter)->feature->feature_id.size());

937

(*iter)->feature_start.pop_front();

939  bool

color_cds_mismatch =

false

;

943

color_cds_mismatch =

true

;

949

color_cds_mismatch =

true

;

952

(*iter)->feature_string,

953

color_cds_mismatch, aln_start,

956

master_feat_str = (*iter)->feature_string;

971

seqUrlInfo->

defline

= sequence::CDeflineGenerator().GenerateDefline(bsp_handle);

982  string

idString =

m_AV

->GetSeqId(1).GetSeqIdString();

1034  if

(bdl_list.size() > 0) {

1050  const CSeq_id

&

id

= sequence_masks->front()->GetSeqId();

1057  int

first_encoding_base,

int

align_length,

1058  const string

& translation,

const string

& sequence,

1061  string

feat(align_length,

' '

);

1065  for

(

int i

= first_encoding_base;

i

< (

int

) feat.size() &&

1066

j < (

int

)translation.size();

i

++) {

1067  if

(sequence[

i

] != gap_char) {

1071  if

(num_base%3 == 2) {

1072

feat[

i

] = translation[j];

1081

vector<string>& sequence)

const

{

1082  if

(

m_AV

->IsPositiveStrand(0) &&

m_AV

->IsPositiveStrand(1)) {

1085  int

non_gap_aln_pos = 0;

1087  int

num_consecutive = 0;

1088  for

(

int i

=0;

i

< (

int

) sequence[0].

size

();

i

++) {

1089  if

(sequence[0][

i

] != gap_char &&

1090

sequence[1][

i

] != gap_char) {

1093  if

(num_consecutive >=3) {

1094

non_gap_aln_pos =

i

- 2;

1098

num_consecutive = 0;

1104  int

master_frame_extra =

m_AV

->GetSeqPosFromAlnPos(0, non_gap_aln_pos)%3;

1105  int

master_frame_start;

1107

master_frame_start =

m_AV

->GetSeqPosFromAlnPos(0, non_gap_aln_pos) +

1112  m_AV

->GetSeqStop(0)));

1115  string

master_translation;

1118

master_translation);

1119  int

master_first_encoding_base =

m_AV

->GetAlnPosFromSeqPos(0, master_frame_start);

1121

master_first_encoding_base,

1122  m_AV

->GetAlnStop() + 1,

1124

sequence[0], gap_char);

1129  m_AV

->GetAlnStop(),

' '

,

1130  " "

, master_feat, -1);

1132

retval[0].push_back(master_featInfo);

1135  int

subject_frame_start =

m_AV

->GetSeqPosFromSeqPos(1, 0, master_frame_start);

1142  string

subject_translation;

1145

subject_translation);

1146  int

subject_first_encoding_base =

m_AV

->GetAlnPosFromSeqPos(1, subject_frame_start);

1148

subject_first_encoding_base,

1149  m_AV

->GetAlnStop() + 1,

1150

subject_translation,

1151

sequence[1], gap_char);

1156  m_AV

->GetAlnStop(),

' '

,

1157  " "

, subject_feat, -1);

1159

retval[1].push_back(subject_featInfo);

1167  const string

& sequence ,

char

gap_char,

1168  int

&

match

,

int

& align_length){

1172  int

end = (

int

)sequence.size() - 1;

1173  for

(

int i

= 0;

i

< (

int

)sequence.size();

i

++){

1174  if

(sequence[

i

] != gap_char){

1180  for

(

int i

= (

int

)sequence.size() - 1;

i

> 0;

i

--){

1181  if

(sequence[

i

] != gap_char){

1188  for

(

int i

= start;

i

<= end &&

i

< (

int

)sequence.size() &&

i

< (

int

)sequence_standard.size();

i

++){

1189  if

(sequence[

i

] == gap_char && sequence_standard[

i

] == gap_char) {

1192  if

(sequence_standard[

i

]==sequence[

i

]){

1202  size_t

maxIdLen=0, maxStartLen=0;

1205  const int

rowNum=

m_AV

->GetNumRows();

1207  m_AV

->SetAnchor(0);

1209  m_AV

->SetGapChar(

'-'

);

1212  m_AV

->SetEndChar(

'-'

);

1215  m_AV

->SetEndChar(

' '

);

1217

vector<string> sequence(rowNum);

1218

vector<CAlnMap::TSeqPosList> seqStarts(rowNum);

1219

vector<CAlnMap::TSeqPosList> seqStops(rowNum);

1220

vector<CAlnMap::TSeqPosList> insertStart(rowNum);

1221

vector<CAlnMap::TSeqPosList> insertAlnStart(rowNum);

1222

vector<CAlnMap::TSeqPosList> insertLength(rowNum);

1223

vector<string> seqidArray(rowNum);

1225

vector<CAlnMap::TSignedRange> rowRng(rowNum);

1226

vector<int> frame(rowNum);

1227

vector<TTaxId> taxid(rowNum);

1228  int

max_feature_num = 0;

1229

vector<int>

match

(rowNum-1);

1230

vector<double> percent_ident(rowNum-1);

1231

vector<int> align_length(rowNum-1);

1232

vector<string> align_stats(rowNum-1);

1233

vector<string> seq_property_label(rowNum-1);

1234  int

max_align_stats = 0;

1235  int

max_seq_property_label = 0;

1238

vector<TSAlnFeatureInfoList> bioseqFeature;

1243  _ASSERT

((

int

)bioseqFeature.size() == rowNum);

1245

vector<TSAlnSeqlocInfoList> masked_regions(rowNum);

1248  for

(

int row

= 1;

row

< rowNum;

row

++) {

1254

list<list<CRange<TSeqPos> > > feat_seq_range;

1255

list<ENa_strand> feat_seq_strand;

1257  for

(

int row

=0;

row

<rowNum;

row

++) {

1262

type_temp ==

"gsfasta"

|| type_temp ==

"gsfasta_prev"

){

1272

rowRng[

row

] =

m_AV

->GetSeqAlnRange(

row

);

1273

frame[

row

] = (

m_AV

->GetWidth(

row

) == 3 ?

1277  m_AV

->IsPositiveStrand(

row

) ?

1281  m_AV

->GetWholeAlnSeqString(

row

, sequence[

row

], &insertAlnStart[

row

],

1282

&insertStart[

row

], &insertLength[

row

],

1290  if

(align_length[

row

-1] > 0 ){

1291

percent_ident[

row

-1] = ((double)

match

[

row

-1])/align_length[

row

-1]*100;

1296

percent_ident[

row

- 1] = 0;

1297

align_stats[

row

-1] =

"0"

;

1300

max_align_stats =

max

(max_align_stats,

1301

(

int

)align_stats[

row

-1].

size

());

1310

seq_property_label[

row

-1] = (*m_SeqPropertyLabel)[

row

];

1315

max_seq_property_label =

max

(max_seq_property_label,

1316

(

int

)seq_property_label[

row

-1].

size

());

1320

&&

m_AV

->GetWidth(

row

) != 3

1330

GetBioseqCore()->

GetId

());

1333

feat_seq_range, feat_seq_strand,

1334  row

== 1 && !(master_gi >

ZERO_GI

) ?

true

:

false

);

1336  if

(!(feat_seq_range.empty()) &&

row

== 1) {

1341  m_AV

->GetBioseqHandle(0));

1342  int

custom_genetic_code = -1;

1344  if

((*iter_feat)->genetic_code > 0) {

1345

custom_genetic_code = (*iter_feat)->genetic_code;

1351

list<list<CRange<TSeqPos> > > temp_holder;

1352  x_GetFeatureInfo

(bioseqFeature[0], custom_genetic_code, *master_scope_with_feat,

1354

temp_holder, feat_seq_strand,

false

);

1360

feat_seq_range, feat_seq_strand,

false

);

1365

maxIdLen=max<size_t>(seqidArray[

row

].

size

(), maxIdLen);

1366  size_t

maxCood=max<size_t>(

m_AV

->GetSeqStart(

row

),

m_AV

->GetSeqStop(

row

));

1369  for

(

int i

= 0;

i

< rowNum;

i

++){

1370  int

num_feature = 0;

1372

maxIdLen=max<size_t>((*iter)->feature->feature_id.size(), maxIdLen);

1374  if

(num_feature > max_feature_num){

1375

max_feature_num = num_feature;

1388

alnRoInfo->

rowRng

= rowRng;

1389

alnRoInfo->

frame

= frame;

1390

alnRoInfo->

taxid

= taxid;

1398

alnRoInfo->

rowNum

= rowNum;

1411  size_t

aln_stop=

m_AV

->GetAlnStop();

1412  int

rowNum = alnRoInfo->

rowNum

;

1413

vector<int> prev_stop(rowNum);

1419  m_AV

->GetWidth(0) != 3 &&

m_AV

->GetWidth(1) != 3) ?

true

:

false

;

1424  m_AV

->GetWidth(0) != 3 &&

m_AV

->GetWidth(1) != 3) ?

true

:

false

;

1427  string

formattedString;

1430

formattedString += rowdata;

1432  return

formattedString;

1437  size_t

aln_stop=

m_AV

->GetAlnStop();

1438  int

rowNum = alnRoInfo->

rowNum

;

1439

vector<int> prev_stop(rowNum);

1444  m_AV

->GetWidth(0) != 3 &&

m_AV

->GetWidth(1) != 3) ?

true

:

false

;

1449  m_AV

->GetWidth(0) != 3 &&

m_AV

->GetWidth(1) != 3) ?

true

:

false

;

1450  int

rowSetsCount = 1;

1478  size_t

actualLineLen=0;

1480  size_t

aln_stop=

m_AV

->GetAlnStop();

1482  int

rowNum = alnRoInfo->

rowNum

;

1488

actualLineLen=aln_stop-aln_start+1;

1497  for

(

int row

=0;

row

<rowNum;

row

++) {

1498  bool

hasSequence =

true

;

1504  int

end = alnRoInfo->

seqStops

[

row

].front() + 1;

1505  bool

has_mismatch =

false

;

1508  for

(

int

index = aln_start; index < aln_start + (

int

)actualLineLen &&

1509

index < (

int

)alnRoInfo->

sequence

[

row

].size(); index ++){

1513

}

else if

(!has_mismatch) {

1514

has_mismatch =

true

;

1542

prev_stop[

row

] = end;

1553  return

formattedString;

1558  size_t

actualLineLen=0;

1560  size_t

aln_stop=

m_AV

->GetAlnStop();

1562  int

rowNum = alnRoInfo->

rowNum

;

1567

actualLineLen=aln_stop-aln_start+1;

1576  for

(

int row

=0;

row

<rowNum;

row

++) {

1577  bool

hasSequence =

true

;

1583  int

end = alnRoInfo->

seqStops

[

row

].front() + 1;

1584

prev_stop[

row

] = end;

1599  int

end = alnRoInfo->

seqStops

[

row

].front() + 1;

1606  if

((j > 0 && end == prev_stop)

1607

|| (j == 0 && start == 1 && end == 1)) {

1616

(

int

)actualLineLen, alnRoInfo->

frame

[

row

],

row

,

1622  if

(!(j > 0 && end == prev_stop)

1623

&& !(j == 0 && start == 1 && end == 1)) {

1631

list<string> inserts;

1632  string

insertPosString;

1640  bool

insertAlready =

false

;

1641  for

(list<string>::iterator iter = inserts.begin();

1642

iter != inserts.end(); iter ++){

1643  if

(!insertAlready){

1659  out

<< insertPosString<<

"\n"

;

1674  out

<<*iter<<

"\n"

;

1675

insertAlready =

true

;

1701

gi =

m_AV

->GetSeqId(

row

).GetGi();

1705

GetBioseqCore()->

GetId

());

1707  string

anchorTmpl,checkBoxTmpl,id_lbl;

1730

id_lbl =

"lcl|"

+ id_lbl;

1734  if

(showCheckbox || showAnchor) {

1768  if

(!urlLink.empty()) {

1788  size_t

aln_stop=

m_AV

->GetAlnStop();

1790

aln_vec_info->

match

= 0;

1792

aln_vec_info->

gap

= 0;

1796

aln_vec_info->

match

,

1828

finalAln = densegAln;

1844

finalAln = densegAln;

1848  "Seq-align should be Denseg, Stdseg or Dendiag!"

);

1852  if

((ds->IsSetStrands()

1854

&& !(ds->IsSetWidths() && ds->GetWidths()[0] == 3)){

1856

finalDenseg->

Assign

(*ds);

1891  string

feat_file =

m_Reg

->

Get

(

"FEATURE_INFO"

,

"FEATURE_FILE"

);

1892  string

feat_file_index =

m_Reg

->

Get

(

"FEATURE_INFO"

,

1893  "FEATURE_FILE_INDEX"

);

1916  if

(actual_aln_list.

Get

().empty()){

1942  for

(CSeq_align_set::Tdata::const_iterator

1943

iter = actual_aln_list.

Get

().begin();

1944

iter != actual_aln_list.

Get

().end()

1950  if

(!(avRef.

Empty

())){

1967

alnvecInfo->use_this_seqid,

1968

alnvecInfo->comp_adj_method);

1969

alnvecInfo->alnvec = avRef;

1972  bool

showDefLine = previousId.

Empty

() || !subid->

Match

(*previousId);

1978  out

<<

"Sequence with id " 1980

<<

" no longer exists in database...alignment skipped\n"

;

1993

vector<CRef<CSeq_align_set> > alnVector(

k_NumFrame

);

1997  for

(CSeq_align_set::Tdata::const_iterator

1998

alnIter = actual_aln_list.

Get

().begin();

1999

alnIter != actual_aln_list.

Get

().end()

2003  m_Scope

.GetBioseqHandle((*alnIter)->GetSeq_id(1));

2017

alnVector[0]->Set().push_back(convertedDs);

2020

alnVector[1]->Set().push_back(convertedDs);

2023

alnVector[2]->Set().push_back(convertedDs);

2026

alnVector[3]->Set().push_back(convertedDs);

2029

alnVector[4]->Set().push_back(convertedDs);

2032

alnVector[5]->Set().push_back(convertedDs);

2039

alnVector[0]->Set().push_back(convertedDs);

2043

alnVector[0]->Set().push_back(*alnIter);

2049  "Input Seq-align should be Denseg, Stdseg or Dendiag!"

);

2053  for

(

int i

= 0;

i

< (

int

)alnVector.size();

i

++){

2054  bool

hasAln =

false

;

2056

alnRef =

ConstBegin

(*alnVector[

i

]); alnRef; ++alnRef){

2063  if

(ds->IsSetWidths() &&

2064

ds->GetWidths()[0] == 3 &&

2065

ds->IsSetStrands() &&

2087  int

numDistinctFrames = 0;

2088  for

(

int i

= 0;

i

< (

int

)alnVector.size();

i

++){

2089  if

(!alnVector[

i

]->

Get

().empty()){

2090

numDistinctFrames ++;

2103  if

(numDistinctFrames > 1){

2105

<<

" of query sequence:\n\n"

;

2114  out

<<

"</form>\n"

;

2120  const string

& sequence ,

2122  string

& middle_line)

2126  int

min_length=min<int>((

int

)sequence_standard.size(), (

int

)sequence.size());

2128

middle_line = sequence;

2130  for

(

int i

=0;

i

<min_length;

i

++){

2131  if

(sequence_standard[

i

]==sequence[

i

]){

2134

middle_line[

i

] =

'|'

;

2136

middle_line[

i

] = sequence[

i

];

2142

&&

m_Matrix

[(

int

)sequence_standard[

i

]][(

int

)sequence[

i

]] > 0){

2146

middle_line[

i

] =

'+'

;

2151

middle_line[

i

] =

' '

;

2170

cerr <<

"[BLAST FORMATTER EXCEPTION] Problem with linkoutdb: "

<< e.

GetMsg

() << endl;

2182

list<string> &use_this_seqid,

2186

SAlnDispParams *alnDispParams =

NULL

;

2187  const int

kMaxDeflineNum = 10;

2192  const

list<CRef<CSeq_id> > ids = bdl->GetSeqid();

2197  bool

isGiList =

false

;

2199  if

(

match

&& isGiList) gi_in_use_this_gi = gi;

2201  if

(use_this_seqid.empty() ||

match

) {

2202

firstGi = (firstGi ==

ZERO_GI

) ? gi_in_use_this_gi : firstGi;

2203

alnDispParams =

new

SAlnDispParams();

2204

alnDispParams->gi = gi;

2214  if

(bdl->IsSetTaxid() && bdl->CanGetTaxid()){

2215

taxid = bdl->GetTaxid();

2218

alnDispParams->seqUrlInfo =

x_InitSeqUrl

(gi_in_use_this_gi,alnDispParams->label,taxid,ids);

2224  if

(alnDispParams->hasTextSeqID) {

2228

alnDispParams->gi) : 0;

2240  ITERATE

(list<string>, iter_linkout, linkout_url){

2241

alnDispParams->linkoutStr += *iter_linkout;

2249  if

(bdl->IsSetTitle()){

2250

alnDispParams->title = bdl->GetTitle();

2252  if

(alnDispParams->title.empty()) {

2256  return

alnDispParams;

2263

SAlnDispParams *alnDispParams =

new

SAlnDispParams();

2269

alnDispParams->seqUrlInfo =

x_InitSeqUrl

(alnDispParams->gi,alnDispParams->label,

ZERO_TAX_ID

,alnDispParams->ids);

2274  return

alnDispParams;

2284  static string

kLengthString(

"Length="

);

2285 #ifdef CTOOLKIT_COMPATIBLE 2286  static bool

value_set =

false

;

2288  if

(getenv(

"CTOOLKIT_COMPATIBLE"

)) {

2289

kLengthString.assign(

" Length = "

);

2303  bool

isFirst =

true

;

2325

aln_vec_info->id_label = (alnDispParams->gi !=

ZERO_GI

) ?

2328  out

<<alnDispParams->id_url;

2332

!alnDispParams->seqID->IsGi()){

2333  out

<<

"gi|"

<<alnDispParams->gi<<

"|"

;

2335  if

(!((alnDispParams->seqID->AsFastaString().find(

"gnl|BL_ORD_ID"

) != string::npos) ||

2336

alnDispParams->seqID->AsFastaString().find(

"lcl|Subject_"

) != string::npos)){

2337  if

(

strncmp

(alnDispParams->seqID->AsFastaString().c_str(),

"lcl|"

, 4) == 0)

2338  out

<< alnDispParams->label;

2341

alnDispParams->gi >

ZERO_GI

)) {

2342

alnDispParams->seqID->WriteAsFasta(

out

);

2354  if

(alnDispParams->gi !=

ZERO_GI

){

2355  out

<<

"<a name="

<<alnDispParams->gi<<

"></a>"

;

2357  out

<<

"<a name="

<<alnDispParams->seqID->GetSeqIdString()<<

"></a>"

;

2363

alnDispParams->title);

2369  bool

bMultipleDeflines =

false

;

2371  int

maxNumBdl = (aln_vec_info->use_this_seqid.empty()) ? bdl.size() : aln_vec_info->use_this_seqid.size();

2373

iter = bdl.begin(); iter != bdl.end(); iter++){

2377

aln_vec_info->use_this_seqid,

2382  if

(alnDispParams) {

2390  string

mdlTag = aln_vec_info->id_label;

2392  out

<<

"<a href=\"#\" title=\"Other sequence titles\" onmouseover=\"showInfo(this)\" class=\"resArrowLinkW mdl hiding\" id=\""

<<

2393

mdlTag <<

"\">"

<< maxNumBdl -

k_MinDeflinesToShow

<<

" more sequence titles"

<<

"</a>\n"

;

2395  out

<<

" <div id=\""

<<

"info_"

<< mdlTag <<

"\" class=\"helpbox mdlbox hidden\">"

;

2396

bMultipleDeflines =

true

;

2401

firstGi = alnDispParams->gi;

2413  out

<< alnDispParams->id_url;

2417

!alnDispParams->seqID->IsGi()){

2418  out

<<

"gi|"

<<alnDispParams->gi<<

"|"

;

2420  if

(!(alnDispParams->seqID->AsFastaString().find(

"gnl|BL_ORD_ID"

) != string::npos) ||

2421

alnDispParams->seqID->AsFastaString().find(

"lcl|Subject_"

) != string::npos){

2422  if

(

strncmp

(alnDispParams->seqID->AsFastaString().c_str(),

"lcl|"

, 4) == 0) {

2423  out

<< alnDispParams->label;

2428

alnDispParams->gi >

ZERO_GI

)) {

2430

alnDispParams->seqID->WriteAsFasta(

out

);

2434

*alnDispParams->seqID);

2442  if

(alnDispParams->gi !=

ZERO_GI

){

2443  out

<<

"<a name="

<<alnDispParams->gi<<

"></a>"

;

2446  out

<<

"<a name="

<<alnDispParams->seqID->GetSeqIdString(

true

)<<

"></a>"

;

2447

aln_vec_info->id_label = alnDispParams->label;

2452  out

<< alnDispParams->linkoutStr;

2453  if

(!alnDispParams->dumpGnlUrl.empty()) {

2455  out

<<alnDispParams->dumpGnlUrl;

2460  if

(

out

.tellp() > 1L) {

2463  if

(!alnDispParams->title.empty()) {

2466

HTMLEncode(alnDispParams->title) :

2467

alnDispParams->title);

2480  return

formattedString;

2486  bool

color_mismatch,

2490  _ASSERT

((

int

)sequence.size() > start);

2491

list<CRange<int> > actualSeqloc;

2492  string

actualSeq = sequence.substr(start,

len

);

2498  int

from=(*iter)->aln_range.GetFrom();

2499  int

to=(*iter)->aln_range.GetTo();

2500  int

locFrame = (*iter)->seqloc->GetFrame();

2501  if

(

id

.Match((*iter)->seqloc->GetInterval().GetId())

2502

&& locFrame == frame){

2503  bool

isFirstChar =

true

;

2506  for

(

int i

=max<int>(from, start);

2507

i<=min<int>(to, start+

len

-1);

i

++){

2510

isFirstChar =

false

;

2511

eachSeqloc.

Set

(

i

, eachSeqloc.

GetTo

());

2514  if

(

isalpha

((

unsigned char

) actualSeq[

i

-start])){

2515

actualSeq[

i

-start]=

'X'

;

2518

actualSeq[

i

-start]=

'n'

;

2520

actualSeq[

i

-start]=

tolower

((

unsigned char

) actualSeq[

i

-start]);

2524

&&

i

== min<int>(to, start+

len

)){

2528  if

(!(eachSeqloc.

GetFrom

()==0&&eachSeqloc.

GetTo

()==0)){

2529

actualSeqloc.push_back(eachSeqloc);

2535  if

(actualSeqloc.empty()){

2545  bool

endTag =

false

;

2546  bool

frontTag =

false

;

2549  for

(

int i

= 0;

i

< (

int

)actualSeq.size();

i

++){

2550  bool

startStyledOutput =

false

,stopStyledOutput =

false

;

2551  for

(list<

CRange<int>

>::iterator iter=actualSeqloc.begin();

2552

iter!=actualSeqloc.end(); iter++){

2553  int

from = (*iter).GetFrom() - start;

2554  int

to = (*iter).GetTo() - start;

2559  if

(to ==

i

&& to > 0){

2563

startStyledOutput = frontTag;

2564

stopStyledOutput = endTag && frontTag;

2566  if

(!isStyled)

out

<<actualSeq[

i

];

2567  if

(endTag && frontTag){

2588

=

m_AV

->GetAlnChunks(

row

,

m_AV

->GetSeqAlnRange(antirow));

2589  for

(

int i

=0;

i

<chunk_vec->size();

i

++) {

2591  if

(chunk->IsGap()) {

2592

gap += (chunk->GetAlnRange().GetTo()

2593

- chunk->GetAlnRange().GetFrom() + 1);

2602

=

m_AV

->GetAlnChunks(

row

,

m_AV

->GetSeqAlnRange(0));

2603  for

(

int i

=0;

i

<chunk_vec->size();

i

++) {

2605  if

(chunk->IsGap()) {

2606

gap += (chunk->GetAlnRange().GetTo()

2607

- chunk->GetAlnRange().GetFrom() + 1);

2616  int

custom_genetic_code,

2619  int row

,

string

& sequence,

2621

list<ENa_strand>& feat_seq_strand,

2622  bool

fill_feat_range )

const 2627  TGi

gi_temp =

FindGi

(

m_AV

->GetBioseqHandle(

row

).GetBioseqCore()->GetId());

2635

GetRangeSeq_loc(

min

(seq_start, seq_stop),

2636  max

(seq_start, seq_stop));

2640  for

(

CFeat_CI

feat(scope, *loc_ref, sel); feat; ++feat) {

2641  const CSeq_loc

& loc = feat->GetLocation();

2642  bool

has_id =

false

;

2643

list<CSeq_loc_CI::TRange> isolated_range;

2645  bool

first_loc =

true

, mixed_strand =

false

, mix_loc =

false

;

2647  TSeqPos

other_seqloc_length = 0;

2652  const CSeq_id

& id_it = loc_it.GetSeq_id();

2654

isolated_range.push_back(loc_it.GetRange());

2656

feat_seq_range = loc_it.GetRange();

2658

feat_seq_range += loc_it.GetRange();

2661  if

(loc_it.IsSetStrand()){

2662

feat_strand = loc_it.GetStrand();

2671  if

(!first_loc && prev_strand != feat_strand){

2672

mixed_strand =

true

;

2675

prev_strand = feat_strand;

2680

other_seqloc_length += loc_it.GetRange().GetLength();

2686  if

(!has_id || mixed_strand){

2692  char

feat_char =

' '

;

2696  TSeqPos

actual_feat_seq_start = 0, actual_feat_seq_stop = 0;

2704  if

(

m_AV

->IsPositiveStrand(

row

)){

2705

actual_feat_seq_start =

2707

actual_feat_seq_stop =

2708  min

(feat_seq_range.

GetTo

(), seq_stop);

2711

actual_feat_seq_start =

2712  min

(feat_seq_range.

GetTo

(), seq_start);

2713

actual_feat_seq_stop =

2716  int

genetic_code = -1;

2719  m_AV

->GetAlnPosFromSeqPos(

row

, actual_feat_seq_start);

2721  m_AV

->GetAlnPosFromSeqPos(

row

, actual_feat_seq_stop);

2728  string

raw_cdr_product =

2730

isolated_range, handle, feat_strand,

2731

featId, other_seqloc_length%3 == 0 ?

2732

0 : 3 - other_seqloc_length%3,

2734  if

(feat->IsSetData() && feat->GetData().IsCdregion() && feat->GetData().GetCdregion().IsSetCode()) {

2735

genetic_code = feat->GetData().GetCdregion().GetCode().GetId();

2747  string

line(aln_stop+1,

' '

);

2749  for

(

TSeqPos i

= feat_aln_from;

i

<= feat_aln_to;

i

++){

2755  ITERATE

(list<CSeq_loc_CI::TRange>, iter, isolated_range){

2756

total_coding_len += iter->GetLength();

2763  char

gap_char =

m_AV

->GetGapChar(

row

);

2764  string

concat_exon =

2769

other_seqloc_length%3 == 0 ?

2770

0 : 3 - other_seqloc_length%3);

2775  if

(fill_feat_range) {

2776

list<CRange<TSeqPos> > master_feat_range;

2779

feat, isolated_range,

2781

other_seqloc_length%3 == 0 ?

2783

3 - other_seqloc_length%3);

2784  if

(!(master_feat_range.empty())) {

2785

feat_range_list.push_back(master_feat_range);

2786

feat_seq_strand.push_back(master_strand);

2791  TSeqPos

feat_aln_start_totalexon = 0;

2792  TSeqPos

prev_feat_aln_start_totalexon = 0;

2793  TSeqPos

prev_feat_seq_stop = 0;

2795  bool

is_first =

true

;

2796  bool

is_first_exon_start =

true

;

2806

isolated_range.reverse();

2809  ITERATE

(list<CSeq_loc_CI::TRange>, iter, isolated_range){

2814

intron_size += iter->GetFrom()

2815

- prev_feat_seq_stop - 1;

2819

IntersectionWith(*iter);

2820  if

(!actual_feat_seq_range.

Empty

()){

2825  if

(

m_AV

->IsPositiveStrand(

row

)){

2831

=

m_AV

->GetAlnPosFromSeqPos

2832

(

row

, actual_feat_seq_range.

GetTo

());

2837

(

row

, actual_feat_seq_range.

GetTo

());

2839

=

m_AV

->GetAlnPosFromSeqPos

2845  i

<= feat_aln_stop;

i

++){

2846  if

(sequence[

i

] != gap_char){

2853

=

m_AV

->GetSeqPosFromAlnPos(

row

,

i

) -

2854

intron_size - feat_seq_range.

GetFrom

();

2855  if

(product_adj_seq_pos <

2856

concat_exon.size()){

2860

concat_exon[product_adj_seq_pos];

2864  if

(

m_AV

->IsPositiveStrand(

row

)){

2866  if

(is_first_exon_start &&

2867  isalpha

((

unsigned char

) line[

i

])){

2869

feat_aln_start_totalexon =

2871

- product_adj_seq_pos + 1;

2872

is_first_exon_start =

false

;

2875

feat_aln_start_totalexon =

2876

product_adj_seq_pos;

2877

is_first_exon_start =

false

;

2883  if

(is_first_exon_start &&

2884  isalpha

((

unsigned char

) line[

i

])){

2885

feat_aln_start_totalexon =

2887

- product_adj_seq_pos + 1;

2888

is_first_exon_start =

false

;

2889

prev_feat_aln_start_totalexon =

2890

feat_aln_start_totalexon;

2892  if

(!is_first_exon_start){

2897

feat_aln_start_totalexon =

2899

- product_adj_seq_pos + 1),

2900

prev_feat_aln_start_totalexon);

2901

prev_feat_aln_start_totalexon =

2902

feat_aln_start_totalexon;

2905

feat_aln_start_totalexon =

2906  max

(prev_feat_aln_start_totalexon,

2907

product_adj_seq_pos);

2909

prev_feat_aln_start_totalexon =

2910

feat_aln_start_totalexon;

2921

prev_feat_seq_stop = iter->GetTo();

2924

alternativeFeatStr = line;

2926

feat_aln_start_totalexon,

2927  m_AV

->IsPositiveStrand(

row

) ?

2929

feat_strand, featInfo->feature_start);

2935

feat_aln_from, feat_aln_to, aln_stop,

2936

feat_char, featId, alternativeFeatStr, genetic_code);

2937

feature.push_back(featInfo);

2947  int

aln_to,

int

aln_stop,

2948  char

pattern_char,

string

pattern_id,

2949  string

& alternative_feat_str,

2950  int

genetic_code)

const 2953

feat->seqloc = &seqloc;

2954

feat->feature_char = pattern_char;

2955

feat->feature_id = pattern_id;

2958

feat_info->feature_string = alternative_feat_str;

2961  string

line(aln_stop+1,

' '

);

2962  for

(

int

j = aln_from; j <= aln_to; j++){

2963

line[j] = feat->feature_char;

2965

feat_info->feature_string = line;

2967

feat_info->genetic_code = genetic_code;

2968

feat_info->aln_range.Set(aln_from, aln_to);

2969

feat_info->feature = feat;

2979 static int x_AddBar

(

string

& seq,

int

insert_alnpos,

int

aln_start){

2980  int

end = (

int

)seq.size() -1 ;

2981  int

barPos = insert_alnpos - aln_start + 1;

2983  if

(barPos - end > 1){

2984  string

spacer(barPos - end - 1,

' '

);

2985

addOn += spacer +

"|"

;

2986

}

else if

(barPos - end == 1){

2990  return

max<int>((barPos - end), 0);

3002 static int s_AdjustInsert

(

string

& cur_insert,

string

& new_insert,

3003  int

insert_alnpos,

int

aln_start)

3006  int

curInsertSize = (

int

)cur_insert.size();

3007  int

insertLeftSpace = insert_alnpos - aln_start - curInsertSize + 2;

3009  if

(curInsertSize > 0){

3010  _ASSERT

(insertLeftSpace >= 2);

3012  int

newInsertSize = (

int

)new_insert.size();

3013  if

(insertLeftSpace - newInsertSize >= 1){

3015  string

spacer(insertLeftSpace - newInsertSize,

' '

);

3016

cur_insert += spacer + new_insert;

3019  if

(curInsertSize > 0){

3020

cur_insert +=

" "

+ new_insert;

3022

cur_insert += new_insert;

3025

insertEnd = aln_start + (

int

)cur_insert.size() -1 ;

3033

list<string>& inserts)

const

{

3034  if

(!insert_list.empty()){

3035  string

bar(aln_range.

GetLength

(),

' '

);

3039  bool

isFirstInsert =

true

;

3040  int

curInsertAlnStart = 0;

3041  int

prvsInsertAlnEnd = 0;

3046

curInsertAlnStart = (*iter)->aln_start;

3048  if

(isFirstInsert || curInsertAlnStart - prvsInsertAlnEnd >= 1){

3049

bar[curInsertAlnStart-aln_start+1] =

'|'

;

3050  int

seqStart = (*iter)->seq_start;

3051  int

seqEnd = seqStart + (*iter)->insert_len - 1;

3053

newInsert =

m_AV

->GetSeqString(newInsert,

row

, seqStart,

3056

curInsertAlnStart, aln_start);

3057

isFirstInsert =

false

;

3059

bar[curInsertAlnStart-aln_start+1] =

'|'

;

3061

prvsInsertAlnEnd +=

x_AddBar

(seq, curInsertAlnStart, aln_start);

3064

leftOverInsertList.push_back(*iter);

3069

inserts.push_back(bar);

3070

inserts.push_back(seq);

3072  x_DoFills

(

row

, aln_range, aln_start, leftOverInsertList, inserts);

3079  int

aln_start, list<string>& inserts,

3080  string

& insert_pos_string,

3084  string

line(aln_range.

GetLength

(),

' '

);

3087  int

from = (*iter)->aln_start;

3088

line[from - aln_start + 1] =

'\\'

;

3090

insert_pos_string = line;

3094  x_DoFills

(

row

, aln_range, aln_start, insert_list, inserts);

3105  while

(!insert_aln_start.empty()

3106

&& (

int

)insert_aln_start.front() < line_aln_stop){

3108

insert->aln_start = insert_aln_start.front() - 1;

3110

insert->seq_start = insert_seq_start.front();

3111

insert->insert_len = insert_length.front();

3112

insert_list.push_back(insert);

3113

insert_aln_start.pop_front();

3114

insert_seq_start.pop_front();

3115

insert_length.pop_front();

3128  string

idString =

m_AV

->GetSeqId(1).GetSeqIdString();

3131

segs = iter->second.segs;

3169  if

(seg.

GetStd

().size() > 1){

3174  if

((*iterStdseg)->IsSetScores()){

3175

aln->

SetScore

() = (*iterStdseg)->GetScores();

3177

aln->

SetSegs

().SetStd().push_back(*iterStdseg);

3178

alnSetRef->

Set

().push_back(aln);

3182

alnSetRef->

Set

().push_back(*iter);

3191  if

((*iterDendiag)->IsSetScores()){

3192

aln->

SetScore

() = (*iterDendiag)->GetScores();

3194

aln->

SetSegs

().SetDendiag().push_back(*iterDendiag);

3195  if

((*iter)->IsSetType() && (*iter)->CanGetType()){

3196

aln->

SetType

((*iter)->GetType());

3199

alnSetRef->

Set

().push_back(aln);

3203

alnSetRef->

Set

().push_back(*iter);

3207

alnSetRef->

Set

().push_back(*iter);

3225  if

((*iterStdseg)->IsSetScores()){

3226

aln->

SetScore

() = (*iterStdseg)->GetScores();

3228

aln->

SetSegs

().SetStd().push_back(*iterStdseg);

3229

alnSetRef->

Set

().push_back(aln);

3235  if

((*iterDendiag)->IsSetScores()){

3236

aln->

SetScore

() = (*iterDendiag)->GetScores();

3238

aln->

SetSegs

().SetDendiag().push_back(*iterDendiag);

3239

alnSetRef->

Set

().push_back(aln);

3243

alnSetRef->

Set

().push_back(*iter);

3257  bool

first_align =

true

;

3262  if

((*iterStdseg)->IsSetScores()){

3263

aln->

SetScore

() = (*iterStdseg)->GetScores();

3266

first_align =

false

;

3267

std::vector< CRef< CScore > >& scores_in = (*iter)->SetScore();

3269  if

((*it_in)->IsSetId()) {

3271  bool

found =

false

;

3272

std::vector< CRef< CScore > >& scores_out = aln->

SetScore

();

3274  if

((*it_out)->IsSetId()) {

3275  if

(score_id.

Match

((*it_out)->GetId())) {

3281

scores_out.push_back (*it_in);

3287

aln->

SetSegs

().SetStd().push_back(*iterStdseg);

3288

alnSetRef->

Set

().push_back(aln);

3293  if

((*iterDendiag)->IsSetScores()){

3294

aln->

SetScore

() = (*iterDendiag)->GetScores();

3296

first_align =

false

;

3297

std::vector< CRef< CScore > >& scores_in = (*iter)->SetScore();

3299  if

((*it_in)->IsSetId()) {

3301  bool

found =

false

;

3302

std::vector< CRef< CScore > >& scores_out = aln->

SetScore

();

3304  if

((*it_out)->IsSetId()) {

3305  if

(score_id.

Match

((*it_out)->GetId())) {

3311

scores_out.push_back (*it_in);

3317

aln->

SetSegs

().SetDendiag().push_back(*iterDendiag);

3318

alnSetRef->

Set

().push_back(aln);

3322

alnSetRef->

Set

().push_back(*iter);

3335

(

new char

[strGeneLinkUrl.size() + 1024]);

3336

sprintf(

buf

.get(), strGeneLinkUrl.c_str(),

3341

strGeneLinkUrl.assign(

buf

.get());

3342  return

strGeneLinkUrl;

3356  out

<<

"Sort alignments for this subject sequence by:\n"

;

3363  out

<<

"<a href=\"Blast.cgi?CMD=Get&"

<< query_buf

3366

<<

"#"

<< id_label <<

"\">"

;

3377  out

<<

"<a href=\"Blast.cgi?CMD=Get&"

<< query_buf

3380

<<

"#"

<< id_label <<

"\">"

;

3391  out

<<

"<a href=\"Blast.cgi?CMD=Get&"

<< query_buf

3394

<<

"#"

<< id_label <<

"\">"

;

3396  out

<<

"Percent identity"

;

3403  out

<<

"<a href=\"Blast.cgi?CMD=Get&"

<< query_buf

3406

<<

"#"

<< id_label <<

"\">"

;

3408  out

<<

"Query start position"

;

3415  out

<<

"<a href=\"Blast.cgi?CMD=Get&"

<< query_buf

3418

<<

"#"

<< id_label <<

"\">"

;

3420  out

<<

"Subject start position"

;

3436  for

(

int i

= 0;

i

< 5;

i

++) {

3437  if

(hsp_sort ==

i

) {

3460  out

<< url_link <<

"\n"

;

3470

(type_temp.find(

"genome"

) != string::npos ||

3471

type_temp ==

"mapview"

||

3472

type_temp ==

"mapview_prev"

||

3473

type_temp ==

"gsfasta"

|| type_temp ==

"gsfasta_prev"

)){

3476  int

master_start =

m_AV

->GetSeqStart(0) + 1;

3477  int

master_stop =

m_AV

->GetSeqStop(0) + 1;

3478  int

subject_start =

m_AV

->GetSeqStart(1) + 1;

3479  int

subject_stop =

m_AV

->GetSeqStop(1) + 1;

3483

sprintf(

buffer

,

"<a name = %s_%d_%d_%d_%d_%d></a>"

,

3484

subj_id_str.c_str(), aln_vec_info->score,

3485  min

(master_start, master_stop),

3486  max

(master_start, master_stop),

3487  min

(subject_start, subject_stop),

3488  max

(subject_start, subject_stop));

3496  string

evalue_buf, bit_score_buf, total_bit_buf, raw_score_buf;

3498

aln_vec_info->bits, 0, 0, evalue_buf,

3499

bit_score_buf, total_bit_buf, raw_score_buf);

3506  string

hidePrevNaviagtion,hideNextNaviagtion, hideFirstNavigation;

3508

hidePrevNaviagtion =

"disabled=\"disabled\""

;

3509

hideFirstNavigation =

"hidden"

;

3512

hideNextNaviagtion =

"disabled=\"disabled\""

;

3540  if

(aln_vec_info->sum_n > 0) {

3550  if

(aln_vec_info->comp_adj_method == 1){

3554  else if

(aln_vec_info->comp_adj_method == 2){

3572  string

evalue_buf, bit_score_buf, total_bit_buf, raw_score_buf;

3574

aln_vec_info->

bits

, 0, 0, evalue_buf,

3575

bit_score_buf, total_bit_buf, raw_score_buf);

3581  out

<<

" NW Score = "

<< aln_vec_info->

score

;

3589  out

<<

" Score = "

<<aln_vec_info->

score

<<

"\n"

;

3592  out

<<

" Score = "

<<bit_score_buf<<

" "

;

3593  out

<<

"bits ("

<<aln_vec_info->

score

<<

"),"

<<

" "

;

3595  if

(aln_vec_info->

sum_n

> 0) {

3596  out

<<

"("

<< aln_vec_info->

sum_n

<<

")"

;

3598  out

<<

" = "

<< evalue_buf;

3600  out

<<

", Method: Composition-based stats."

;

3602  out

<<

", Method: Compositional matrix adjust."

;

3616  bool

showSortControls =

false

;

3633

showSortControls =

true

;

3661  if

(!(alnDispParams->seqID->AsFastaString().find(

"gnl|BL_ORD_ID"

) != string::npos) ||

3662

alnDispParams->seqID->AsFastaString().find(

"lcl|Subject_"

) != string::npos){

3664

seqid = alnDispParams->seqID->AsFastaString();

3685  string

hspNum,isFirstDflAttr;

3692

isFirstDflAttr =

"hidden"

;

3697  string

alnIdLbl = (alnDispParams->gi !=

ZERO_GI

) ?

3700  string

linkoutStr, dnldLinkStr;

3702

linkoutStr = (!alnDispParams->linkoutStr.empty()) ? alnDispParams->linkoutStr :

""

;

3703

dnldLinkStr = alnDispParams->dumpGnlUrl;

3715  string

firstDefline;

3717

list<string>& use_this_seqid = aln_vec_info->use_this_seqid;

3721  bool

isFirst =

true

;

3732  string

alnDefLine =

x_MapDefLine

(alnDispParams,isFirst,

false

,

false

,seqLength);

3741

*alnDispParams->

seqID

);

3746  delete

alnDispParams;

3747

firstDefline = alnDefLine;

3753

iter = bdl.begin(); iter != bdl.end();){

3757  if

(alnDispParams) {

3759  bool

hideDefline = (numBdl > 1)?

true

:

false

;

3774

alnDispParams->

seqID

= dispId;

3784

alnDispParams->

seqID

->AsFastaString();

3789

*alnDispParams->

seqID

);

3794 

vector <string> parts;

3796  if

(parts.size() > 0) {

3805  if

( (isFirst && firstGi ==

ZERO_GI

) || (alnDispParams->

gi

== firstGi && firstGi !=

ZERO_GI

) ) {

3812

firstDefline = alnDefLine;

3815

deflines += alnDefLine;

3825  delete

alnDispParams;

3831

deflines = firstDefline;

3841

deflines = firstDefline + alnTitleslnk + alnTitles;

3853  string

deflines, linkOutStr,customLinkStr;

3854

list<string> linkoutStr;

3862

customLinkStr += *iter_custList;

3867

linkOutStr += *iter_List;

3894  string

isGenbankAttr = (

NStr::Find

(customLinkStr,

"GenBank"

) ==

NPOS

&&

NStr::Find

(customLinkStr,

"GenPept"

) ==

NPOS

)?

"hidden"

:

""

;

3897  string

hideDndl = (

m_BlastType

==

"sra"

)?

"hidden"

:

""

;

3932  if

(sortOneAln.empty()) {

3986  bool

showSortControls)

3998  if

(aln_vec_info->

feat_list

.size() > 0 || aln_vec_info->

feat5

|| aln_vec_info->

feat3

){

4011

(

int

)

m_AV

->GetAlnStop(),

4014

aln_vec_info->

match

,

4015

aln_vec_info->

gap

,

4016  m_AV

->StrandSign(0),

4017  m_AV

->StrandSign(1),

4034  int

addToRange = (

int

)((to - from) * 0.05);

4035  int

fromAdjust =

max

(0,(

int

)from - addToRange);

4036  int

toAdjust = to + addToRange;

4037  string

customLinkStr;

4043

hspLinks += singleLink;

4048  string

multiHSP = (hspLinks.empty()) ?

"hidden"

:

""

;

4088

alignInfo += alignRows;

4096

aln_vec_info->feat5 =

NULL

;

4097

aln_vec_info->feat3 =

NULL

;

4098

aln_vec_info->feat_list.clear();

4101

&& (

int

)

m_AV

->GetBioseqHandle(1).GetBioseqLength()

4105

aln_vec_info->actual_range = range;

4114

aln_vec_info->feat_list =

m_DynamicFeature

->GetFeatInfo(id_str, aln_vec_info->actual_range, aln_vec_info->feat5, aln_vec_info->feat3, 2);

4148  string

(

m_IsDbNa

?

"nucleotide"

:

"protein"

),

4158  return

alignFeature;

4165  string

alignParams = alignInfo;

4171  string

allAlnFeatures =

""

;

4172  if

(aln_vec_info->feat_list.size() > 0) {

4173  ITERATE

(vector<SFeatInfo*>, iter, aln_vec_info->feat_list){

4176

aln_vec_info->subject_gi,

4177

(*iter)->range.GetFrom(),

4178

(*iter)->range.GetTo(),

4183

allAlnFeatures += alignFeature;

4186  if

(aln_vec_info->feat5 || aln_vec_info->feat3){

4190  if

(aln_vec_info->feat5){

4192

aln_vec_info->subject_gi,

4193

aln_vec_info->feat5->range.GetFrom(),

4194

aln_vec_info->feat5->range.GetTo(),

4195  NStr::IntToString

(aln_vec_info->actual_range.GetFrom() - aln_vec_info->feat5->range.GetTo()) + (

string

)

" bp at 5' side: "

+ aln_vec_info->feat5->feat_str);

4196

allAlnFeatures += alignFeature;

4198  if

(aln_vec_info->feat3){

4201

aln_vec_info->subject_gi,

4202

aln_vec_info->feat3->range.GetFrom(),

4203

aln_vec_info->feat3->range.GetTo(),

4204  NStr::IntToString

(aln_vec_info->feat3->range.GetFrom() - aln_vec_info->actual_range.GetTo()) + (

string

)

" bp at 3' side: "

+ aln_vec_info->feat3->feat_str);

4205

allAlnFeatures += alignFeature;

4208  if

(!allAlnFeatures.empty()) {

4223  if

(aln_vec_info->feat_list.size() > 0) {

4224  out

<<

" Features in this part of subject sequence:"

<<

"\n"

;

4225  ITERATE

(vector<SFeatInfo*>, iter, aln_vec_info->feat_list){

4230  m_IsDbNa

?

"nucleotide"

:

"protein"

,

4231

(*iter)->range.GetFrom() +1 ,

4232

(*iter)->range.GetTo() + 1,

4236  out

<< (*iter)->feat_str;

4243  if

(aln_vec_info->feat5 || aln_vec_info->feat3){

4244  out

<<

" Features flanking this part of subject sequence:"

<<

"\n"

;

4246  if

(aln_vec_info->feat5){

4251  m_IsDbNa

?

"nucleotide"

:

"protein"

,

4252

aln_vec_info->feat5->range.GetFrom() + 1 ,

4253

aln_vec_info->feat5->range.GetTo() + 1,

4258  out

<< aln_vec_info->actual_range.GetFrom() - aln_vec_info->feat5->range.GetTo()

4259

<<

" bp at 5' side: "

<< aln_vec_info->feat5->feat_str;

4265  if

(aln_vec_info->feat3){

4270  m_IsDbNa

?

"nucleotide"

:

"protein"

,

4271

aln_vec_info->feat3->range.GetFrom() + 1 ,

4272

aln_vec_info->feat3->range.GetTo() + 1,

4277  out

<< aln_vec_info->feat3->range.GetFrom() - aln_vec_info->actual_range.GetTo()

4278

<<

" bp at 3' side: "

<< aln_vec_info->feat3->feat_str;

4285  if

(aln_vec_info->feat_list.size() > 0 || aln_vec_info->feat5 || aln_vec_info->feat3 ){

4300  bool

has_valid_loc =

false

;

4301  for

(

int i

=0;

i

<

m_AV

->GetNumRows();

i

++){

4305  m_AV

->GetSeqRange(

i

).IntersectingWith(loc_range)){

4306  int

actualAlnStart = 0, actualAlnStop = 0;

4307  if

(

m_AV

->IsPositiveStrand(

i

)){

4309  m_AV

->GetAlnPosFromSeqPos(

i

,

4313  m_AV

->GetAlnPosFromSeqPos(

i

,

4318  m_AV

->GetAlnPosFromSeqPos(

i

,

4322  m_AV

->GetAlnPosFromSeqPos(

i

,

4326

alnloc->aln_range.Set(actualAlnStart, actualAlnStop);

4327

has_valid_loc =

true

;

4331  if

(has_valid_loc) {

4332

alnloc->seqloc = *iter;

4333

loc_list.push_back(alnloc);

4341

vector<TSAlnFeatureInfoList>& retval)

4345

retval.resize(row_num);

4348  for

(list<FeatureInfo*>::iterator iter=

m_QueryFeature

->begin();

4350  for

(

int i

= 0;

i

< row_num;

i

++){

4351  if

((*iter)->seqloc->GetInt().GetId().Match(

m_AV

->GetSeqId(

i

))){

4352  int

actualSeqStart = 0, actualSeqStop = 0;

4353  if

(

m_AV

->IsPositiveStrand(

i

)){

4354  if

((*iter)->seqloc->GetInt().GetFrom()

4355

<

m_AV

->GetSeqStart(

i

)){

4356

actualSeqStart =

m_AV

->GetSeqStart(

i

);

4358

actualSeqStart = (*iter)->seqloc->GetInt().GetFrom();

4361  if

((*iter)->seqloc->GetInt().GetTo() >

4362  m_AV

->GetSeqStop(

i

)){

4363

actualSeqStop =

m_AV

->GetSeqStop(

i

);

4365

actualSeqStop = (*iter)->seqloc->GetInt().GetTo();

4368  if

((*iter)->seqloc->GetInt().GetFrom()

4369

<

m_AV

->GetSeqStart(

i

)){

4370

actualSeqStart = (*iter)->seqloc->GetInt().GetFrom();

4372

actualSeqStart =

m_AV

->GetSeqStart(

i

);

4375  if

((*iter)->seqloc->GetInt().GetTo() >

4376  m_AV

->GetSeqStop(

i

)){

4377

actualSeqStop = (*iter)->seqloc->GetInt().GetTo();

4379

actualSeqStop =

m_AV

->GetSeqStop(

i

);

4382  int

alnFrom =

m_AV

->GetAlnPosFromSeqPos(

i

, actualSeqStart);

4383  int

alnTo =

m_AV

->GetAlnPosFromSeqPos(

i

, actualSeqStop);

4387  if

(alnTo - alnFrom >= 0){

4389

alnTo, aln_stop, (*iter)->feature_char,

4390

(*iter)->feature_id, tempFeat, -1);

4391

retval[

i

].push_back(featInfo);

4399 static void s_MakeDomainString

(

int

aln_from,

int

aln_to,

const string

& domain_name,

4400  string

& final_domain) {

4402  string

domain_string(aln_to - aln_from + 1,

' '

);

4404  if

(domain_string.size() > 2){

4406  for

(

int i

= 0;

i

< (

int

)domain_string.size();

i

++){

4407

domain_string[

i

] =

'-'

;

4409

domain_string[0] =

'<'

;

4410

domain_string[domain_string.size()-1] =

'>'

;

4412  int

midpoint = ((

int

)domain_string.size())/2;

4413  int

first_possible_pos = 1;

4414  int

actual_first_pos =

max

(first_possible_pos, midpoint - ((

int

)domain_name.size())/2);

4416  for

(

SIZE_TYPE i

= actual_first_pos, j = 0;

i

< domain_string.size() - 1 && j < domain_name.size();

i

++, j ++){

4417

domain_string[

i

] = domain_name[j];

4421  for

(

SIZE_TYPE i

= 0;

i

< domain_string.size();

i

++){

4422

final_domain[

i

+ aln_from] = domain_string[

i

];

4427

vector<TSAlnFeatureInfoList>& retval)

const 4431  string

final_domain (

m_AV

->GetAlnStop() + 1,

' '

);

4432  int

last_aln_to =

m_AV

->GetAlnStop();

4435  if

((*iter)->seqloc->GetInt().GetId().Match(

m_AV

->GetSeqId(0))){

4436  int

actualSeqStart = 0, actualSeqStop = 0;

4437  if

(

m_AV

->IsPositiveStrand(0)){

4438

actualSeqStart =

max

((

int

)

m_AV

->GetSeqStart(0),

4439

(

int

)(*iter)->seqloc->GetInt().GetFrom());

4441

actualSeqStop =

min

((

int

)

m_AV

->GetSeqStop(0),

4442

(

int

)(*iter)->seqloc->GetInt().GetTo());

4444  int

alnFrom =

m_AV

->GetAlnPosFromSeqPos(0, actualSeqStart);

4446  if

(actualSeqStart > 0 && (*iter)->is_subject_start_valid) {

4448  m_AV

->GetAlnPosFromSeqPos(0, actualSeqStart - 1) > 1) {

4450  int

subj_aln_from =

m_AV

->GetAlnPosFromSeqPos(1,

4451

(

int

)(*iter)->subject_seqloc->GetInt().GetFrom());

4452  if

(subj_aln_from >= 0) {

4453

alnFrom = subj_aln_from;

4458  int

alnTo =

m_AV

->GetAlnPosFromSeqPos(0, actualSeqStop);

4460  if

(actualSeqStop < (

int

)

m_AV

->GetSeqStop(0) &&

4461

(*iter)->is_subject_stop_valid) {

4462  if

(

m_AV

->GetAlnPosFromSeqPos(0, actualSeqStop + 1) - alnTo > 1) {

4464  int

subj_aln_to =

m_AV

->GetAlnPosFromSeqPos(1,

4465

(

int

)(*iter)->subject_seqloc->GetInt().GetTo());

4466  if

(subj_aln_to >= 0) {

4467

alnTo = subj_aln_to;

4471  int

actual_aln_from =

min

(alnFrom,last_aln_to +1);

4472  if

(actual_aln_from > alnTo) {

4478

last_aln_to = alnTo;

4488

aln_stop, aln_stop,

' '

,

4489  " "

, final_domain, -1);

4490

retval[0].push_back(featInfo);

4496  static string kQuery

(

"Query"

);

4497  static string kSubject

(

"Sbjct"

);

4499 #ifdef CTOOLKIT_COMPATIBLE 4501  static bool

value_set =

false

;

4503  if

(getenv(

"CTOOLKIT_COMPATIBLE"

)) {

4522

gi =

m_AV

->GetSeqId(

row

).GetGi();

4547

gi =

m_AV

->GetSeqId(

row

).GetGi();

4580

(toolUrl.find(

"dumpgnl.cgi"

) != string::npos

4586  string

idString, prevIdString,prevIdStringWithVersion,idStringWithVersion;

4587  for

(CSeq_align_set::Tdata::const_iterator

4588

iter = actual_aln_list.

Get

().begin();

4589

iter != actual_aln_list.

Get

().end()

4593

subid = &((*iter)->GetSeq_id(1));

4597  if

(!prevIdString.empty() && !prevIdStringWithVersion.empty() && prevIdString == idString && prevIdStringWithVersion != idStringWithVersion) {

4601

prevIdStringWithVersion = idStringWithVersion;

4602

prevIdString = idString;

4615  struct

SAlnLinksParams *alnLinksParam =

first

?

new

SAlnLinksParams : &

m_AlnLinksParams

[idString];

4620

alnLinksParam->segs +=

","

;

4635  TSeqPos

currFrom = alnLinksParam->subjRange->GetFrom();

4636  TSeqPos

currTo = alnLinksParam->subjRange->GetTo();

4637

alnLinksParam->subjRange->SetFrom(

min

(from,currFrom));

4638

alnLinksParam->subjRange->SetTo(

max

(to,currTo));

4643

alnLinksParam->hspNumber = (!

first

) ? alnLinksParam->hspNumber + 1 : 1;

4665  string

idString, prevIdString;

4666  for

(CSeq_align_set::Tdata::const_iterator

4667

iter = currSeqAlignIter;

4668

iter != actual_aln_list.

Get

().end();iter++) {

4670

subid = &((*iter)->GetSeq_id(1));

4672  if

(prevIdString.empty() || prevIdString == idString) {

4678

prevIdString = idString;

4686

unordered_set <string> :: const_iterator idsIter;

4692  if

(actual_aln_list.

Get

().empty()){

4703  bool

showBlastDefline =

false

;

4704  for

(CSeq_align_set::Tdata::const_iterator

4705

iter = actual_aln_list.

Get

().begin();

4706

iter != actual_aln_list.

Get

().end();iter++) {

4708

subid = &((*iter)->GetSeq_id(1));

4719

idsIter = selectedIDs.find(currID);

4722  if

(idsIter == selectedIDs.end() && idCount < (

int

)selectedIDs.size())

continue

;

4723  if

(idsIter == selectedIDs.end() && idCount >= (

int

)selectedIDs.size())

break

;

4726  if

(previousId.

Empty

() ||

4727

!subid->

Match

(*previousId)){

4734

showBlastDefline =

true

;

4738

showBlastDefline =

false

;

4741  if

(!previousId.

Empty

() &&

4742

!subid->

Match

(*previousId)){

4743  m_Scope

.RemoveFromHistory(

m_Scope

.GetBioseqHandle(*previousId));

4749  if

(!(avRef.

Empty

())){

4766

alnvecInfo->use_this_seqid,

4767

alnvecInfo->comp_adj_method);

4769

alnvecInfo->alnvec = avRef;

4774  out

<<

"Sequence with id " 4776

<<

" no longer exists in database...alignment skipped\n"

;

4784 

static CRef< CScope > m_Scope

User-defined methods of the data storage class.

User-defined methods of the data storage class.

@ eExtreme_Biological

5' and 3'

User-defined methods of the data storage class.

Sequence alignment display tool.

const int k_NumAsciiChar

Number of ASCII characters for populating matrix columns.

bool GetSeqData(ParserPtr pp, const DataBlk &entry, CBioseq &bioseq, Int4 nodetype, unsigned char *seqconv, Uint1 seq_data_type)

#define BLAST_DEFAULT_MATRIX

Default matrix name: BLOSUM62.

static string GetIDUrl(SSeqURLInfo *seqUrlInfo, const objects::CSeq_id &id, objects::CScope &scope)

Create URL for seqid.

static void GetAsciiProteinMatrix(const char *matrix_name, CNcbiMatrix< int > &retval)

Retrieve a scoring matrix for the provided matrix name.

static list< string > GetFullLinkoutUrl(const list< CRef< objects::CBlast_def_line > > &bdl, const string &rid, const string &cdd_rid, const string &entrez_term, bool is_na, bool structure_linkout_as_group, bool for_alignment, int cur_align, string &linkoutOrder, TTaxId taxid, string &database, int query_number, string &user_url, string &preComputedResID, ILinkoutDB *linkoutdb, const string &mv_build_name)

Get linkout membership for for the list of blast deflines.

static void GetAlnScores(const objects::CSeq_align &aln, int &score, double &bits, double &evalue, int &sum_n, int &num_ident, list< TGi > &use_this_gi)

Extract score info from blast alingment.

static void BuildFormatQueryString(CCgiContext &ctx, string &cgi_query)

static void GetScoreString(double evalue, double bit_score, double total_bit_score, int raw_score, string &evalue_str, string &bit_score_str, string &total_bit_score_str, string &raw_score_str)

format evalue and bit_score

static string GetBareId(const objects::CSeq_id &id)

Get sequence id with no database source (bare accession)

static CAlignFormatUtil::DbType GetDbType(const objects::CSeq_align_set &actual_aln_list, objects::CScope &scope)

Set the database as gi type.

static string BuildUserUrl(const objects::CBioseq::TId &ids, TTaxId taxid, string user_url, string database, bool db_is_na, string rid, int query_number, bool for_alignment)

return the custom url (such as mapview)

static string MapTemplate(string inpString, string tmplParamName, Int8 templParamVal)

Replace template tags by real data.

static string GetURLFromRegistry(const string url_name, int index=-1)

retrieve URL from .ncbirc file combining host/port and format strings values.

static bool MatchSeqInSeqList(TGi cur_gi, CRef< objects::CSeq_id > &seqID, list< string > &use_this_seq, bool *isGiList=NULL)

Matches text seqID or gi with the list of seqIds or gis.

static int GetSeqLinkoutInfo(objects::CBioseq::TId &cur_id, ILinkoutDB **linkoutdb, const string &mv_build_name, TGi gi=INVALID_GI)

static CRef< objects::CSeq_id > GetDisplayIds(const objects::CBioseq_Handle &handle, const objects::CSeq_id &aln_id, list< TGi > &use_this_gi, TGi &gi, TTaxId &taxid)

Scan the the list of blast deflines and find seqID to be use in display.

static list< string > GetLinkoutUrl(int linkout, const objects::CBioseq::TId &ids, const string &rid, const string &cdd_rid, const string &entrez_term, bool is_na, TGi first_gi, bool structure_linkout_as_group, bool for_alignment, int cur_align, string preComputedResID)

Get the list of urls for linkouts.

static CRef< objects::CSeq_align > CreateDensegFromDendiag(const objects::CSeq_align &aln)

Create denseseg representation for densediag seqalign.

static list< string > GetCustomLinksList(SSeqURLInfo *seqUrlInfo, const objects::CSeq_id &id, objects::CScope &scope, int customLinkTypes=eLinkTypeDefault)

Create the list of string links for seqid that go.

static string GetURLDefault(const string url_name, int index=-1)

settings are not complete.

static string GetFASTALinkURL(SSeqURLInfo *seqUrlInfo, const objects::CSeq_id &id, objects::CScope &scope)

Create URL showing aligned regions info.

static bool GetTextSeqID(const list< CRef< objects::CSeq_id > > &ids, string *textSeqID=NULL)

static int GetPercentMatch(int numerator, int denominator)

function for calculating percent match for an alignment.

static list< string > GetSeqLinksList(SSeqURLInfo *seqUrlInfo, bool hspRange=false)

static void ExtractSeqalignSetFromDiscSegs(objects::CSeq_align_set &target, const objects::CSeq_align_set &source)

If a Seq-align-set contains Seq-aligns with discontinuous type segments, extract the underlying Seq-a...

static string MapTagToConstString(const string tag_name, EMapConstString flag=eMapToURL)

static TTaxId GetTaxidForSeqid(const objects::CSeq_id &id, objects::CScope &scope)

return the tax id for a seqid

static void AddSpace(CNcbiOstream &out, size_t number)

Add the specified white space.

static string GetAlignedRegionsURL(SSeqURLInfo *seqUrlInfo, const objects::CSeq_id &id, objects::CScope &scope)

Create URL to FASTA info.

static TGi GetGiForSeqIdList(const list< CRef< objects::CSeq_id > > &ids)

return gi from id list

static string GetFullIDLink(SSeqURLInfo *seqUrlInfo, const objects::CBioseq::TId *ids)

static string GetLabel(CConstRef< objects::CSeq_id > id, bool with_version=false)

Return a label for an ID Tries to recreate behavior of GetLabel before a change that prepends "ti|" t...

static string MapTagToHTML(const string tag_name)

list< TSeqPos > TSeqPosList

TSignedSeqPos GetAlnPosFromSeqPos(TNumrow row, TSeqPos seq_pos, ESearchDirection dir=eNone, bool try_reverse_dir=true) const

const CSeq_id & GetSeqId(TNumrow row) const

bool IsPositiveStrand(TNumrow row) const

TSignedSeqPos GetSeqPosFromAlnPos(TNumrow for_row, TSeqPos aln_pos, ESearchDirection dir=eNone, bool try_reverse_dir=true) const

bool IsNegativeStrand(TNumrow row) const

TRange GetSeqRange(TNumrow row) const

TSeqPos GetSeqStop(TNumrow row) const

int StrandSign(TNumrow row) const

TSeqPos GetSeqStart(TNumrow row) const

const CBioseq_Handle & GetBioseqHandle(TNumrow row) const

void SetAaCoding(TCoding coding)

CSeqVector::TResidue TResidue

void SetGenCode(int gen_code, TNumrow row=-1)

Class for computing sequences' titles ("definitions").

void Reverse(void)

Reverse the segments' orientation.

bool IsSetWidths(void) const

void Assign(const CSerialObject &obj, ESerialRecursionMode how=eRecursive)

overloaded Assign()

const TWidths & GetWidths(void) const

void x_FillSeqid(string &id, int row) const

make the appropriate seqid

@ eShowSequencePropertyLabel

@ eTranslateNucToNucAlignment

@ eShowInfoOnMouseOverSeqid

@ eShowTranslationForLocalSeq

@ eShowAlignStatsForMultiAlignView

void x_DisplayAlnvec(CNcbiOstream &out)

Display the current alnvec.

void x_DisplayAlignInfo(CNcbiOstream &out, SAlnInfo *aln_vec_info)

Display score,bits,expect,method.

list< string > m_HSPLinksList

void x_GetDomainInfo(int row_num, int aln_stop, vector< TSAlnFeatureInfoList > &retval) const

static CRef< objects::CSeq_align_set > PrepareBlastUngappedSeqalignEx(const objects::CSeq_align_set &alnset)

static functions same as PrepareBlastUngappedSeqalign, but process seg scores uniformly even if there...

string x_FormatOneDynamicFeature(string viewerURL, TGi subjectGi, int fromRange, int toRange, string featText)

list< CRef< DomainInfo > > * m_DomainInfo

void x_DisplaySequenceIDForPairwise(SAlnRowInfo *alnRoInfo, int row, bool has_mismatch, CNcbiOstrstream &out)

objects::CGetFeature * m_DynamicFeature

list< FeatureInfo * > * m_QueryFeature

external feature such as phiblast

CNcbiIfstream * m_ConfigFile

string m_CurrAlnID_Lbl

gi(if exists) that is used for html formatting otherwise id without db part

int m_currAlignHsp

Current HSP number for single alignmnet.

string x_GetDumpgnlLink(const list< CRef< objects::CSeq_id > > &ids) const

get dumpgnl url to sequence record

SeqLocColorOption m_SeqLocColor

ILinkoutDB * m_LinkoutDB

Reference to LinkoutDB implementation. Not owned by this class.

virtual string x_DisplayRowData(SAlnRowInfo *alnRoInfo)

Display pairwise alignment.

void x_FillIdentityInfo(const string &sequence_standard, const string &sequence, int &match, int &positive, string &middle_line)

compute number of identical and positive residues and set middle line accordingly

string x_PrintDefLine(const objects::CBioseq_Handle &bsp_handle, SAlnInfo *aln_vec_info)

print defline

void x_DisplaySequenceLine(SAlnRowInfo *alnRoInfo, int row, int prev_stop, CNcbiOstrstream &out)

TSubjectMaskMap m_SubjectMasks

Map of subject masks.

void x_DisplayAlignSortInfo(CNcbiOstream &out, string id_label)

Display Sorting controls.

void x_ShowAlnvecInfoTemplate(CNcbiOstream &out, SAlnInfo *aln_vec_info, bool show_defline)

list< string > m_CustomLinksList

void x_ProcessRowDataSet(SAlnRowInfo *alnRoInfo, int aln_start, vector< int > &prev_stop)

string x_MapDefLine(SAlnDispParams *alnDispParams, bool isFisrt, bool linkout, bool hideDefline, int seqLength)

void x_DoFills(int row, objects::CAlnMap::TSignedRange &aln_range, int aln_start, TSInsertInformationList &insert_list, list< string > &inserts) const

recusively fill the insert for anchored view

void x_PreProcessSeqAlign(objects::CSeq_align_set &actual_aln_list)

Sets m_Segs,m_HspNumber.

string x_FormatDefLinesHeader(const objects::CBioseq_Handle &bsp_handle, SAlnInfo *aln_vec_info)

int x_GetLinkout(const objects::CSeq_id &id)

string m_CurrAlnID_DbLbl

gi(if exists) that is used for html formatting otherwise id with db part like ti:xxxxxxx or GNOMON:XX...

void x_InitAlignLinks(SAlnDispParams *alnDispParams, const list< CRef< objects::CBlast_def_line > > &bdl_list, int lnkDispPrarms)

void x_DisplayInsertsForQueryAnchored(SAlnRowInfo *alnRoInfo, int row, CNcbiOstrstream &out)

int m_ResultPositionIndex

result position index for multiple query case

map< string, struct SAlnLinksParams > m_AlnLinksParams

void DisplaySeqalign(CNcbiOstream &out)

call this to display seqalign

void x_SetFeatureInfo(CRef< SAlnFeatureInfo > feat_info, const objects::CSeq_loc &seqloc, int aln_from, int aln_to, int aln_stop, char pattern_char, string pattern_id, string &alternative_feat_str, int genetic_code) const

set feature info

CRef< objects::CObjectManager > m_FeatObj

SeqLocCharOption m_SeqLocChar

string x_GetGeneLinkUrl(int gene_id)

get the URL of the Gene info link.

void x_ShowAlnvecInfo(CNcbiOstream &out, SAlnInfo *aln_vec_info, bool show_defline)

bool m_UseLongSeqIds

print long sequence ids (with gi and accession with database source)

void x_DisplaySingleAlignParams(CNcbiOstream &out, SAlnInfo *aln_vec_info, bool showSortControls)

Display Sorting controls,score,bits,expect,method,features identities,positives,frames etc.

string x_FormatDynamicFeaturesInfo(string alignInfo, SAlnInfo *aln_vec_info)

string x_FormatAlnHSPLinks(string &alignInfo)

objects::CScope & m_Scope

string x_GetSegs(int row) const

segments starts and stops used for map viewer, etc

AutoPtr< const vector< string > > m_SeqPropertyLabel

void x_GetInserts(TSInsertInformationList &insert_list, objects::CAlnMap::TSeqPosList &insert_aln_start, objects::CAlnMap::TSeqPosList &insert_seq_start, objects::CAlnMap::TSeqPosList &insert_length, int line_aln_stop)

get insert information

CRef< objects::CAlnVec > x_GetAlnVecForSeqalign(const objects::CSeq_align &align)

string x_FormatSingleAlign(SAlnInfo *aln_vec_info)

void x_PrepareDynamicFeatureInfo(SAlnInfo *aln_vec_info)

Calculate data for feature display.

list< CRef< SAlnSeqlocInfo > > TSAlnSeqlocInfoList

List of SAlnSeqlocInfo structures.

string m_MapViewerBuildName

mapviewer build name associated with the sequences in the BLAST database out of which the results are...

CAlignFormatUtil::SLinkoutInfo m_LinkoutInfo

int m_cur_align

Gene info reader object, reads Gene info entries from files.

void x_AddTranslationForLocalSeq(vector< TSAlnFeatureInfoList > &retval, vector< string > &sequence) const

void x_DisplayMpvAnchor(CNcbiOstream &out, SAlnInfo *aln_vec_info)

Display anchor for links from mapview.

CDisplaySeqalign(const objects::CSeq_align_set &seqalign, objects::CScope &scope, list< CRef< CSeqLocInfo > > *mask_seqloc=NULL, list< FeatureInfo * > *external_feature=NULL, const char *matrix_name="BLOSUM62")

Constructors.

int m_QueryAnchoredSetIndex

string x_FormatAlignSortInfo()

string x_HTMLSeqIDLink(SAlnRowInfo *alnRoInfo, int row, TGi giToUse)

int x_GetNumGaps()

Count number of total gaps.

void x_DisplayMiddLine(SAlnRowInfo *alnRoInfo, int row, CNcbiOstrstream &out)

string x_PrintDynamicFeatures(void)

void x_DisplayAlnvecInfo(CNcbiOstream &out, SAlnInfo *aln_vec_info, bool show_defline)

display alnvec info

void x_InitAlignParams(objects::CSeq_align_set &actual_aln_list)

Inits align parameters for displaySetup scope for feature fetching and m_DynamicFeature inits m_FeatO...

SAlignTemplates * m_AlignTemplates

string m_AlignedRegionsUrl

void x_GetFeatureInfo(TSAlnFeatureInfoList &feature, int custom_genetic_code, objects::CScope &scope, objects::CSeqFeatData::E_Choice choice, int row, string &sequence, list< list< CRange< TSeqPos > > > &feat_seq_range, list< objects::ENa_strand > &feat_seq_strand, bool fill_feat_range) const

get feature info

string x_FormatAlnBlastInfo(SAlnInfo *aln_vec_info)

string m_PreComputedResID

CDD precomputed results ID.

void x_PrepareIdentityInfo(SAlnInfo *aln_vec_info)

list< CRef< SAlnFeatureInfo > > TSAlnFeatureInfoList

string m_CurrAlnAccession

accession that is displayed

static CRef< objects::CSeq_align_set > PrepareBlastUngappedSeqalign(const objects::CSeq_align_set &alnset)

static functions Need to call this if the seqalign is stdseg or dendiag for ungapped blast alignment ...

CConstRef< objects::CSeq_align_set > m_SeqalignSetRef

reference to seqalign set

string x_FormatIdentityInfo(string alignInfo, SAlnInfo *aln_vec_info)

list< CRef< SInsertInformation > > TSInsertInformationList

void DisplayPairwiseSeqalign(CNcbiOstream &out, unordered_set< string > selectedIDs)

int m_currAlignSeqListIndex

Current subject seq index in descriptions table.

void x_PreProcessSingleAlign(objects::CSeq_align_set::Tdata::const_iterator currSeqAlignIter, objects::CSeq_align_set &actual_aln_list, bool multipleSeqs)

void x_FillLocList(TSAlnSeqlocInfoList &loc_list, const list< CRef< CSeqLocInfo > > *masks) const

convert the passed seqloc list info using alnment coordinates

void x_OutputSeq(string &sequence, const objects::CSeq_id &id, int start, int len, int frame, int row, bool color_mismatch, const TSAlnSeqlocInfoList &loc_list, CNcbiOstream &out) const

display sequence for one row

void x_CalcUrlLinksParams(const objects::CSeq_align &align, string idString, string toolUrl)

string x_DisplayRowDataSet(SAlnRowInfo *alnRoInfo, int aln_start, vector< int > &prev_stop)

void x_FillInserts(int row, objects::CAlnMap::TSignedRange &aln_range, int aln_start, list< string > &inserts, string &insert_pos_string, TSInsertInformationList &insert_list) const

get inserts info

list< string > m_LinkoutList

MiddleLineStyle m_MidLineStyle

TranslatedFrameForLocalSeq m_TranslatedFrameForLocalSeq

void x_DisplaySequenceIDForQueryAnchored(SAlnRowInfo *alnRoInfo, int row, CNcbiOstrstream &out)

void x_PrintFeatures(SAlnRowInfo *alnRoInfo, int row, string &master_feat_str, CNcbiOstream &out)

print out features and fill master_feat_str if applicable

list< CRef< CSeqLocInfo > > * m_Seqloc

display character option for list of seqloc

void x_DisplayBl2SeqLink(CNcbiOstream &out)

Dipslay Bl2seq TBLASTX link.

virtual ~CDisplaySeqalign()

Destructor.

void x_GetQueryFeatureList(int row_num, int aln_stop, vector< TSAlnFeatureInfoList > &features) const

get external query feature info such as phi blast pattern

CRef< objects::CScope > m_featScope

string x_InitDefLinesHeader(const objects::CBioseq_Handle &bsp_handle, SAlnInfo *aln_vec_info)

SAlnDispParams * x_FillAlnDispParams(const CRef< objects::CBlast_def_line > &iter, const objects::CBioseq_Handle &bsp_handle, list< string > &use_this_seqid, TGi firstGi, int numLinkoutReads)

int m_NumBlastDefLines

Number of subject sequence deflines.

CAlignFormatUtil::SSeqURLInfo * x_InitSeqUrl(TGi giToUse, string accession, TTaxId taxid, const list< CRef< objects::CSeq_id > > &ids)

get url to sequence record

void SetSubjectMasks(const TSeqLocInfoVector &masks)

Sets the masks and the masking algorithm used for the subject sequences.

SAlnRowInfo * x_PrepareRowData(void)

Calculate data for pairwise alignment display.

static CRef< objects::CSeq_align_set > PrepareBlastUngappedSeqalignEx2(objects::CSeq_align_set &alnset)

same as PrepareBlastUngappedSeqalign2, but sets aggregate scores.

static string GetLoaderNameFromArgs(CReader *reader=0)

static TRegisterLoaderInfo RegisterInObjectManager(CObjectManager &om, CReader *reader=0, CObjectManager::EIsDefault is_default=CObjectManager::eDefault, CObjectManager::TPriority priority=CObjectManager::kPriority_NotSet)

CNcbiOstrstreamToString class helps convert CNcbiOstrstream to a string Sample usage:

bool Match(const CObject_id &oid2) const

static CRef< CBlast_def_line_set > ExtractBlastDefline(const CBioseq &bioseq)

Extract a Blast-def-line-set object from a Bioseq retrieved by CSeqDB.

CRef< CSeq_align > CreateTranslatedDensegFromNADenseg(void) const

Create a Dense-seg with widths from Dense-seg of nucleotides Used by AlnMgr to handle translated nucl...

CRef< CSeq_align > CreateDensegFromStdseg(SSeqIdChooser *SeqIdChooser=0) const

---------------------------------------------------------------------------- PRE : the Seq-align has ...

namespace ncbi::objects::

Seq-loc iterator class – iterates all intervals from a seq-loc in the correct order.

Template class for iteration on objects of class C (non-medifiable version)

@ eRight

Towards higher aln coord (always to the right)

@ eLeft

Towards lower aln coord (always to the left)

@ eBackwards

Towards lower seq coord (to the left if plus strand, right if minus)

virtual int GetLinkout(TGi gi, const string &mv_build_name)=0

Retrieve the Linkout for a given GI.

Collection of masked regions for a single query sequence.

container_type::const_iterator const_iterator

iterator_bool insert(const value_type &val)

container_type::value_type value_type

string GetSeqIdString(const CSeq_id &id)

std::ofstream out("events_result.xml")

main entry point for tests

const size_t kDfltLineLength

static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)

static const char * str(char *buf, int n)

unsigned int TSeqPos

Type for sequence locations and lengths.

#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.

SStrictId_Tax::TId TTaxId

Taxon id type.

const CCgiEntry & GetRequestValue(const string &name, bool *is_found=0) const

const string & GetValue() const

Get the value as a string, (necessarily) prefetching it all if applicable; the result remains availab...

#define ERR_POST(message)

Error posting with file, line number information but without error codes.

#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 & GetMsg(void) const

Get message string.

virtual const char * what(void) const noexcept

Standard report (includes full backlog).

virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)

Set object to copy of another one.

@ eSerial_AsnText

ASN.1 text.

static string HTMLEncode(const string &str, THTMLEncodeFlags flags=fEncodeAll)

HTML encodes a string. E.g. <.

TGi FindGi(const container &ids)

Return gi from id list if exists, return 0 otherwise.

string GetSeqIdString(bool with_version=false) const

Return seqid string with optional version for text seqid type.

void GetLabel(string *label, ELabelType type=eDefault, TLabelFlags flags=fLabel_Default) const

Append a label for this Seq-id to the supplied string.

bool Match(const CSeq_id &sid2) const

Match() - TRUE if SeqIds are equivalent.

static int WorstRank(const CRef< CSeq_id > &id)

string GetLabel(const CSeq_id &id)

@ eContent

Untagged human-readable accession or the like.

@ eBoth

Type and content, delimited by a vertical bar.

TRange GetTotalRange(void) const

void Add(const CSeq_loc &other)

Simple adding of seq-locs.

void SetPartialStart(bool val, ESeqLocExtremes ext)

set / remove e_Lim fuzz on start or stop (lt/gt - indicating partial interval)

void SetPartialStop(bool val, ESeqLocExtremes ext)

CConstBeginInfo ConstBegin(const C &obj)

Get starting point of non-modifiable object hierarchy.

static CObjectOStream * Open(ESerialDataFormat format, CNcbiOstream &outStream, bool deleteOutStream)

Create serial object writer and attach it to an output stream.

TSeqPos GetStop(const CSeq_loc &loc, CScope *scope, ESeqLocExtremes ext=eExtreme_Positional)

If only one CBioseq is represented by CSeq_loc, returns the position at the stop of the location.

const CSeq_id & GetId(const CSeq_loc &loc, CScope *scope)

If all CSeq_ids embedded in CSeq_loc refer to the same CBioseq, returns the first CSeq_id found,...

ENa_strand GetStrand(const CSeq_loc &loc, CScope *scope=0)

Returns eNa_strand_unknown if multiple Bioseqs in loc Returns eNa_strand_other if multiple strands in...

TSeqPos GetStart(const CSeq_loc &loc, CScope *scope, ESeqLocExtremes ext=eExtreme_Positional)

If only one CBioseq is represented by CSeq_loc, returns the position at the start of the location.

bool IsSameBioseq(const CSeq_id &id1, const CSeq_id &id2, CScope *scope, CScope::EGetBioseqFlag get_flag=CScope::eGetBioseq_All)

Determines if two CSeq_ids represent the same CBioseq.

string GenerateDefline(const CBioseq_Handle &bsh, TUserFlags flags=0)

Main method.

static void Translate(const string &seq, string &prot, const CGenetic_code *code, bool include_stop=true, bool remove_trailing_X=false, bool *alt_start=NULL, bool is_5prime_complete=true, bool is_3prime_complete=true)

Translate a string using a specified genetic code.

@ eGetId_Best

return the "best" gi (uses FindBestScore(), with CSeq_id::CalculateScore() as the score function

static CRef< CObjectManager > GetInstance(void)

Return the existing object manager or create one.

CSeq_entry_Handle AddTopLevelSeqEntry(CSeq_entry &top_entry, TPriority pri=kPriority_Default, EExist action=eExist_Default)

Add seq_entry, default priority is higher than for defaults or loaders Add object to the score with p...

CBioseq_Handle GetBioseqHandle(const CSeq_id &id)

Get bioseq handle by seq-id.

void AddDefaults(TPriority pri=kPriority_Default)

Add default data loaders from object manager.

CConstRef< CBioseq > GetCompleteBioseq(void) const

Get the complete bioseq.

TBioseqCore GetBioseqCore(void) const

Get bioseq core structure.

const CSeqFeatData & GetData(void) const

TSeqPos GetBioseqLength(void) const

bool IsSetProduct(void) const

CScope & GetScope(void) const

Get scope this handle belongs to.

CRef< CSeq_loc > GetRangeSeq_loc(TSeqPos start, TSeqPos stop, ENa_strand strand=eNa_strand_unknown) const

Return CSeq_loc referencing the given range and strand on the bioseq If start == 0,...

@ eCoding_Iupac

Set coding to printable coding (Iupacna or Iupacaa)

SAnnotSelector & SetResolveAll(void)

SetResolveAll() is equivalent to SetResolveMethod(eResolve_All).

SAnnotSelector & SetAdaptiveDepth(bool value=true)

SetAdaptiveDepth() requests to restrict subsegment resolution depending on annotations found on lower...

const CSeq_loc & GetProduct(void) const

bool Empty(void) const THROWS_NONE

Check if CConstRef is empty – not pointing to any object which means having a null value.

void Reset(void)

Reset reference object.

bool Empty(void) const THROWS_NONE

Check if CRef is empty – not pointing to any object, which means having a null value.

position_type GetLength(void) const

bool IntersectingWith(const TThisType &r) const

TThisType & Set(position_type from, position_type to)

virtual const string & Get(const string &section, const string &name, TFlags flags=0) const

Get the parameter 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.

IO_PREFIX::ostream CNcbiOstream

Portable alias for ostream.

IO_PREFIX::ifstream CNcbiIfstream

Portable alias for ifstream.

NCBI_NS_STD::string::size_type SIZE_TYPE

static string SizetToString(size_t value, TNumToStringFlags flags=0, int base=10)

Convert size_t to string.

static string DoubleToString(double value, int precision=-1, TNumToStringFlags flags=0)

Convert double to string.

static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)

Convert string to int.

static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)

Split a string using specified delimiters.

static bool IsBlank(const CTempString str, SIZE_TYPE pos=0)

Check if a string is blank (has no text).

static string IntToString(int value, TNumToStringFlags flags=0, int base=10)

Convert int to string.

static SIZE_TYPE Find(const CTempString str, const CTempString pattern, ECase use_case=eCase, EDirection direction=eForwardSearch, SIZE_TYPE occurrence=0)

Find the pattern in the string.

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.

static string TruncateSpaces(const string &str, ETrunc where=eTrunc_Both)

Truncate whitespace in a string.

static string & ToLower(string &str)

Convert string to lower case – string& version.

C::value_type FindBestChoice(const C &container, F score_func)

Find the best choice (lowest score) for values in a container.

static const char label[]

const Tdata & Get(void) const

Get the member data.

TTo GetTo(void) const

Get the To member data.

TFrom GetFrom(void) const

Get the From member data.

TId & SetId(void)

Select the variant.

const TDenseg & GetDenseg(void) const

Get the variant data.

Tdata & Set(void)

Assign a value to data member.

TScore & SetScore(void)

Assign a value to Score data member.

E_Choice Which(void) const

Which variant is currently selected.

const TLoc & GetLoc(void) const

Get the Loc member data.

list< CRef< CStd_seg > > TStd

void SetSegs(TSegs &value)

Assign a value to Segs data member.

const TIds & GetIds(void) const

Get the Ids member data.

void SetType(TType value)

Assign a value to Type data member.

const TStd & GetStd(void) const

Get the variant data.

const TDendiag & GetDendiag(void) const

Get the variant data.

list< CRef< CSeq_align > > Tdata

list< CRef< CDense_diag > > TDendiag

const Tdata & Get(void) const

Get the member data.

const TSegs & GetSegs(void) const

Get the Segs member data.

void SetLocation(TLocation &value)

Assign a value to Location data member.

void SetComment(const TComment &value)

Assign a value to Comment data member.

Tdata & Set(void)

Assign a value to data member.

E_Choice

Choice variants.

TFrame GetFrame(void) const

Get the Frame member data.

void SetData(TData &value)

Assign a value to Data data member.

const TCdregion & GetCdregion(void) const

Get the variant data.

bool IsSetFrame(void) const

Check if a value has been assigned to Frame data member.

void Select(E_Choice index, EResetVariant reset=eDoResetVariant)

Select the requested variant if needed.

ENa_strand

strand of nucleic acid

const TId & GetId(void) const

Get the Id member data.

const TWhole & GetWhole(void) const

Get the variant data.

TFrom GetFrom(void) const

Get the From member data.

E_Choice Which(void) const

Which variant is currently selected.

TGi GetGi(void) const

Get the variant data.

bool IsLocal(void) const

Check if variant Local is selected.

TTo GetTo(void) const

Get the To member data.

bool IsWhole(void) const

Check if variant Whole is selected.

@ e_Gi

GenInfo Integrated Database.

@ e_not_set

No variant selected.

TSeq & SetSeq(void)

Select the variant.

void SetData(TData &value)

Assign a value to Data data member.

TAnnot & SetAnnot(void)

Assign a value to Annot data member.

const TId & GetId(void) const

Get the Id member data.

list< CRef< CSeq_id > > TId

list< CRef< CSeq_feat > > TFtable

list< CRef< CSeq_annot > > TAnnot

@ e_Ncbieaa

extended ASCII 1 letter aa codes

unsigned int

A callback function used to compare two keys in a database.

HTML library helper classes and functions.

if(yy_accept[yy_current_state])

CMD5 - class for computing Message Digest version 5 checksums.

const TYPE & Get(const CNamedParameterList *param)

const struct ncbi::grid::netcache::search::fields::SIZE size

int strncmp(const char *str1, const char *str2, size_t count)

Defines NCBI C++ exception handling.

Process information in the NCBI Registry, including working with configuration files.

NCBI C++ stream class wrappers for triggering between "new" and "old" C++ stream libraries.

Useful/utility classes and methods.

static int match(PCRE2_SPTR start_eptr, PCRE2_SPTR start_ecode, uint16_t top_bracket, PCRE2_SIZE frame_size, pcre2_match_data *match_data, match_block *mb)

static const string kSubject("subject")

Defines BLAST database access classes.

vector< TMaskedQueryRegions > TSeqLocInfoVector

Collection of masked regions for all queries in a BLAST search.

static const char * k_FrameConversion[k_NumFrame]

static void s_OutputFeature(string &reference_feat_line, string &feat_line, bool color_feat_mismatch, int start, int len, CNcbiOstream &out, bool is_html)

void s_CalculateIdentity(const string &sequence_standard, const string &sequence, char gap_char, int &match, int &align_length)

static const char * k_DefaultSpaceMaintainerTempl

static void s_DisplayIdentityInfo(CNcbiOstream &out, int aln_stop, int identity, int positive, int match, int gap, int master_strand, int slave_strand, int master_frame, int slave_frame, bool aln_is_prot)

show blast identity, positive etc.

static const int k_SeqStopMargin

static const char * k_DefaultAnchorWithPosTempl

static const char * k_DefaultFeaturesTempl

static const int k_NumFrame

static const int k_GetSubseqThreshhold

static const char * color[]

static string s_MapFeatureURL(string viewerURL, string textSeqID, string db, int fromRange, int toRange, string rid)

static CRef< CScope > s_MakeNewMasterSeq(list< list< CRange< TSeqPos > > > &feat_range, list< ENa_strand > &feat_seq_strand, const CBioseq_Handle &handle)

make a new copy of master seq with feature info and return the scope that contains this sequence

static const char k_IntronChar

static int x_AddBar(string &seq, int insert_alnpos, int aln_start)

add a "|" to the current insert for insert on next rows and return the insert end position.

static const char k_IdentityChar

static void s_MakeDomainString(int aln_from, int aln_to, const string &domain_name, string &final_domain)

static string s_GetCdsSequence(int genetic_code, CFeat_CI &feat, CScope &scope, list< CRange< TSeqPos > > &range, const CBioseq_Handle &handle, ENa_strand feat_strand, string &feat_id, TSeqPos frame_adj, bool mix_loc)

return cds coded sequence and fill the id if found

static int s_AdjustInsert(string &cur_insert, string &new_insert, int insert_alnpos, int aln_start)

Add new insert seq to the current insert seq and return the end position of the latest insert.

static const int k_MinDeflinesToShow

static const char * k_DefaultAnchorTempl

static void s_WrapOutputLine(CNcbiOstream &out, const string &str)

wrap line

static const char * k_DefaultCheckboxTempl

static const int k_GetDynamicFeatureSeqLength

static int s_GetFrame(int start, ENa_strand strand, const CSeq_id &id, CScope &sp)

return the frame for a given strand Note that start is zero bases.

static const int k_StartSequenceMargin

static int s_GetStdsegMasterFrame(const CStd_seg &ss, CScope &scope)

reture the frame for master seq in stdseg

static const char * k_DefaultPairwiseWithIdntTempl

static const int k_AlignStatsMargin

static const int k_MaxDeflinesToShow

static void s_ColorDifferentBases(string &seq, char identity_char, CNcbiOstream &out)

To add color to bases other than identityChar.

static void s_MapSlaveFeatureToMaster(list< CRange< TSeqPos > > &master_feat_range, ENa_strand &master_feat_strand, CFeat_CI &feat, list< CSeq_loc_CI::TRange > &slave_feat_range, ENa_strand slave_feat_strand, CAlnVec *av, int row, TSeqPos frame_adj)

map slave feature info to master seq

static const char * k_DefaultCheckboxExTempl

static bool s_ProcessStyledContent(string &seq, int currIndex, bool startStyledOutput, bool stopStyledOutput, string tmpl, string &styledSeqStr, CNcbiOstream &out)

To add style to bases for some conditions.

static const int k_FeatureIdLen

static string s_GetConcatenatedExon(CFeat_CI &feat, ENa_strand feat_strand, list< CRange< TSeqPos > > &range, TSeqPos total_coding_len, string &raw_cdr_product, TSeqPos frame_adj)

return concatenated exon sequence

static void s_FillCdsStartPosition(string &line, string &concat_exon, size_t length_per_line, TSeqPos feat_aln_start_totalexon, ENa_strand seq_strand, ENa_strand feat_strand, list< TSeqPos > &start)

fill the cds start positions (1 based)

static const int k_IdStartMargin

static const int k_SequencePropertyLabelMargin

static string s_GetFinalTranslatedString(const CSeq_loc &loc, CScope &scope, int first_encoding_base, int align_length, const string &translation, const string &sequence, char gap_char)

static const int k_ColorMismatchIdentity

threshhold to color mismatch. 98 means 98%

static const char * k_DefaultMaskSeqLocTempl

#define row(bind, expected)

void Init(string rid_in, string cdd_rid_in, string entrez_term_in, bool is_na_in, string database_in, int query_number_in, string user_url_in, string preComputedResID_in, string linkoutOrder_in, bool structure_linkout_as_group_in=false, bool for_alignment_in=true)

CRange< TSeqPos > subjRange

Structure that holds information needed for creation seqID URL in descriptions and alignments.

CRange< TSeqPos > seqRange

sequence range

string defline

sequence defline

bool useTemplates

bool indicating that templates should be used when contsructing links

string segs

string containing align segments in the the following format seg1Start-seg1End,seg2Start-seg2End

bool advancedView

bool indicating that advanced view design option should be used when contsructing links

string resourcesUrl

URL(s) to other resources from .ncbirc.

structure for store feature display info

string alignRowTmpl

Template for displayin actual pairwise alignment - BLAST_ALIGN_ROWS.

string alnTitlesTmpl

Template for displaying multiple defline titles.

string alignFeatureLinkTmpl

Template for displaying align features link -ALN_FEATURES_LINK.

string alignInfoFrameTmpl

Template for displaying frame data ALIGN_PARAMS_FRAME, part of BLAST_ALIGN_PARAMS.

string alnSeqInfoTmpl

Template for displaying sequnce link in defline.

string alignQueryAnchTempl

Template for displaying one set of query anchored alignment - BLAST_QUERY_ANCH_NAV.

string alnTitlesLinkTmpl

Template for displaying link for more defline titles.

string alignInfoMethodTmpl

Template for displaying frame data ALIGN_PARAMS_METHOD, part of BLAST_ALIGN_PARAMS.

string alignFeatureTmpl

Template for displaying align features -ALN_FEATURES.

string sortInfoTmpl

Template for displaying Sort by header - SORT_ALIGNS_SEQ.

string alnDefLineTmpl

Template for displaying one defline ALN_DEFLINE_ROW.

string alignInfoTmpl

Template for displaying singe align params - BLAST_ALIGN_PARAMS_NUC,BLAST_ALIGN_PARAMS_PROT.

string alignHeaderTmpl

Template for displaying header,deflines and gene info - BLAST_ALIGN_HEADER.

string alignRowTmplLast

Template for displayin actual last pairwise alignment - BLAST_ALIGN_ROWS_LST.

CRef< objects::CSeq_id > seqID

seqID used in defline

CAlignFormatUtil::SSeqURLInfo * seqUrlInfo

list< CRef< objects::CSeq_id > > ids

TGi gi

gi used in defline

string title

sequnce title

store feature information

store alnvec and score info

CRef< objects::CAlnVec > alnvec

vector< objects::SFeatInfo * > feat_list

objects::SFeatInfo * feat5

objects::SFeatInfo * feat3

vector< string > align_stats

vector< objects::CAlnMap::TSignedRange > rowRng

vector< objects::CAlnMap::TSeqPosList > insertLength

bool show_seq_property_label

vector< double > percent_ident

vector< objects::CAlnMap::TSeqPosList > seqStarts

vector< string > seq_property_label

vector< TSAlnSeqlocInfoList > masked_regions

objects::CAlnMap::TSignedRange currRange

vector< objects::CAlnMap::TSeqPosList > insertAlnStart

vector< TSAlnFeatureInfoList > bioseqFeature

vector< objects::CAlnMap::TSeqPosList > insertStart

vector< string > sequence

vector< string > seqidArray

vector< objects::CAlnMap::TSeqPosList > seqStops

int max_seq_property_label

vector< int > align_length

internal insert information aln_start.


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