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

NCBI C++ ToolKit: src/objtools/flatfile/genref.cpp Source File

66 #define THIS_FILE "genref.cpp" 202 const char

*

feat_no_gene

[] = {

"gap"

,

"operon"

,

"source"

,

nullptr

};

258

vector<CConstRef<CSeq_loc>> to_remove;

265

}

else if

(cur_loc->

IsInt

()) {

268

}

else if

(cur_loc->

IsPnt

()) {

271

}

else if

(cur_loc->

IsBond

()) {

280

to_remove.push_back(cur_loc);

283  for

(vector<

CConstRef<CSeq_loc>

>::const_iterator it = to_remove.begin(); it != to_remove.end(); ++it)

287  if

(bond->IsSetB() && !

fta_seqid_same

(bond->GetB().GetId(), acnum,

id

))

299  if

(acnum && *acnum !=

'\0'

&& *acnum !=

' '

)

310

TSynSet::const_iterator it1 = syn1.begin(),

313  for

(; it1 != syn1.end() && it2 != syn2.end(); ++it1, ++it2) {

319  if

(it1 == syn1.end() && it2 == syn2.end())

321  if

(it1 == syn1.end())

323  if

(it2 == syn2.end())

338

syn1.insert(grp1.

GetSyn

().begin(), grp1.

GetSyn

().end());

340

syn2.insert(grp2.

GetSyn

().begin(), grp2.

GetSyn

().end());

372  if

(g1.

locus

.empty() && g2.

locus

.empty()) {

378  if

(g1.

locus

.empty())

380  if

(g2.

locus

.empty())

410

status = slip1->

from

- slip2->

from

;

418

status = slip1->

to

- slip2->

to

;

460  if

(cur_loc->

IsInt

()) {

462  id

= &interval.

GetId

();

465

to = interval.

GetTo

();

474

}

else if

(cur_loc->

IsPnt

()) {

476  id

= &point.

GetId

();

505

slibp->

ids

.push_back(sid);

509  if

(slibp->

from

> from) {

513  if

(slibp->

to

< to) {

531  if

(! gnp ||

first

->to >= second->

from

)

534  auto

glp = gnp->

gl

.cbegin();

535  for

(; glp != gnp->

gl

.cend(); ++glp) {

541  if

(glp->leave != 0 || slp->

strand

!=

first

->strand ||

554  return

glp != gnp->

gl

.cend();

563  for

(

const auto

& clp : cdsl)

564  if

(clp.from > cloc->

to

&& clp.to < to)

576  if

(!

g

.locus.empty()) {

579  if

(!

g

.locus_tag.empty()) {

582  if

(! maploc.empty()) {

586  if

(!

g

.syn.empty()) {

587

gene_ref.

SetSyn

().assign(

g

.syn.begin(),

g

.syn.end());

591  if

(

g

.loc.NotEmpty())

600  if

(!

g

.pseudogene.empty()) {

602

qual->

SetQual

(

"pseudogene"

);

603

qual->

SetVal

(

g

.pseudogene);

605

feat->

SetQual

().push_back(qual);

609  if

(!

g

.wormbase.empty()) {

610  if

(

g

.wormbase.size() > 1)

613  for

(TWormbaseSet::const_iterator it =

g

.wormbase.begin(); it !=

g

.wormbase.end(); ++it) {

619  tag

->SetDb(

"WormBase"

);

620  tag

->SetTag().SetStr(*it);

626  if

(!

g

.olt.empty()) {

627  if

(

g

.olt.size() > 1)

630  for

(TLocusTagSet::const_iterator it =

g

.olt.begin(); it !=

g

.olt.end(); ++it) {

635

qual->

SetQual

(

"old_locus_tag"

);

638

feat->

SetQual

().push_back(qual);

643

feats.push_back(feat);

650  if

(! pId1 && ! pId2) {

654  if

(! pId1 || ! pId2) {

665  if

(

first

.empty() && second.empty())

669  auto

tres = res.before_begin();

670  for

(

auto

mlp = either.cbegin(); mlp != either.cend(); ++mlp) {

671

tres = res.insert_after(tres, *mlp);

673  if

(!

first

.empty() && ! second.empty()) {

674  for

(

auto

mlp = second.cbegin(); mlp != second.cend(); ++mlp) {

676  auto

it = res.begin();

677  for

(; it != res.cend(); ++it) {

679

it->strand != nxt.strand)

682

res.insert_after(it, nxt);

688  auto prev

= res.before_begin();

691  auto

it =

next

(mlp);

692  for

(; it != res.cend(); ++it) {

694

it->strand == ttt->strand)

697  if

(it != res.cend())

700

res.insert_after(

prev

, nxt);

707  for

(

bool

got =

true

; got;) {

709  for

(

auto

tres = res.begin(); tres != res.end(); ++tres) {

712  for

(

auto

mlp =

next

(tres); mlp != res.end(); ++mlp) {

715

tres->strand != mlp->strand)

718  if

(tres->min == mlp->min && tres->max == mlp->max) {

720  if

(tres->noleft ==

false

)

721

tres->noleft = mlp->noleft;

722  if

(tres->noright ==

false

)

723

tres->noright = mlp->noright;

728  if

(

join

==

false

||

729

(tres->min <= mlp->max + 1 && tres->max + 1 >= mlp->min)) {

730  if

(tres->min == mlp->min) {

731  if

(tres->noleft ==

false

)

732

tres->noleft = mlp->noleft;

733

}

else if

(tres->min > mlp->min) {

734

tres->min = mlp->min;

735

tres->noleft = mlp->noleft;

738  if

(tres->max == mlp->max) {

739  if

(tres->noright ==

false

)

740

tres->noright = mlp->noright;

741

}

else if

(tres->max < mlp->max) {

742

tres->max = mlp->max;

743

tres->noright = mlp->noright;

752  for

(

auto prev

= res.before_begin(), tres = res.begin(); tres != res.end();) {

757

tres = res.erase_after(

prev

);

766  if

(

first

.empty() && second.empty())

769  auto

tres = res.before_begin();

770  for

(

auto

mlp =

first

.cbegin(); mlp !=

first

.cend(); ++mlp) {

771

tres = res.insert_after(tres, *mlp);

773  for

(

auto

mlp = second.cbegin(); mlp != second.cend(); ++mlp) {

774

tres = res.insert_after(tres, *mlp);

790

tog.

olt

.insert(fromg.

olt

.begin(), fromg.

olt

.end());

797  if

(tg.

pseudogene

.empty() &&

g

.pseudogene.empty())

800  if

(! tg.

pseudogene

.empty() && !

g

.pseudogene.empty()) {

802  FtaErrPost

(

SEV_ERROR

,

ERR_FEATURE_InconsistentPseudogene

,

"All /pseudogene qualifiers for a given Gene and/or Locus-Tag should be uniform. But pseudogenes \"{}\" vs. \"{}\" exist for the features with Gene Symbol \"{}\" and Locus Tag \"{}\"."

, (

g

.locus.empty()) ?

"NONE"

:

g

.locus, (

g

.locus_tag.empty()) ?

"NONE"

:

g

.locus_tag, tg.

pseudogene

,

g

.pseudogene);

804  g

.pseudogene.clear();

811

}

else if

(

g

.pseudogene.empty()) {

826  min

= (ml.

min

> from) ? from : ml.

min

;

829  auto

gelop = gelocs.begin();

830  for

(; gelop != gelocs.end(); ++gelop) {

831  if

(

min

> gelop->verymax) {

835  if

((gelop->strand > -1 &&

g

.slibp->strand != gelop->strand) ||

836  max

< gelop->verymin)

839  if

(

g

.locus == gelop->gene &&

g

.locus_tag == gelop->locus)

841  auto

it = gelop->ammp.begin();

842  for

(; it != gelop->ammp.end(); ++it) {

846

ammp.pId->GetLabel(&label1, &ver1);

850  if

(max < ammp.min || min > ammp.max || ver1 != ver2)

852  if

(label1 == label2)

855  if

(it != gelop->ammp.end()) {

860  return

gelop != gelocs.end();

866  if

(mll.empty() ||

next

(mll.begin()) == mll.end())

869  auto

tmlp = mll.begin();

871  for

(;

next

(tmlp) != mll.end(); ++tmlp)

872  if

(tmlp->min >

next

(tmlp)->min)

875  for

(;

next

(tmlp) != mll.end(); ++tmlp)

876  if

(tmlp->min <

next

(tmlp)->min)

880  if

(

next

(tmlp) != mll.end())

883  for

(tmlp = mll.begin(); tmlp != mll.end(); ++tmlp) {

902  if

(

g

.feat.Empty() || !

g

.feat->IsSetLocation()) {

904  for

(

auto

pId :

g

.slibp->ids) {

915  auto

& ml =

g

.mlp.emplace_front();

917

ml.min =

g

.slibp->from;

918

ml.max =

g

.slibp->to;

919

ml.strand =

g

.slibp->strand;

920

ml.noleft =

g

.slibp->noleft;

921

ml.noright =

g

.slibp->noright;

926  if

(

g

.leave == 1) {

927  g

.loc.Reset(&

g

.feat->SetLocation());

932  const CSeq_loc

& locs =

g

.feat->GetLocation();

939  if

(cur_loc->

IsInt

()) {

955

}

else if

(cur_loc->

IsPnt

()) {

975  if

(! pId || from < 0 || to < 0) {

979  if

(

g

.mlp.empty()) {

980  auto

& ml =

g

.mlp.emplace_front();

986

ml.noright = noright;

991  for

(

auto

tmlp =

g

.mlp.begin();; ++tmlp) {

993  if

(

s_IdsMatch

(pId, tmlp->pId) && tmlp->strand == strand) {

994  if

(tempcirc ==

false

&& ((tmlp->min <= to && tmlp->max >= from) ||

996  if

(tmlp->min > from) {

998

tmlp->noleft = noleft;

1000  if

(tmlp->max < to) {

1002

tmlp->noright = noright;

1008  if

(

next

(tmlp) !=

g

.mlp.end())

1011

tmlp =

g

.mlp.emplace_after(tmlp);

1018

ml.noright = noright;

1037  if

(ml.

noleft

|| noleft) {

1057

point.

SetFuzz

().SetLim(lim);

1066  if

(

next

(mll.begin()) == mll.end()) {

1067  if

(mll.front().min == mll.front().max)

1077  for

(

auto

mlp = mll.begin(); mlp != mll.end(); ++mlp) {

1080  if

(mlp->min == mlp->max) {

1096  for

(

auto

mlp = second.cbegin(); mlp != second.cend(); ++mlp) {

1099  bool

seen_before =

false

;

1100  for

(

auto

tmlp = second.cbegin(); tmlp != mlp; ++tmlp)

1101  if

(tmlp->pId &&

s_IdsMatch

(tmlp->pId, mlp->pId)) {

1102

seen_before =

true

;

1109  for

(

auto

mlp =

first

.cbegin(); mlp !=

first

.cend(); ++mlp) {

1112  bool

seen_before =

false

;

1113  for

(

auto

tmlp =

first

.cbegin(); tmlp != mlp; ++tmlp)

1114  if

(tmlp->pId &&

s_IdsMatch

(tmlp->pId, mlp->pId)) {

1115

seen_before =

true

;

1121  return

(count2 - count1);

1127  if

(

g

.mlp.empty() ||

next

(

g

.mlp.begin()) ==

g

.mlp.end())

1130  for

(

bool

got =

true

; got;) {

1132  for

(

auto

mlp =

g

.mlp.begin(); mlp !=

g

.mlp.end(); ++mlp) {

1133  if

(mlp->numint == -1)

1135  for

(

auto

tmlp =

next

(mlp); tmlp !=

g

.mlp.end(); ++tmlp) {

1136  if

(tmlp->numint == -1 || mlp->strand != tmlp->strand)

1139  if

(mlp->numint == 0 && tmlp->numint == 0) {

1140  if

((tmlp->min >= mlp->min && tmlp->min <= mlp->max) ||

1141

(tmlp->max >= mlp->min && tmlp->max <= mlp->max) ||

1142

(mlp->min > tmlp->min && mlp->max < tmlp->max)) {

1143  if

(mlp->min == tmlp->min) {

1145

mlp->noleft =

true

;

1146

}

else if

(mlp->min > tmlp->min) {

1147

mlp->min = tmlp->min;

1148

mlp->noleft = tmlp->noleft;

1150  if

(mlp->max == tmlp->max) {

1152

mlp->noright =

true

;

1153

}

else if

(mlp->max < tmlp->max) {

1154

mlp->max = tmlp->max;

1155

mlp->noright = tmlp->noright;

1163  if

(mlp->min != tmlp->min || mlp->max != tmlp->max)

1165  if

(tmlp->numint == 0) {

1167

mlp->noleft =

true

;

1169

mlp->noright =

true

;

1171

}

else if

(mlp->numint == 0) {

1173

tmlp->noleft =

true

;

1175

tmlp->noright =

true

;

1177

}

else if

(tmlp->numint >= mlp->numint) {

1179

mlp->noleft =

true

;

1181

mlp->noright =

true

;

1185

tmlp->noleft =

true

;

1187

tmlp->noright =

true

;

1195  auto

mlpprev =

g

.mlp.before_begin();

1196  for

(

auto

mlp =

g

.mlp.begin(); mlp !=

g

.mlp.end();) {

1197  auto

mlpnext =

next

(mlp);

1198  if

(mlp->numint != -1) {

1204  g

.mlp.erase_after(mlpprev);

1208

mlpprev =

g

.mlp.before_begin();

1209  auto

mlp =

g

.mlp.begin();

1210  for

(; mlp !=

g

.mlp.end(); mlpprev = mlp++)

1211  if

(mlp->numint == 1)

1214  if

(mlp !=

g

.mlp.end() && mlp !=

g

.mlp.begin()) {

1215  g

.mlp.splice_after(

g

.mlp.before_begin(),

g

.mlp, mlpprev,

g

.mlp.end());

1229  if

(mll.empty() ||

next

(mll.begin()) == mll.end())

1232  for

(

auto

mlp = mll.begin(); mlp != mll.end(); ++mlp) {

1233  for

(

auto

tmlp =

next

(mlp); tmlp != mll.end(); ++tmlp) {

1235

mlp->strand != tmlp->strand)

1238  if

(tmlp->min < mlp->min)

1240  if

(tmlp->min == mlp->min) {

1241  if

(tmlp->noleft == mlp->noleft) {

1242  if

(tmlp->max < mlp->max)

1244  if

(tmlp->max == mlp->max) {

1245  if

(tmlp->noright == mlp->noright || mlp->noright)

1248

}

else if

(mlp->noleft)

1252  if

(tmlp->min > mlp->min)

1254  if

(tmlp->min == mlp->min) {

1255  if

(tmlp->noleft == mlp->noleft) {

1256  if

(tmlp->max > mlp->max)

1258  if

(tmlp->max == mlp->max) {

1259  if

(tmlp->noright == mlp->noright || tmlp->noright)

1262

}

else if

(tmlp->noleft)

1268

noleft = mlp->noleft;

1269

noright = mlp->noright;

1270

numint = mlp->numint;

1271

mlp->min = tmlp->min;

1272

mlp->max = tmlp->max;

1273

mlp->noleft = tmlp->noleft;

1274

mlp->noright = tmlp->noright;

1275

mlp->numint = tmlp->numint;

1278

tmlp->noleft = noleft;

1279

tmlp->noright = noright;

1280

tmlp->numint = numint;

1290  for

(

auto

c = gnp->

gl

.cbegin();

next

(c) != gnp->

gl

.cend(); ++c) {

1291  for

(

auto

cn =

next

(c); cn != gnp->

gl

.cend(); ++cn) {

1292  if

(c->feat.NotEmpty() && cn->feat.NotEmpty() &&

1293

c->feat->IsSetData() && c->feat->GetData().IsCdregion() &&

1294

cn->feat->IsSetData() && c->feat->GetData().IsCdregion() &&

1301  bool

circular =

false

;

1303  for

(

auto

c = gnp->

gl

.begin(); c != gnp->

gl

.end(); ++c, j++) {

1311  for

(

auto

c = gnp->

gl

.begin();

next

(c) != gnp->

gl

.end();) {

1314

c->leave != 0 || cn->leave != 0 ||

1315

c->slibp->strand != cn->slibp->strand ||

1327  if

(c->slibp->from > cn->slibp->from) {

1328

c->slibp->from = cn->slibp->from;

1329

c->slibp->noleft = cn->slibp->noleft;

1331  if

(c->slibp->to < cn->slibp->to) {

1332

c->slibp->to = cn->slibp->to;

1333

c->slibp->noright = cn->slibp->noright;

1337  auto

cp = gnp->

gl

.begin();

1338  for

(; cp != gnp->

gl

.end(); ++cp) {

1339  if

(cp->leave == 1 || cp->circular)

1342

cp->slibp->strand != c->slibp->strand)

1344  if

(c->slibp->from <= cp->slibp->to &&

1345

c->slibp->to >= cp->slibp->from)

1348  join

= (cp != gnp->

gl

.end());

1367  if

(! cn->allpseudo)

1368

c->allpseudo =

false

;

1372

c->noleft = c->slibp->noleft;

1373

c->noright = c->slibp->noright;

1374

gnp->

gl

.erase_after(c);

1377  for

(

auto

c = gnp->

gl

.begin(); c != gnp->

gl

.end(); ++c) {

1383  for

(

auto

c = gnp->

gl

.begin(); c != gnp->

gl

.end(); ++c)

1384  if

(c->loc.Empty() && ! c->mlp.empty())

1385

c->loc =

MakeCLoc

(c->mlp, c->noleft, c->noright);

1387  for

(

auto

c = gnp->

gl

.begin(); c != gnp->

gl

.end(); ++c) {

1392  for

(

auto

cn = gnp->

gl

.begin(); cn != gnp->

gl

.end(); ++cn) {

1393  if

(cn->loc.Empty() || loc == cn->loc ||

1394

cn->slibp->strand != c->slibp->strand ||

1402  if

(cn->leave == 1 || c->leave == 0)

1403

c->leave = cn->leave;

1406  if

(! cn->allpseudo)

1407

c->allpseudo =

false

;

1420  auto

cp = gnp->

gl

.before_begin();

1421  for

(

auto

c = gnp->

gl

.begin(); c != gnp->

gl

.end();) {

1423

c = gnp->

gl

.erase_after(cp);

1428  for

(

auto

c = gnp->

gl

.begin(); c != gnp->

gl

.end();) {

1437  for

(cn = c; cn != gnp->

gl

.end(); ++cn) {

1440  if

(cn->maploc.empty())

1443  if

(maploc.empty()) {

1444

maploc = cn->maploc;

1449  for

(cn = c; cn != gnp->

gl

.end(); ++cn) {

1462

new_id->Assign(

id

);

1465  const CTextseq_id

* pTextId = new_id->GetTextseq_Id();

1467  const_cast<CTextseq_id

*

>

(pTextId)->ResetVersion();

1480  if

(

data

.IsRna()) {

1491  if

(

i

&& *

i

!= -1)

1497

}

else if

(

data

.IsImp()) {

1499  if

(

data

.GetImp().IsSetKey()) {

1501  if

(

data

.GetImp().GetKey() == *

b

)

1517  for

(

const auto

& qual : quals) {

1518  if

(! qual->IsSetQual() || ! qual->IsSetVal() ||

1519

qual->GetQual() !=

"gene"

||

1523

syns.insert(qual->GetVal());

1526  for

(

const auto

& qual : quals) {

1527  if

(! qual->IsSetQual() || ! qual->IsSetVal() ||

1528

qual->GetQual() !=

"gene_synonym"

||

1532

syns.insert(qual->GetVal());

1545  if

(

key

==

"CDS"

||

key

==

"rRNA"

||

1546  key

==

"tRNA"

||

key

==

"mRNA"

)

1600  switch

(rna_ref.

GetType

()) {

1602

p =

"precursor_RNA"

;

1653  if

(loc_str.empty())

1656  if

(loc_str.size() > 55) {

1657

loc_str = loc_str.substr(0, 50);

1670

list<AccMinMax> ammps;

1680  if

(cur_loc->

IsInt

()) {

1687

to = interval.

GetTo

();

1690  if

(gelop->

strand

== -2)

1692  else if

(gelop->

strand

!= strand)

1694

}

else if

(cur_loc->

IsPnt

()) {

1704  if

(gelop->

strand

== -2)

1706  else if

(gelop->

strand

!= strand)

1719  bool

found_id =

false

;

1720  auto

it = ammps.begin();

1721  while

(! found_id && it != ammps.end()) {

1724  if

(from < ammp.min) {

1727  if

(to > ammp.max) {

1740

ammps.push_back(ammp);

1753  auto

& geloc = gnp->

gelocs

.emplace_front();

1755

geloc.locus = locus_tag;

1778  for

(

const auto

& dbxref : feat.

SetDbxref

()) {

1779  if

(! dbxref->IsSetTag() || ! dbxref->IsSetDb() ||

1780

dbxref->GetDb() !=

"WormBase"

s ||

1781

! dbxref->GetTag().GetStr().starts_with(

"WBGene"

sv)) {

1782

dbxrefs.push_back(dbxref);

1786  g

.wormbase.insert(dbxref->GetTag().GetStr());

1789  if

(dbxrefs.empty())

1802  for

(TQualVector::iterator qual = feat.

SetQual

().begin(); qual != feat.

SetQual

().end(); ++qual) {

1803  if

(! (*qual)->IsSetQual() || ! (*qual)->IsSetVal() ||

1804

(*qual)->GetQual() !=

"old_locus_tag"

) {

1805

quals.push_back(*qual);

1809  g

.olt.insert((*qual)->GetVal());

1829  for

(

auto

& feat : feats) {

1831  const string

locus_tag =

CpTheQualValue

(feat->GetQual(),

"locus_tag"

);

1833  const CSeq_loc

* cur_loc = feat->IsSetLocation() ? &feat->GetLocation() :

nullptr

;

1834  if

(gene.empty() && locus_tag.empty()) {

1840  const string

pseudogene =

CpTheQualValue

(feat->GetQual(),

"pseudogene"

);

1842  Gene

& newg = gnp->

gl

.emplace_front();

1859  if

(! newg.

slibp

) {

1860

gnp->

gl

.pop_front();

1863  if

(gnp->

simple_genes

==

false

&& feat->IsSetData() &&

1869  if

(feat->IsSetQual()) {

1884

newg.

todel

=

false

;

1888

newg.

pseudo

= feat->IsSetPseudo() ? feat->GetPseudo() :

false

;

1890

newg.

allpseudo

= feat->IsSetPseudo() ? feat->GetPseudo() :

false

;

1901  if

(! gnp->

gelocs

.empty())

1908  for

(

const auto

& feat : feats) {

1912  const CSeq_loc

* cur_loc = feat->IsSetLocation() ? &feat->GetLocation() :

nullptr

;

1918  auto

& newclp = cdsl.emplace_front();

1919

newclp.from = slip->

from

;

1920

newclp.to = slip->

to

;

1935  const CSeq_id

* first_id =

nullptr

;

1936  if

(! bioseq.

GetId

().empty())

1937

first_id = *bioseq.

GetId

().begin();

1949  for

(

auto

& annot : bioseq.

SetAnnot

()) {

1950  if

(! annot->IsFtable())

1955  SrchGene

(annot->SetData().SetFtable(), gene_node, bioseq.

GetLength

(), *

id

);

1958  SrchCDSs

(annot->SetData().SetFtable(), gene_node->

cdsl

, *

id

);

1961  if

(! gene_node->

gl

.empty() && gene_node->

flag

==

false

) {

1964

gene_node->

bioseq

= &bioseq;

1965

gene_node->

flag

=

true

;

1978  auto

glp = gl.cbegin();

1979  while

(glp != gl.cend()) {

1980  if

(glp->locus.empty() && glp->locus_tag.empty())

1983  auto

tglp =

next

(glp);

1984  for

(; tglp != gl.cend(); ++tglp) {

1985  if

(tglp->locus.empty() && tglp->locus_tag.empty())

1989  if

(! got && glp->slibp && tglp->slibp &&

1990

glp->slibp->strand != tglp->slibp->strand)

1994  FtaErrPost

(

SEV_WARNING

,

ERR_GENEREF_BothStrands

,

"Gene name {}\"{}\" has been used for features on both strands."

, (glp->locus.empty()) ?

"with locus_tag "

:

""

, (glp->locus.empty()) ? glp->locus_tag : glp->locus);

2003

TGeneList::iterator glpstart;

2004

TGeneList::iterator glpstop;

2011  if

(gl.empty() ||

next

(gl.begin()) == gl.end())

2016  for

(

auto

glp = gl.begin(); glp != gl.end(); glp =

next

(glpstop)) {

2017  if

(glp->locus.empty() && glp->locus_tag.empty())

2022  for

(

auto

tglp =

next

(glp); tglp != gl.end(); ++tglp) {

2029  for

(

auto

tglp =

next

(glpstop); tglp != gl.end(); ++tglp) {

2030  if

(tglp->locus.empty() && tglp->locus_tag.empty())

2036  if

((same_gn ==

false

&& same_lt ==

false

) || (same_gn && same_lt) ||

2037

same_gn || glpstart->locus_tag.empty())

2040  for

(glp = glpstart;; ++glp) {

2041  FtaErrPost

(

SEV_REJECT

,

ERR_FEATURE_InconsistentLocusTagAndGene

,

"Inconsistent pairs /gene+/locus_tag are encountered: \"{}\"+\"{}\" : {} feature at {} : \"{}\"+\"{}\" : {} feature at {}. Entry dropped."

, (glp->locus.empty()) ?

"(NULL)"

: glp->locus, (glp->locus_tag.empty()) ?

"(NULL)"

: glp->locus_tag, glp->fname, glp->location, (tglp->locus.empty()) ?

"(NULL)"

: tglp->locus, (tglp->locus_tag.empty()) ?

"(NULL)"

: tglp->locus_tag, tglp->fname, tglp->location);

2048  if

(! glpstart->locus.empty() && ! glpstart->locus_tag.empty() &&

2049

glpstart->locus == glpstart->locus_tag) {

2050  for

(glp = glpstart;; ++glp) {

2065  if

(! gnp || gnp->

gl

.empty())

2068  for

(

auto

glp = gnp->

gl

.begin(); glp != gnp->

gl

.end(); ++glp) {

2069  if

(glp->locus_tag.empty() || ! glp->locus.empty() ||

2070

(glp->fname !=

"misc_feature"

))

2073  for

(

auto

tglp = gnp->

gl

.begin(); tglp != gnp->

gl

.end(); ++tglp) {

2074  if

(tglp->fname.empty() ||

2075

(tglp->fname ==

"misc_feature"

)) {

2078  if

(tglp->locus.empty() || tglp->locus[0] ==

'\0'

||

2081

glp->locus = tglp->locus;

2090  if

(! gnp || gnp->

gl

.empty())

2093  for

(

auto

glp = gnp->

gl

.begin(); glp != gnp->

gl

.end(); ++glp) {

2094  if

(glp->todel || ! glp->syn.empty() || (glp->fname !=

"misc_feature"

))

2098  for

(

auto

tglp = gnp->

gl

.begin(); tglp != gnp->

gl

.end(); ++tglp) {

2099  if

(tglp->todel || (tglp->fname ==

"misc_feature"

))

2104  if

(tglp->syn.empty()) {

2115  if

(glp->todel && got)

2116

glp->todel =

false

;

2119  auto

glpprev = gnp->

gl

.before_begin();

2120  for

(

auto

glp = gnp->

gl

.begin(); glp != gnp->

gl

.end();) {

2127

glp = gnp->

gl

.erase_after(glpprev);

2136  for

(TSeqFeatList::const_iterator feat = feats.begin(); feat != feats.end(); ++feat) {

2137  const CGene_ref

& gene_ref1 = (*feat)->GetData().GetGene();

2141

TSeqFeatList::const_iterator feat_next = feat,

2143  for

(++feat_next; feat_next != feats.end(); ++feat_next, ++feat_cur) {

2144  const CGene_ref

& gene_ref2 = (*feat_next)->GetData().GetGene();

2157  string

loc1_str, loc2_str;

2162  if

(diff_lt ==

false

) {

2165  "Multiple instances of the \"{}\" gene encountered: \"{}\"+\"{}\" : gene feature at \"{}\" : \"{}\"+\"{}\" : gene feature at \"{}\". Entry dropped."

,

2177  "Multiple instances of the \"{}\" gene encountered: \"{}\"+\"{}\" : gene feature at \"{}\" : \"{}\"+\"{}\" : gene feature at \"{}\"."

,

2230  for

(

auto

glp = gnp->

gl

.begin(); glp != gnp->

gl

.end(); ++glp) {

2235  if

(! gnp->

gl

.empty()) {

2259  if

(! gnp->

feats

.empty()) {

2262  for

(

auto

& cur_annot : annots) {

2263  if

(! cur_annot->IsFtable())

2266  size_t

advance = cur_annot->GetData().GetFtable().size();

2267

cur_annot->SetData().SetFtable().splice(cur_annot->SetData().SetFtable().end(), gnp->

feats

);

2269

gene_refs.

first

= cur_annot->SetData().SetFtable().begin();

2270

std::advance(gene_refs.

first

, advance);

2271

gene_refs.

last

= cur_annot->SetData().SetFtable().end();

2272

gene_refs.

valid

=

true

;

2276  if

(annots.empty()) {

2278

annot->

SetData

().SetFtable().assign(gnp->

feats

.begin(), gnp->

feats

.end());

2281

gene_refs.

first

= annot->

SetData

().SetFtable().begin();

2282

gene_refs.

last

= annot->

SetData

().SetFtable().end();

2283

gene_refs.

valid

=

true

;

2298  if

(strand1 != strand2) {

2302  const auto

& intv1 = loc1.

GetInt

();

2303  const auto

& intv2 = loc2.

GetInt

();

2304  return

(intv1.GetFrom() >= intv2.GetFrom() && intv1.GetTo() <= intv2.GetTo());

2336

TSeqLocInfoList::const_iterator cur_loc = llocs.begin();

2339  bool

stopped =

false

;

2340  if

(gene_refs.

valid

) {

2341  for

(

auto

cur_feat = gene_refs.

first

; cur_feat != gene_refs.

last

; ++cur_feat) {

2348  if

(gene_ref.

Empty

()) {

2349

gene_ref.

Reset

(&(*cur_feat)->GetData().GetGene());

2365

xref->SetData().SetGene(gerep);

2372  for

(CBioseq::TAnnot::iterator annot = annots.begin(); annot != annots.end();) {

2373  if

(! (*annot)->IsSetData() || ! (*annot)->GetData().IsFtable()) {

2379  for

(TSeqFeatList::iterator feat = feat_table.begin(); feat != feat_table.end();) {

2380  if

((*feat)->IsSetData() && (*feat)->GetData().IsImp()) {

2381  const CImp_feat

& imp = (*feat)->GetData().GetImp();

2382  if

(imp.

GetKey

() ==

"gene"

) {

2383

feat = feat_table.erase(feat);

2388

optional<string> gene, locus_tag;

2389  if

((*feat)->IsSetQual()) {

2393  if

(! gene && ! locus_tag) {

2404

gene_ref->

SetSyn

().assign(syns.begin(), syns.end());

2411

(*feat)->SetXref().push_back(xref);

2414  DeleteQual

((*feat)->SetQual(),

"locus_tag"

);

2415  DeleteQual

((*feat)->SetQual(),

"gene_synonym"

);

2417  if

((*feat)->GetQual().empty())

2418

(*feat)->ResetQual();

2422  if

(feat_table.empty())

2423

annot = annots.erase(annot);

2442  if

(gene_refs.

valid

) {

2443  for

(TSeqFeatList::iterator feat = gene_refs.

first

; feat != gene_refs.

last

; ++feat) {

2445  info

.strand = (*feat)->GetLocation().IsSetStrand() ? (*feat)->GetLocation().GetStrand() :

eNa_strand_unknown

;

2451

llocs.push_back(

info

);

2456  if

(bio_set->IsSetAnnot())

2457  FixAnnot

(bio_set->SetAnnot(), acnum, gene_refs, llocs);

2461  if

(bioseq->IsSetAnnot())

2462  FixAnnot

(bioseq->SetAnnot(), acnum, gene_refs, llocs);

2469  for

(

const auto

& annot : bioseq.

GetAnnot

()) {

2470  if

(! annot->IsFtable())

2473  for

(

const auto

& feat : annot->GetData().GetFtable()) {

2474  for

(

const auto

& qual : feat->GetQual()) {

2475  if

(! qual->IsSetQual() || qual->GetQual() !=

"gene"

||

2476

! qual->IsSetVal() || qual->GetVal().empty())

2479

genes.insert(qual->GetVal());

2491  for

(

auto

& annot : bioseq.

SetAnnot

()) {

2492  if

(! annot->IsFtable())

2495  for

(

auto

& feat : annot->SetData().SetFtable()) {

2497  if

(! feat->IsSetQual())

2500  for

(CSeq_feat::TQual::iterator qual = feat->SetQual().begin(); qual != feat->SetQual().end(); ++qual) {

2501  if

(! (*qual)->IsSetQual() || (*qual)->GetQual() !=

"label"

||

2502

! (*qual)->IsSetVal() || (*qual)->GetVal().empty())

2505  const string

& cur_val = (*qual)->GetVal();

2506

std::set<string>::const_iterator ci = genes.lower_bound(cur_val);

2507  if

(*ci == cur_val) {

2509

new_qual->

SetQual

(

"gene"

);

2510

new_qual->

SetVal

(cur_val);

2512

feat->SetQual().insert(qual, new_qual);

2523

std::set<string> genes;

2528  if

(! genes.empty()) {

2538

gene_refs.

valid

=

false

;

2542  if

(gene_refs.

valid

) {

2543  for

(TSeqFeatList::iterator feat = gene_refs.

first

; feat != gene_refs.

last

; ++feat) {

2544  if

((*feat)->IsSetLocation()) {

2548

(*feat)->SetPartial(

true

);

2550  if

(! pp->

genenull

|| ! (*feat)->GetLocation().IsMix())

2553  CSeq_loc_mix

& mix_loc = (*feat)->SetLocation().SetMix();

2558

CSeq_loc_mix::Tdata::iterator it_loc = mix_loc.

Set

().begin();

2560  for

(; it_loc != mix_loc.

Set

().end(); ++it_loc) {

2561

it_loc = mix_loc.

Set

().insert(it_loc, null_loc);

User-defined methods of the data storage class.

User-defined methods of the data storage class.

TSeqPos GetLength(void) const

@Gb_qual.hpp User-defined methods of the data storage class.

@Imp_feat.hpp User-defined methods of the data storage class.

@RNA_ref.hpp User-defined methods of the data storage class.

namespace ncbi::objects::

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

void AddSeqLoc(const CSeq_loc &other)

Template class for iteration on objects of class C.

#define ERR_FEATURE_InconsistentPseudogene

#define ERR_FEATURE_InconsistentLocusTagAndGene

#define ERR_FEATURE_MultipleOldLocusTags

#define ERR_FEATURE_MultipleWBGeneXrefs

#define ERR_GENEREF_BothStrands

#define ERR_FEATURE_MultipleGenesDifferentLocusTags

#define ERR_GENEREF_NoUniqMaploc

std::list< CRef< objects::CSeq_id > > TSeqIdList

std::list< CRef< objects::CSeq_feat > > TSeqFeatList

bool StringEqu(const char *s1, const char *s2)

#define FtaErrPost(sev, level,...)

static char * join(int argc, char *argv[], const char sep[])

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

static DLIST_TYPE *DLIST_NAME() prev(DLIST_LIST_TYPE *list, DLIST_TYPE *item)

static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)

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

static const char location[]

const char * leave_imp_feat[]

static bool WeDontNeedToJoinThis(const CSeqFeatData &data)

static bool CompareGeneLocsMinMax(const GeneLoc &sp1, const GeneLoc &sp2)

forward_list< MixLoc > TMixLocList

static void GetGeneSyns(const TQualVector &quals, const string &name, TSynSet &syns)

forward_list< Gene > TGeneList

static void ScannGeneName(GeneNodePtr gnp, Int4 seqlen)

static void GeneQuals(CSeq_entry &entry, const char *acnum, GeneRefFeats &gene_refs)

static bool ConfirmCircular(TMixLocList &mll)

static Int4 fta_cmp_gene_syns(const TSynSet &syn1, const TSynSet &syn2)

static void fta_make_seq_int(MixLoc &ml, bool noleft, bool noright, CSeq_interval &interval)

static bool fta_rnas_cds_feat(const CSeq_feat &feat)

const char * feat_no_gene[]

static void fta_append_feat_list(GeneNodePtr gnp, const CSeq_loc *location, const string &gene, const string &locus_tag)

bool GenelocContained(const CSeq_loc &loc1, const CSeq_loc &loc2, CScope *scope)

static void SrchGene(CSeq_annot::C_Data::TFtable &feats, GeneNodePtr gnp, Int4 length, const CSeq_id &id)

static void fta_collect_genes(const CBioseq &bioseq, std::set< string > &genes)

static bool GetFeatNameAndLoc(Gene *glp, const CSeq_feat &feat, GeneNodePtr gnp)

static void CircularSeqLocFormat(Gene &g)

static void GetLocationStr(const CSeq_loc &loc, string &str)

forward_list< Cds > TCdsList

static void FixMixLoc(Gene &g, const TGeneLocList &gelocs)

static void AddGeneFeat(Gene &g, const string &maploc, TSeqFeatList &feats)

static CRef< CSeq_loc > MakeCLoc(TMixLocList &mll, bool noleft, bool noright)

static void SortMixLoc(TMixLocList &mll)

static void fta_fix_labels(CBioseq &bioseq, const std::set< string > &genes)

static void RemoveUnneededMiscFeats(GeneNodePtr gnp)

std::set< string > TWormbaseSet

static bool DoWeHaveCdssInBetween(const Gene &g, Int4 to, const TCdsList &cdsl)

static TMixLocList EasySeqLocMerge(const TMixLocList &first, const TMixLocList &second, bool join)

static Int2 GetMergeOrder(const TMixLocList &first, const TMixLocList &second)

static bool fta_check_feat_overlap(const TGeneLocList &gelocs, Gene &g, const MixLoc &ml, Int4 from, Int4 to)

static void fta_add_olt(Gene &fromg, Gene &tog)

static void CheckGene(CRef< CSeq_entry > entry, ParserPtr pp, GeneRefFeats &gene_refs)

static void fta_seqloc_del_far(CSeq_loc &locs, const Char *acnum, const CSeq_id *id)

static void fta_collect_olts(Gene &g, CSeq_feat &feat)

static void fta_make_seq_pnt(MixLoc &ml, bool noleft, bool noright, CSeq_point &point)

static bool CompareGeneListName(const Gene &g1, const Gene &g2)

static Int4 fta_cmp_gene_refs(const CGene_ref &grp1, const CGene_ref &grp2)

static SeqlocInfoblkPtr GetLowHighFromSeqLoc(const CSeq_loc *origslp, Int4 length, const CSeq_id &orig_id)

static bool fta_seqid_same(const CSeq_id &sid, const Char *acnum, const CSeq_id *id)

static Int4 fta_cmp_locusyn(const Gene &g1, const Gene &g2)

std::set< string > TSynSet

static TMixLocList CircularSeqLocCollect(const TMixLocList &first, const TMixLocList &second)

static void fta_check_pseudogene(Gene &tg, Gene &g)

forward_list< GeneLoc > TGeneLocList

static bool DoWeHaveGeneInBetween(Gene &g, SeqlocInfoblkPtr second, const GeneNode *gnp)

static bool s_IdsMatch(const CRef< CSeq_id > &pId1, const CRef< CSeq_id > &pId2)

static void fta_add_wormbase(Gene &fromg, Gene &tog)

static CRef< CSeq_loc > fta_seqloc_local(const CSeq_loc &orig, const Char *acnum)

static void SrchCDSs(CSeq_annot::C_Data::TFtable &feats, TCdsList &cdsl, const CSeq_id &id)

void DealWithGenes(CRef< CSeq_entry > &pEntry, ParserPtr pp)

static bool GeneLocusCheck(const TSeqFeatList &feats, bool diff_lt)

std::set< string > TLocusTagSet

static void FixAnnot(CBioseq::TAnnot &annots, const char *acnum, GeneRefFeats &gene_refs, TSeqLocInfoList &llocs)

static CRef< CSeq_id > CpSeqIdAcOnly(const CSeq_id &id, bool accver)

static void FindGene(CBioseq &bioseq, GeneNodePtr gene_node)

static void GeneCheckForStrands(const TGeneList &gl)

static bool LocusTagCheck(TGeneList &gl, bool &resort)

static bool IfCDSGeneFeat(const CSeq_feat &feat, Uint1 choice, const char *key)

static list< AccMinMax > fta_get_acc_minmax_strand(const CSeq_loc *location, GeneLoc *gelop)

static void MiscFeatsWithoutGene(GeneNodePtr gnp)

static CRef< CSeqFeatXref > GetXrpForOverlap(const char *acnum, GeneRefFeats &gene_refs, const TSeqLocInfoList &llocs, const CSeq_feat &feat, CGene_ref &gerep)

static void fta_collect_wormbases(Gene &g, CSeq_feat &feat)

list< SeqLocInfo > TSeqLocInfoList

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

Set object to copy of another one.

string GetSeqIdString(bool with_version=false) const

Return seqid string with optional version for text seqid type.

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

Optimized implementation of CSerialObject::Assign, which is not so efficient.

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

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

E_SIC Compare(const CSeq_id &sid2) const

Compare() - more general.

@ e_NO

different SeqId types-can't compare

@ e_YES

SeqIds compared, but are different.

ENa_strand GetStrand(void) const

Get the location's strand.

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

Override Assign() to incorporate cache invalidation.

const_iterator end(void) const

const_iterator begin(void) const

CRef< CSeq_loc > Subtract(const CSeq_loc &other, TOpFlags flags, ISynonymMapper *syn_mapper, ILengthGetter *len_getter) const

Subtract seq-loc from this, merge/sort resulting ranges depending on flags.

bool IsSetStrand(EIsSetStrand flag=eIsSetStrand_Any) const

Check if strand is set for any/all part(s) of the seq-loc depending on the flag.

const CSeq_id * GetId(void) const

Get the id of the location return NULL if has multiple ids or no id at all.

void GetLabel(string *label) const

Appends a label suitable for display (e.g., error messages) label must point to an existing string ob...

void SetNull(void)

Override all setters to incorporate cache invalidation.

@ eEmpty_Allow

ignore empty locations

CBeginInfo Begin(C &obj)

Get starting point of object hierarchy.

int SeqLocPartialCheck(const CSeq_loc &loc, CScope *scope)

sequence::ECompare Compare(const CSeq_loc &loc1, const CSeq_loc &loc2, CScope *scope)

Returns the sequence::ECompare containment relationship between CSeq_locs.

@ fCompareOverlapping

Check if seq-locs are overlapping.

@ eContains

First CSeq_loc contains second.

@ eSame

CSeq_locs contain each other.

@ eContained

First CSeq_loc contained by second.

bool Empty(void) const THROWS_NONE

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

CRef< C > Ref(C *object)

Helper functions to get CRef<> and CConstRef<> objects.

void Reset(void)

Reset reference object.

void Reset(void)

Reset reference object.

bool NotEmpty(void) const THROWS_NONE

Check if CRef is not empty – pointing to an object and has a non-null value.

bool NotEmpty(void) const THROWS_NONE

Check if CConstRef is not empty – pointing to an object and has a non-null value.

uint8_t Uint1

1-byte (8-bit) unsigned integer

int16_t Int2

2-byte (16-bit) signed integer

int32_t Int4

4-byte (32-bit) signed integer

char Char

Alias for char.

#define END_NCBI_SCOPE

End previously defined NCBI scope.

#define BEGIN_NCBI_SCOPE

Define ncbi namespace.

static int CompareNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)

Case-insensitive compare of a substring with another string.

static bool EqualCase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)

Case-sensitive equality of a substring with another string.

static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)

Case-insensitive equality of a substring with another string.

TSyn & SetSyn(void)

Assign a value to Syn data member.

bool IsSetSyn(void) const

synonyms for locus Check if a value has been assigned to Syn data member.

const TSyn & GetSyn(void) const

Get the Syn member data.

bool IsSetLocus_tag(void) const

systematic gene name (e.g., MI0001, ORF0069) Check if a value has been assigned to Locus_tag data mem...

bool IsSetLocus(void) const

Official gene symbol Check if a value has been assigned to Locus data member.

void SetLocus(const TLocus &value)

Assign a value to Locus data member.

void SetLocus_tag(const TLocus_tag &value)

Assign a value to Locus_tag data member.

void SetMaploc(const TMaploc &value)

Assign a value to Maploc data member.

const TLocus_tag & GetLocus_tag(void) const

Get the Locus_tag member data.

const TLocus & GetLocus(void) const

Get the Locus member data.

bool IsLim(void) const

Check if variant Lim is selected.

TLim GetLim(void) const

Get the variant data.

TType GetType(void) const

Get the Type member data.

bool IsSetExt(void) const

generic fields for ncRNA, tmRNA, miscRNA Check if a value has been assigned to Ext data member.

bool IsSetType(void) const

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

const TName & GetName(void) const

Get the variant data.

const TExt & GetExt(void) const

Get the Ext member data.

bool IsName(void) const

Check if variant Name is selected.

void SetQual(const TQual &value)

Assign a value to Qual data member.

const TKey & GetKey(void) const

Get the Key member data.

vector< CRef< CDbtag > > TDbxref

TDbxref & SetDbxref(void)

Assign a value to Dbxref data member.

bool IsSetData(void) const

the specific data Check if a value has been assigned to Data data member.

bool IsSetQual(void) const

qualifiers Check if a value has been assigned to Qual data member.

E_Choice Which(void) const

Which variant is currently selected.

void SetLocation(TLocation &value)

Assign a value to Location data member.

bool IsCdregion(void) const

Check if variant Cdregion is selected.

bool IsImp(void) const

Check if variant Imp is selected.

bool IsSetKey(void) const

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

const TLocation & GetLocation(void) const

Get the Location member data.

bool IsGene(void) const

Check if variant Gene is selected.

const TData & GetData(void) const

Get the Data member data.

void SetData(TData &value)

Assign a value to Data data member.

void SetVal(const TVal &value)

Assign a value to Val data member.

bool IsBiosrc(void) const

Check if variant Biosrc is selected.

void SetPseudo(TPseudo value)

Assign a value to Pseudo data member.

const TRna & GetRna(void) const

Get the variant data.

void ResetDbxref(void)

Reset Dbxref data member.

bool IsSetDbxref(void) const

support for xref to other databases Check if a value has been assigned to Dbxref data member.

TQual & SetQual(void)

Assign a value to Qual data member.

bool IsRna(void) const

Check if variant Rna is selected.

void ResetQual(void)

Reset Qual data member.

const TImp & GetImp(void) const

Get the variant data.

bool IsSetLocation(void) const

feature made from Check if a value has been assigned to Location data member.

void SetTo(TTo value)

Assign a value to To data member.

const TFuzz_from & GetFuzz_from(void) const

Get the Fuzz_from member data.

void SetPoint(TPoint value)

Assign a value to Point data member.

void SetId(TId &value)

Assign a value to Id data member.

bool IsSetId(void) const

WARNING: this used to be optional Check if a value has been assigned to Id data member.

bool IsMix(void) const

Check if variant Mix is selected.

ENa_strand

strand of nucleic acid

const TId & GetId(void) const

Get the Id member data.

bool IsSetPoint(void) const

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

bool IsPacked_pnt(void) const

Check if variant Packed_pnt is selected.

const TPnt & GetPnt(void) const

Get the variant data.

TPoint GetPoint(void) const

Get the Point member data.

const TFuzz_to & GetFuzz_to(void) const

Get the Fuzz_to member data.

bool IsSetA(void) const

connection to a least one residue Check if a value has been assigned to A data member.

void SetId(TId &value)

Assign a value to Id data member.

void SetStrand(TStrand value)

Assign a value to Strand data member.

TFrom GetFrom(void) const

Get the From member data.

void SetFuzz(TFuzz &value)

Assign a value to Fuzz data member.

bool IsSetFuzz(void) const

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

const TFuzz & GetFuzz(void) const

Get the Fuzz member data.

const TId & GetId(void) const

Get the Id member data.

const TId & GetId(void) const

Get the Id member data.

void SetFrom(TFrom value)

Assign a value to From data member.

TStrand GetStrand(void) const

Get the Strand member data.

bool IsBond(void) const

Check if variant Bond is selected.

const TPacked_pnt & GetPacked_pnt(void) const

Get the variant data.

void SetFuzz_to(TFuzz_to &value)

Assign a value to Fuzz_to data member.

void SetFuzz_from(TFuzz_from &value)

Assign a value to Fuzz_from data member.

const TA & GetA(void) const

Get the A member data.

bool IsSetTo(void) const

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

bool IsSetStrand(void) const

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

Tdata & Set(void)

Assign a value to data member.

bool IsSetFuzz_to(void) const

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

bool IsSetStrand(void) const

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

TStrand GetStrand(void) const

Get the Strand member data.

bool IsSetId(void) const

WARNING: this used to be optional Check if a value has been assigned to Id data member.

TTo GetTo(void) const

Get the To member data.

bool IsWhole(void) const

Check if variant Whole is selected.

bool IsSetFrom(void) const

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

bool IsInt(void) const

Check if variant Int is selected.

const TInt & GetInt(void) const

Get the variant data.

bool IsSetVersion(void) const

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

bool IsSetFuzz_from(void) const

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

void SetStrand(TStrand value)

Assign a value to Strand data member.

bool IsPnt(void) const

Check if variant Pnt is selected.

const TBond & GetBond(void) const

Get the variant data.

void SetData(TData &value)

Assign a value to Data data member.

const TInst & GetInst(void) const

Get the Inst member data.

TTopology GetTopology(void) const

Get the Topology member data.

bool IsSetAnnot(void) const

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

TAnnot & SetAnnot(void)

Assign a value to Annot data member.

const TAnnot & GetAnnot(void) const

Get the Annot member data.

const TId & GetId(void) const

Get the Id member data.

list< CRef< CSeq_feat > > TFtable

list< CRef< CSeq_annot > > TAnnot

where boath are integers</td > n< td ></td > n</tr > n< tr > n< td > tse</td > n< td > optional</td > n< td > String</td > n< td class=\"description\"> TSE option controls what blob is orig

if(yy_accept[yy_current_state])

const struct ncbi::grid::netcache::search::fields::KEY key

TSeqFeatList::iterator first

TSeqFeatList::iterator last

vector< IndexblkPtr > entrylist

int g(Seg_Gsm *spe, Seq_Mtf *psm, Thd_Gsm *tdg)

bool DeleteQual(TQualVector &qlist, const Char *qual)

string CpTheQualValue(const TQualVector &qlist, const Char *qual)

void MakeLocStrCompatible(string &str)

optional< string > GetTheQualValue(TQualVector &qlist, const Char *qual)

Int2 MatchArrayString(const char **array, string_view text)

std::vector< CRef< objects::CGb_qual > > TQualVector


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