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

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

65 #define THIS_FILE "fta_src.cpp" 75 #define USE_CULTIVAR 00001 76 #define USE_ISOLATE 00002 77 #define USE_SEROTYPE 00004 78 #define USE_SEROVAR 00010 79 #define USE_SPECIMEN_VOUCHER 00020 80 #define USE_STRAIN 00040 81 #define USE_SUB_SPECIES 00100 82 #define USE_SUB_STRAIN 00200 83 #define USE_VARIETY 00400 84 #define USE_ECOTYPE 01000 87 #define BIOSOURCES_THRESHOLD 20 196  "synthetic construct"

,

197  "artificial sequence"

,

198  "eukaryotic synthetic construct"

,

254  "environmental_sample"

,

331  "restricted access"

,

332  "missing: control sample"

,

333  "missing: sample group"

,

334  "missing: synthetic construct"

,

335  "missing: lab stock"

,

336  "missing: third party data"

,

337  "missing: data agreement established pre-2023"

,

338  "missing: endangered species"

,

339  "missing: human-identifiable"

,

368  auto

tsfbp = sfbl.before_begin();

370  for

(; dbp != dbp_end; ++dbp) {

371  if

(dbp->mType !=

type

)

373  for

(

const auto

& tdbp : dbp->GetSubBlocks()) {

374  const FeatBlk

* fbp = tdbp.GetFeatData();

375  if

(! fbp || fbp->

key

!=

"source"

)

377

tsfbp = sfbl.emplace_after(tsfbp);

380

tsfbp->quals = fbp->

quals

;

392  if

(! line || *line ==

'\0'

)

395  for

(p = line, q = line; *p !=

'\0'

; p++)

396  if

(*p !=

' '

&& *p !=

'\t'

)

404  for

(

auto

sfbp = sfbl.begin(); sfbp != sfbl.end(); ++sfbp) {

406  for

(

auto

& cur : sfbp->quals) {

407  if

(cur->IsSetQual()) {

410  if

(cur->IsSetVal()) {

420  for

(

auto

sfbp = sfbl.begin(); sfbp != sfbl.end(); ++sfbp) {

421  for

(

const auto

& cur : sfbp->quals) {

424  if

(cur->GetQual() == *

b

)

441

namstr.append(

value

);

442

namstr.append(

")"

);

444  mod

->SetSubtype(subtype);

447

mods.push_front(

mod

);

451 static void CollectSubNames

(

SourceFeatBlk

& sfbp,

Int4

use_what,

const Char

* name,

const Char

* cultivar,

const Char

* isolate,

const Char

* serotype,

const Char

* serovar,

const Char

* specimen_voucher,

const Char

* strain,

const Char

* sub_species,

const Char

* sub_strain,

const Char

* variety,

const Char

* ecotype)

494

s.reserve(s.size() +

i

);

522  const Char

* cultivar;

523  const Char

* isolate;

524  const Char

* organelle;

525  const Char

* serotype;

526  const Char

* serovar;

527  const Char

* ecotype;

528  const Char

* specimen_voucher;

530  const Char

* sub_species;

531  const Char

* sub_strain;

532  const Char

* variety;

540  for

(

auto

sfbp = sfbl.begin(); sfbp != sfbl.end(); ++sfbp) {

544

organelle =

nullptr

;

548

specimen_voucher =

nullptr

;

550

sub_species =

nullptr

;

551

sub_strain =

nullptr

;

553

genomename =

nullptr

;

555  for

(

auto

& cur : sfbp->quals) {

556  if

(! cur->IsSetQual())

559  const string

& qual_str = cur->GetQual();

560  char

* val_ptr = cur->IsSetVal() ? cur->SetVal().data() :

nullptr

;

562  if

(qual_str ==

"db_xref"

) {

564  if

(! q || q[1] ==

'\0'

)

573  if

(qual_str ==

"focus"

) {

577  if

(qual_str ==

"transgenic"

) {

581  if

(qual_str ==

"cultivar"

) {

585  if

(qual_str ==

"isolate"

) {

590  if

(qual_str ==

"mol_type"

) {

597  if

(qual_str ==

"organelle"

) {

602  if

(qual_str ==

"serotype"

) {

606  if

(qual_str ==

"serovar"

) {

610  if

(qual_str ==

"ecotype"

) {

614  if

(qual_str ==

"specimen_voucher"

) {

615

specimen_voucher = val_ptr;

618  if

(qual_str ==

"strain"

) {

623  if

(qual_str ==

"sub_species"

) {

624

sub_species = val_ptr;

627  if

(qual_str ==

"sub_strain"

) {

628

sub_strain = val_ptr;

631  if

(qual_str ==

"variety"

) {

635  if

(qual_str ==

"submitter_seqid"

) {

636  if

(sfbp->submitter_seqid) {

637  MemFree

(sfbp->submitter_seqid);

646  if

(qual_str !=

"organism"

||

647

! val_ptr || val_ptr[0] ==

'\0'

)

657

str_to_find.assign(val_ptr, p);

659

str_to_find.assign(val_ptr);

703

sfbp->name = name ?

StringSave

(name) :

nullptr

;

705  if

(sfbp->genomename)

707

sfbp->genomename = genomename;

709  if

(strain && ! sfbp->strain)

711  if

(isolate && ! sfbp->isolate)

713  if

(organelle && ! sfbp->organelle)

716  CollectSubNames

(*sfbp, use_what, name, cultivar, isolate, serotype, serovar, specimen_voucher, strain, sub_species, sub_strain, variety, ecotype);

724  auto

sfbp = sfbl.cbegin();

725  for

(; sfbp != sfbl.cend(); ++sfbp) {

726  if

(sfbp->focus && sfbp->skip)

730  if

(sfbp != sfbl.cend())

731  return

(sfbp->location);

739  auto

sfbp = sfbl.cbegin();

740  for

(; sfbp != sfbl.cend(); ++sfbp) {

748  if

(sfbp != sfbl.cend())

749  return

(sfbp->location);

764  for

(

auto

sfbp = sfbl.cbegin(); sfbp != sfbl.cend(); ++sfbp) {

765  if

(! sfbp->location || sfbp->location[0] ==

'\0'

)

770  for

(

const auto

& cur : sfbp->quals) {

771  if

(cur->GetQual() !=

"partial"

)

784  if

(p > sfbp->location)

786  if

((p == sfbp->location || *p ==

'('

|| *p ==

')'

||

787

*p ==

':'

|| *p ==

','

|| *p ==

'.'

) &&

788

(*q ==

'\0'

|| *q ==

'('

|| *q ==

')'

|| *q ==

','

||

789

*q ==

':'

|| *q ==

'.'

)) {

797  for

(

count

= 0, p = sfbp->location; *p !=

'\0'

; p++) {

800  else if

(*p ==

'>'

|| *p ==

'<'

)

806  else if

(*p ==

'.'

&& p[1] ==

'.'

)

808  else if

(*p ==

'.'

&& p[1] !=

'.'

) {

809  for

(q = p + 1; *q >=

'0'

&& *q <=

'9'

;)

811  if

(q == p || *q !=

':'

)

818  if

(invalid ||

count

!= 0) {

833  auto

sfbp = sfbl.cbegin();

834  for

(; sfbp != sfbl.cend(); ++sfbp) {

835  if

(! sfbp->location || sfbp->location[0] ==

'\0'

)

837  for

(p = sfbp->location + 1; *p !=

'\0'

; p++) {

840  for

(

r

=

nullptr

, q = p - 1;; q--) {

841  if

(q == sfbp->location) {

842  if

(*q !=

'_'

&& (*q < '0' || *q >

'9'

) &&

843

(*q < 'a' || *q >

'z'

) && (*q < 'A' || *q >

'Z'

))

855  if

(*q !=

'_'

&& (*q < '0' || *q >

'9'

) &&

856

(*q < 'a' || *q >

'z'

) && (*q < 'A' || *q >

'Z'

)) {

878  if

(sfbp == sfbl.cend())

880  return

(sfbp->location);

888  if

(! name || *name ==

'\0'

)

914  for

(

auto

tsfbp = sfbl.begin(); tsfbp != sfbl.end(); ++tsfbp) {

915  if

(! tsfbp->location || tsfbp->location[0] ==

'\0'

||

916

! tsfbp->name || tsfbp->name[0] ==

'\0'

)

921  for

(p = loc; *p !=

'\0'

; p++)

922  if

(*p ==

','

|| *p ==

'('

|| *p ==

')'

|| *p ==

':'

||

923

*p ==

';'

|| *p ==

'^'

)

925  for

(p = loc, q = loc; *p !=

'\0'

;) {

926  if

(*p ==

'>'

|| *p ==

'<'

) {

937  if

(q > loc && *(q - 1) ==

' '

)

941

q = (*loc ==

' '

) ? (loc + 1) : loc;

948  for

(

r

= q; *

r

>=

'0'

&& *

r

<=

'9'

;)

956

}

else if

(*

r

==

'.'

&&

r

[1] ==

'.'

) {

960  for

(q = ++

r

; *

r

>=

'0'

&& *

r

<=

'9'

;)

966  if

(

min

> 0 &&

max

> 0) {

970  for

(

auto

tmmp = mml.begin();; ++tmmp) {

971  if

(min < tmmp->

min

) {

972

mml.insert_after(tmmp, *tmmp);

976  if

(

next

(tmmp) == mml.end()) {

977

mml.insert_after(tmmp, newval);

991  auto

mmp = mml.begin();

993  if

(mmp == mml.end() || mmp->min != 1)

996  for

(

max

= mmp->max; mmp != mml.end(); ++mmp)

997  if

(mmp->max >

max

&& mmp->min <=

max

+ 1)

1000  if

((

size_t

)

max

<

len

)

1007  for

(

auto

tsfbp = sfbl.begin(); tsfbp != sfbl.end(); ++tsfbp,

i

++) {

1021  if

(

count

> 2 ||

i

>

count

|| (tgs != 1 && sporg != 1))

1029  char

* p =

nullptr

;

1030  bool whole

=

false

;

1032  for

(

auto

sfbp = sfbl.cbegin(); sfbp != sfbl.cend(); ++sfbp) {

1035  else if

(sfbp->focus)

1054  if

(div && *div !=

'\0'

) {

1063  for

(

auto

sfbp = sfbl.cbegin(); sfbp != sfbl.cend(); ++sfbp) {

1067  if

(syntgndiv == 0) {

1084  if

(syntgndiv == 2 && ! got)

1101  bool

focus =

false

;

1102  for

(

auto

tsfbp = sfbl.cbegin(); tsfbp != sfbl.cend(); ++tsfbp) {

1126  for

(

auto

tsfbp = sfbl.cbegin(); tsfbp != sfbl.cend(); ++tsfbp) {

1130

taxname = tsfbp->name;

1133  if

(tsfbp->tg && tsfbp->full)

1139  if

(same ==

false

&& tgfull ==

false

&& focus ==

false

)

1142  auto

tsfbp =

next

(sfbl.cbegin());

1143  if

(tsfbp == sfbl.cend() || ! tgs)

1146  for

(; tsfbp != sfbl.cend(); ++tsfbp)

1153  if

(tsfbp == sfbl.cend())

1171  for

(

auto

tsfbp = sfbl.cbegin(); tsfbp != sfbl.cend(); ++tsfbp) {

1181  if

(same &&

count

> 0)

1185  auto

tsfbp = sfbl.cbegin();

1186  for

(; tsfbp != sfbl.cend(); ++tsfbp) {

1187  if

(! tsfbp->focus || ! tsfbp->name)

1194  if

(tsfbp != sfbl.cend())

1197  if

(same ||

count

!= 0)

1201

pat =

"1.."

+ to_string(

len

);

1202  for

(tsfbp = sfbl.cbegin(); tsfbp != sfbl.cend(); ++tsfbp) {

1203  if

(! tsfbp->name || ! tsfbp->location || tsfbp->skip)

1209  StringEqu

(tsfbp->location, pat.c_str()))

1221  if

(tsfbp == sfbl.cend())

1224  for

(tsfbp = sfbl.cbegin(); tsfbp != sfbl.cend(); ++tsfbp) {

1225  if

(tsfbp->full && tsfbp->tg && ! tsfbp->skip)

1229  if

(tsfbp != sfbl.cend())

1237  if

((mmp.

min

== 1 && (

size_t

)mmp.

max

==

len

) || mmp.

skip

)

1245

MinMaxList::const_iterator tmmp;

1247  auto

mmp = mml.begin();

1249  for

(; mmp != mml.end(); ++mmp) {

1252  for

(tmmp =

next

(mmp); tmmp != mml.end(); ++tmmp) {

1257  if

(tmmp->min <= mmp->max && tmmp->max >= mmp->min)

1260  if

(tmmp != mml.end())

1263  if

(mmp == mml.end())

1267

ss <<

"\""

<< mmp->orgname <<

"\" at "

<< mmp->min <<

".."

<< mmp->max

1268

<<

" vs \""

<< tmmp->orgname <<

"\" at "

<< tmmp->min <<

".."

<< tmmp->max;

1275  if

(sfbl.empty() ||

next

(sfbl.cbegin()) == sfbl.cend())

1278  auto

tsfbp =

next

(sfbl.cbegin());

1279  for

(; tsfbp != sfbl.cend(); ++tsfbp)

1282  if

(tsfbp == sfbl.cend())

1285  for

(tsfbp = sfbl.cbegin(); tsfbp != sfbl.cend(); ++tsfbp)

1286  if

(tsfbp->full && tsfbp->tg)

1288  if

(tsfbp != sfbl.cend())

1291  auto

sfbp = sfbl.cbegin();

1292  for

(; sfbp != sfbl.cend(); ++sfbp) {

1293  if

(! sfbp->full || sfbp->tg)

1306  if

(sfbp == sfbl.cend())

1308  return

(sfbp->name);

1315  const Char

* cultivar;

1316  const Char

* isolate;

1317  const Char

* serotype;

1318  const Char

* serovar;

1319  const Char

* ecotype;

1320  const Char

* specimen_voucher;

1321  const Char

* strain;

1322  const Char

* sub_species;

1323  const Char

* sub_strain;

1324  const Char

* variety;

1326  for

(

auto

sfbp = sfbl.begin(); sfbp != sfbl.end(); ++sfbp) {

1327  if

(sfbp->bio_src.NotEmpty())

1334  if

(sfbp->orgname.NotEmpty()) {

1339

t_org_ref->

Assign

(*org_ref);

1342  if

(t_org_ref->

Equals

(*org_ref))

1343

sfbp->lookup =

false

;

1345

sfbp->lookup =

true

;

1349

sfbp->orgname.Reset();

1351

cultivar =

nullptr

;

1353

serotype =

nullptr

;

1356

specimen_voucher =

nullptr

;

1358

sub_species =

nullptr

;

1359

sub_strain =

nullptr

;

1363  switch

(

mod

->GetSubtype()) {

1365

cultivar =

mod

->GetSubname().c_str();

1368

isolate =

mod

->GetSubname().c_str();

1371

serotype =

mod

->GetSubname().c_str();

1374

serovar =

mod

->GetSubname().c_str();

1377

ecotype =

mod

->GetSubname().c_str();

1380

specimen_voucher =

mod

->GetSubname().c_str();

1383

strain =

mod

->GetSubname().c_str();

1386

sub_species =

mod

->GetSubname().c_str();

1389

sub_strain =

mod

->GetSubname().c_str();

1392

variety =

mod

->GetSubname().c_str();

1397  CollectSubNames

(*sfbp, use_what, sfbp->name, cultivar, isolate, serotype, serovar, specimen_voucher, strain, sub_species, sub_strain, variety, ecotype);

1401

sfbp->bio_src->SetOrg(*org_ref);

1403  for

(

auto

tsfbp =

next

(sfbp); tsfbp != sfbl.end(); ++tsfbp) {

1407

tsfbp->lookup = sfbp->lookup;

1410

tsfbp->bio_src->Assign(*sfbp->bio_src);

1427

SourceFeatBlkList::iterator what)

1429  if

(what == sfbl.begin())

1432  auto prev

= sfbl.begin();

1434  for

(; tsfbp != sfbl.end(); ++tsfbp) {

1435  if

(tsfbp == what) {

1436

sfbl.splice_after(sfbl.before_begin(), sfbl,

prev

);

1446  for

(

auto prev

= sfbl.begin(), tsfbp =

next

(

prev

); tsfbp != sfbl.end();) {

1447  if

(! tsfbp->useit) {

1452  bool

different =

false

;

1453  for

(

const auto

& cur : tsfbp->quals) {

1454  const string

& cur_qual = cur->GetQual();

1455  if

(cur_qual ==

"focus"

)

1458  bool

found =

false

;

1459  for

(

const auto

&

next

: sfbl.front().quals) {

1460  const string

& next_qual =

next

->GetQual();

1462  if

(next_qual ==

"focus"

|| next_qual != cur_qual)

1465  if

(! cur->IsSetVal() && !

next

->IsSetVal()) {

1470  if

(cur->IsSetVal() &&

next

->IsSetVal() &&

1471

cur->GetVal() ==

next

->GetVal()) {

1489

tsfbp = sfbl.erase_after(

prev

);

1495

SourceFeatBlkList::iterator res)

1497  if

(res == sfbl.end())

1500  auto

sfbp = sfbl.begin();

1501  auto

& sfb = sfbl.emplace_front();

1503

sfb.name = res->name ?

StringSave

(res->name) :

nullptr

;

1504

sfb.namstr = res->namstr ?

StringSave

(res->namstr) :

nullptr

;

1505

sfb.location = res->location ?

StringSave

(res->location) :

nullptr

;

1506

sfb.full = res->full;

1507

sfb.focus = res->focus;

1508

sfb.lookup = res->lookup;

1509

sfb.genome = res->genome;

1512

sfb.bio_src->Assign(*res->bio_src);

1515  if

(res->orgname.NotEmpty())

1516

sfb.orgname->Assign(*res->orgname);

1518

sfb.quals = res->quals;

1520  for

(TQualVector::iterator cur = sfb.quals.begin(); cur != sfb.quals.end();) {

1521  const string

& cur_qual = (*cur)->GetQual();

1522  if

(cur_qual ==

"focus"

) {

1528  for

(; tsfbp != sfbl.end(); ++tsfbp) {

1529  if

(tsfbp == res || ! tsfbp->useit)

1532  bool

found =

false

;

1533  for

(

const auto

&

next

: tsfbp->quals) {

1534  const string

& next_qual =

next

->GetQual();

1536  if

(next_qual ==

"focus"

|| next_qual != cur_qual)

1539  if

(! (*cur)->IsSetVal() && !

next

->IsSetVal()) {

1544  if

((*cur)->IsSetVal() &&

next

->IsSetVal() &&

1545

(*cur)->GetVal() ==

next

->GetVal()) {

1555  if

(tsfbp == sfbl.end())

1561

cur = sfb.quals.erase(cur);

1570

SourceFeatBlkList::iterator res;

1572  if

(

next

(sfbl.begin()) == sfbl.end()) {

1573  if

(! sfbl.front().full) {

1580  Int4

count_noskip = 0;

1582  for

(

auto

tsfbp = sfbl.begin(); tsfbp != sfbl.end(); ++tsfbp) {

1588  if

(! tsfbp->skip) {

1596  if

(count_noskip == 1) {

1602  for

(

auto

tsfbp = sfbl.begin(); tsfbp != sfbl.end(); ++tsfbp) {

1603  if

(count_noskip != 0 && tsfbp->skip)

1605

tsfbp->useit =

true

;

1606  if

(res == sfbl.end())

1613  auto

tsfbp = sfbl.begin();

1614  for

(; tsfbp != sfbl.end(); ++tsfbp) {

1618  if

(tsfbp != sfbl.end()) {

1624  for

(tsfbp = sfbl.begin(); tsfbp != sfbl.end(); ++tsfbp) {

1632  if

(res != sfbl.end()) {

1635  for

(tsfbp = sfbl.begin(); tsfbp != sfbl.end(); ++tsfbp) {

1638

tsfbp->useit =

true

;

1644  if

(count_noskip > 0) {

1645  for

(tsfbp = sfbl.begin(); tsfbp != sfbl.end(); ++tsfbp) {

1648  if

(res != tsfbp && tsfbp->skip)

1649

tsfbp->useit =

false

;

1656  for

(tsfbp = sfbl.begin(); tsfbp != sfbl.end(); ++tsfbp) {

1662  if

(res != sfbl.end()) {

1687  bool

found =

false

;

1688  for

(

const auto

& subtype : bio.

GetSubtype

()) {

1689  if

(subtype->GetSubtype() ==

type

) {

1713

vector<string> modnames;

1718  if

(it.num !=

mod

->GetSubtype())

1721

modnames.push_back(it.name);

1727  for

(

const auto

& cur : quals) {

1728  if

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

"organism"

)

1731  const string

& cur_qual = cur->GetQual();

1732  const Char

* val_ptr = cur->IsSetVal() ? cur->GetVal().c_str() :

nullptr

;

1734  if

(cur_qual ==

"note"

) {

1741  if

(cur_qual != *

b

)

1744  if

(! val_ptr || val_ptr[0] ==

'\0'

)

1756  if

(**

b

!=

'\0'

&& cur_qual == *

b

) {

1762  if

(cur_qual ==

"organism"

||

1763

(taxserver != 0 && cur_qual ==

"type_material"

))

1766  if

(find(modnames.begin(), modnames.end(), cur_qual) != modnames.end())

1770  if

(cur_qual == it.name) {

1783  if

(qual->

GetQual

() !=

"db_xref"

)

1786  const string

& val_buf(qual->

GetVal

());

1788  auto

pos = val_buf.find(

':'

);

1789  if

(pos == string::npos)

1792  string

db(val_buf.substr(0, pos));

1793  string t

(val_buf.substr(pos + 1));

1829

qual->

SetVal

(db +

':'

+

t

);

1866  if

(

t

.front() !=

'0'

&&

t

.find_first_not_of(

"0123456789"

) == string::npos)

1869  tag

->SetTag().SetStr(

t

);

1886  bool

is_syn =

false

;

1887  bool

is_pat =

false

;

1896  auto

sfbp = sfbl.begin();

1897  for

(; sfbp != sfbl.end(); ++sfbp) {

1898  if

(sfbp->bio_src.Empty())

1903  if

(! sfbp->lookup) {

1904  if

(is_syn && ! sfbp->tg)

1911  if

(is_syn ==

false

&& is_pat ==

false

) {

1912  const Char

* taxname =

nullptr

;

1924  bool

dropped =

false

;

1925  for

(

auto

& cur : sfbp->quals) {

1926  if

(! cur->IsSetQual() || cur->GetQual().empty())

1929  const string

& cur_qual = cur->GetQual();

1930  string

cq = cur_qual;

1931  if

(cq ==

"geo_loc_name"

) {

1934  if

(cq ==

"db_xref"

) {

1936  if

(dbtag.

Empty

())

1939

bio.

SetOrg

().SetDb().push_back(dbtag);

1943  const Char

* val_ptr = cur->IsSetVal() ? cur->GetVal().c_str() :

nullptr

;

1944  if

(cq ==

"organelle"

) {

1945  if

(! val_ptr || val_ptr[0] ==

'\0'

)

1948  const char

* p =

StringChr

(val_ptr,

':'

);

1956

string_view val_str(val_ptr, p - val_ptr);

1986  if

(cq !=

"country"

||

1987

! val_ptr || val_ptr[0] ==

'\0'

)

1994  for

(p = tco; *p ==

' '

|| *p ==

'\t'

;)

1999  for

(q = p + 1; *q !=

'\0'

;)

2001  for

(q--; *q ==

' '

|| *q ==

'\t'

;)

2007  if

(! valid_country) {

2010  if

(! valid_country)

2027  else if

(oldgen > -1)

2036  if

(sfbp != sfbl.end())

2046  return

c ==

' '

|| c ==

'\t'

;

2058  for

(

const auto

& descr : bioseq.

GetDescr

().

Get

()) {

2059  if

(! descr->IsSource())

2062  const CBioSource

& bio_src = descr->GetSource();

2070

std::remove_copy_if(taxname.begin(), taxname.end(), std::back_inserter(orgdescr),

is_a_space_char

);

2075

std::remove_copy_if(common.begin(), common.end(), std::back_inserter(commdescr),

is_a_space_char

);

2078  auto

tsfbp = sfbl.cbegin();

2079  for

(; tsfbp != sfbl.cend(); ++tsfbp) {

2080  if

(tsfbp->name ==

nullptr

|| tsfbp->name[0] ==

'\0'

)

2083  size_t

name_len = strlen(tsfbp->name);

2085

std::remove_copy_if(tsfbp->name, tsfbp->name + name_len, std::back_inserter(orgfeat),

is_a_space_char

);

2096  if

(orgdescr == orgfeat || commdescr == orgfeat) {

2102  if

(tsfbp == sfbl.cend()) {

2115  auto

sfbp = sfbl.cbegin();

2116  for

(; sfbp != sfbl.cend(); ++sfbp) {

2117  if

(! sfbp->lookup || sfbp->bio_src.Empty() || ! sfbp->bio_src->IsSetOrg())

2121  if

(sfbp->bio_src->GetOrg().IsSetOrgname() &&

2122

sfbp->bio_src->GetOrg().GetOrgname().IsSetLineage())

2123

p = sfbp->bio_src->GetOrg().GetOrgname().GetLineage().c_str();

2125  if

(! p || *p ==

'\0'

) {

2135  if

(sfbp == sfbl.cend())

2150  for

(

auto

sfbp = sfbl.begin(); sfbp != sfbl.end(); ++sfbp) {

2151  if

(sfbp->lookup || sfbp->bio_src.Empty() ||

2152

! sfbp->bio_src->IsSetOrg() || ! sfbp->bio_src->GetOrg().IsSetTaxname() ||

2153

! sfbp->name || *sfbp->name ==

'\0'

||

2154

sfbp->bio_src->GetOrg().GetTaxname().empty())

2157  COrgName

& orgname = sfbp->bio_src->SetOrg().SetOrgname();

2166  const string

& taxname = sfbp->bio_src->GetOrg().GetTaxname();

2169  bool

found =

false

;

2170  for

(

const auto

& descr : bioseq.

GetDescr

().

Get

()) {

2171  if

(! descr->IsSource())

2174  const CBioSource

& bio_src = descr->GetSource();

2193  "Taxonomy lookup for organism name \"%s\" failed, and no matching organism exists in OS/ORGANISM lines, so lineage has been set to \"Unclassified\"."

,

2195

p =

"Unclassified"

;

2197  if

(lineage.empty()) {

2200  "Taxonomy lookup for organism name \"%s\" failed, and the matching organism from OS/ORGANISM lines has no lineage, so lineage has been set to \"Unclassified\"."

,

2202

p =

"Unclassified"

;

2204

p = lineage.c_str();

2208  for

(

auto

tsfbp =

next

(sfbp); tsfbp != sfbl.end(); ++tsfbp) {

2209  if

(tsfbp->lookup || tsfbp->bio_src.Empty() ||

2210

! tsfbp->bio_src->IsSetOrg() || ! tsfbp->bio_src->GetOrg().IsSetTaxname() ||

2211

! tsfbp->name || *tsfbp->name ==

'\0'

||

2212

tsfbp->bio_src->GetOrg().GetTaxname().empty() ||

2217  COrgName

& torgname = tsfbp->bio_src->SetOrg().SetOrgname();

2239  auto

tsfbp = sfbl.cbegin();

2240  for

(; tsfbp != sfbl.cend(); ++tsfbp)

2243  if

(tsfbp == sfbl.cend())

2246

name = tsfbp->moltype;

2247  for

(ret =

true

, tsfbp = sfbl.cbegin(); tsfbp != sfbl.cend(); ++tsfbp) {

2248  if

(! tsfbp->moltype) {

2250

p = tsfbp->location;

2258

}

else if

(ret && !

StringEqu

(name, tsfbp->moltype))

2276  if

(sfbl.empty() || ! ibp)

2282  auto

sfbp = sfbl.cbegin();

2283  for

(envs = 0, sources = 0; sfbp != sfbl.cend(); ++sfbp, sources++) {

2284  bool

env_found =

false

;

2285  for

(

const auto

& cur : sfbp->quals) {

2286  if

(cur->IsSetQual() && cur->GetQual() ==

"environmental_sample"

) {

2296  if

(! sfbp->full || ! sfbp->name || sfbp->name[0] ==

'\0'

)

2310  if

(! skip && envs != sources) {

2361  if

(ppp.empty() ||

count

< 1)

2368  const auto

& pp = ppp.front();

2373

subs.push_back(sub);

2378

subs.push_back(sub);

2380  if

(! pp.fwd_name.empty()) {

2384

subs.push_back(sub);

2387  if

(! pp.rev_name.empty()) {

2391

subs.push_back(sub);

2402  for

(

const auto

& tppp : ppp) {

2403

len_fs += (tppp.fwd_seq.size() + 1);

2404

len_rs += (tppp.rev_seq.size() + 1);

2405  if

(! tppp.fwd_name.empty()) {

2406

len_fn += (tppp.fwd_name.size() + 1);

2409  if

(! tppp.rev_name.empty()) {

2410

len_rn += (tppp.rev_name.size() + 1);

2415

str_fs.reserve(len_fs);

2416

str_rs.reserve(len_rs);

2418

str_fn.reserve(len_fn +

count

- num_fn + 1);

2420

str_rn.reserve(len_rn +

count

- num_rn + 1);

2422  for

(

const auto

& tppp : ppp) {

2423

str_fs.append(

","

);

2424

str_fs.append(tppp.fwd_seq);

2425

str_rs.append(

","

);

2426

str_rs.append(tppp.rev_seq);

2428

str_fn.append(

","

);

2429  if

(! tppp.fwd_name.empty())

2430

str_fn.append(tppp.fwd_name);

2433

str_rn.append(

","

);

2434  if

(! tppp.rev_name.empty())

2435

str_rn.append(tppp.rev_name);

2439  if

(! str_fs.empty()) {

2447

subs.push_back(sub);

2449  if

(! str_rs.empty()) {

2457

subs.push_back(sub);

2459  if

(! str_fn.empty()) {

2466

subs.push_back(sub);

2469  if

(! str_rn.empty()) {

2476

subs.push_back(sub);

2495  bool

got_problem =

false

;

2496  auto

tppp = ppp.before_begin();

2497  auto

sfbp = sfbl.begin();

2498  for

(; sfbp != sfbl.end(); ++sfbp) {

2499  if

(sfbp->quals.empty() || sfbp->bio_src.Empty())

2503  for

(

const auto

& cur : sfbp->quals) {

2504  if

(cur->GetQual() !=

"PCR_primers"

||

2505

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

2509

tppp = ppp.emplace_after(tppp);

2512

std::vector<Char> val_buf(cur->GetVal().begin(), cur->GetVal().end());

2513

val_buf.push_back(0);

2515  for

(comma =

false

, bad_start =

false

, p = &val_buf[0]; *p !=

'\0'

;) {

2518  if

(p != &val_buf[0]) {

2541  if

(

r

> q && *(

r

- 1) ==

' '

)

2551  if

(! q || *q ==

'\0'

)

2559  if

(! tppp->fwd_name.empty())

2560

tppp->fwd_name +=

':'

;

2561

tppp->fwd_name += q;

2568  if

(tppp->fwd_seq.empty())

2571

tppp->fwd_seq +=

':'

;

2574

tppp->fwd_name +=

':'

;

2583  if

(! tppp->rev_name.empty())

2584

tppp->rev_name +=

':'

;

2585

tppp->rev_name += q;

2592  if

(tppp->rev_seq.empty())

2595

tppp->rev_seq +=

':'

;

2598

tppp->rev_name +=

':'

;

2625

got_problem =

true

;

2631

got_problem =

true

;

2637

got_problem =

true

;

2643

got_problem =

true

;

2649

got_problem =

true

;

2653  if

(tppp->fwd_seq.empty() || tppp->rev_seq.empty()) {

2655

got_problem =

true

;

2669  if

(sfbp == sfbl.end())

2677  const char

* Mmm[] = {

"Jan"

,

"Feb"

,

"Mar"

,

"Apr"

,

"May"

,

"Jun"

,

"Jul"

,

"Aug"

,

"Sep"

,

"Oct"

,

"Nov"

,

"Dec"

,

nullptr

};

2697  for

(

auto

sfbp = sfbl.cbegin(); sfbp != sfbl.cend(); ++sfbp) {

2698  if

(sfbp->quals.empty() || sfbp->bio_src.Empty())

2701  for

(

const auto

& cur : sfbp->quals) {

2703  if

(cur->GetQual() !=

"collection_date"

||

2704

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

2707  val

= (

char

*)cur->GetVal().c_str();

2712  for

(num_slash = 0, p =

val

; *p !=

'\0'

; p++)

2716  if

(num_slash > 1) {

2726  for

(

val

= (

char

*)cur->GetVal().c_str();;) {

2734  for

(q =

val

; *q ==

'0'

;)

2736  for

(p = (

char

*)q; *p !=

'\0'

; p++)

2737  if

(*p < '0' || *p >

'9'

)

2743

}

else if

(

len

== 8) {

2744  if

(

val

[3] !=

'-'

)

2750  if

(p[0] >=

'a'

&& p[0] <=

'z'

)

2752  if

(p[1] >=

'A'

&& p[1] <=

'Z'

)

2754  if

(p[2] >=

'A'

&& p[2] <=

'Z'

)

2757  for

(

b

= Mmm, month = 1; *

b

;

b

++, month++)

2765  for

(q =

val

+ 4; *q ==

'0'

;)

2767  for

(p = (

char

*)q; *p !=

'\0'

; p++)

2768  if

(*p < '0' || *p >

'9'

)

2774  if

(year > date.

GetYear

() ||

2779

}

else if

(

len

== 11) {

2780  if

(

val

[2] !=

'-'

||

val

[6] !=

'-'

)

2786  if

(p[0] <

'0'

|| p[0] >

'3'

|| p[1] <

'0'

|| p[1] >

'9'

)

2794  if

(p[0] >=

'a'

&& p[0] <=

'z'

)

2796  if

(p[1] >=

'A'

&& p[1] <=

'Z'

)

2798  if

(p[2] >=

'A'

&& p[2] <=

'Z'

)

2801  for

(

b

= Mmm, month = 1; *

b

;

b

++, month++)

2807  if

(day < 1 || day > 31)

2809  else if

(month == 2 && day > 29)

2811  else if

((month == 4 || month == 6 || month == 9 || month == 11) && day > 30)

2816  for

(q =

val

+ 7; *q ==

'0'

;)

2818  for

(p = (

char

*)q; *p !=

'\0'

; p++)

2819  if

(*p < '0' || *p >

'9'

)

2825  if

(year > date.

GetYear

() ||

2834

}

else if

(

len

== 7 ||

len

== 10 ||

len

== 14 ||

len

== 17 ||

2839  for

(p =

val

; *p !=

'\0'

; p++) {

2840  if

((*p < 'a' || *p >

'z'

) && (*p < 'A' || *p >

'Z'

) &&

2841

(*p < '0' || *p >

'9'

) && *p !=

'-'

&& *p !=

'/'

&&

2848  else if

(*p ==

'T'

)

2850  else if

(*p ==

'Z'

)

2853  if

(

len

== 7 ||

len

== 10) {

2865  if

((

len

== 14 && num_colon > 0) ||

2866

(

len

== 17 && num_colon > 1) ||

2867

(

len

== 20 && num_colon > 2))

2886

q =

"is not of the format DD-Mmm-YYYY, Mmm-YYYY, or YYYY"

;

2888

q =

"has an illegal day value for the stated month"

;

2890

q =

"has invalid characters"

;

2892

q =

"has too many time values"

;

2894

q =

"has too many Zulu indicators"

;

2896

q =

"has too many hour and minute delimiters"

;

2898

q =

"has not yet occured"

;

2916  if

(sfbl.empty() ||

next

(sfbl.cbegin()) == sfbl.cend())

2919  auto

sfbp = sfbl.cbegin();

2920  for

(; sfbp != sfbl.cend(); ++sfbp) {

2932  if

(sfbp != sfbl.cend())

2943  bool

metatax =

false

;

2944  bool

metalin =

false

;

2954  if

(! metalin && ! metatax)

2958  if

(! taxname || taxname[0] == 0)

2959

taxname =

"unknown"

;

2961  if

(metalin && metatax) {

2966

}

else if

(! metalin)

2986  auto

tsfbp = sfbl.cbegin();

2987  for

(; tsfbp != sfbl.cend(); ++tsfbp) {

2989  if

(! tsfbp->submitter_seqid)

2993  if

(tsfbp->submitter_seqid[0] ==

'\0'

) {

2999

ssid = tsfbp->submitter_seqid;

3000  else if

(!

StringEqu

(ssid, tsfbp->submitter_seqid)) {

3006  if

(tsfbp != sfbl.cend())

3009  if

(count_feat == count_qual)

3098

mml.emplace_front();

3129  FtaErrPost

(sev,

ERR_SOURCE_TransSingleOrgName

,

"Use of /transgenic requires at least two source features with differences among /organism, /strain, /organelle, and /isolate, between the host and foreign organisms."

);

3130

}

else if

(

i

> 0) {

3134

}

else if

(

i

== 2) {

3136

}

else if

(

i

== 3) {

3162

}

else if

(

i

== 2) {

3189  for

(

auto

tsfbp = sfbl.cbegin(); tsfbp != sfbl.cend(); ++tsfbp)

3205  if

(sfbl.front().lookup ==

false

)

3208  if

(sfbl.front().focus)

3209

sfbl.front().bio_src->SetIs_focus();

3211

sfbl.front().bio_src->ResetIs_focus();

3213  auto

tsfbp = sfbl.begin();

3214  for

(; tsfbp != sfbl.end(); ++tsfbp) {

3218

feat->

SetData

().SetBiosrc(*tsfbp->bio_src);

3222  GetSeqLocation

(*feat, tsfbp->location, seqid, &err, pp,

"source"

);

3229  if

(! tsfbp->quals.empty()) {

3239

seq_feats.push_back(feat);

3242  if

(tsfbp != sfbl.end())

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

void ShrinkSpaces(char *line)

void fta_sort_biosource(objects::CBioSource &bio)

const COrgName & GetOrgname(void) const

bool IsSetOrgname(void) const

static bool WasValid(const string &country)

static bool IsValid(const string &country)

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

bool IsSetOrgMod(void) const

namespace ncbi::objects::

#define ERR_SOURCE_InconsistentMolType

#define ERR_SOURCE_MissingMolType

#define ERR_SOURCE_FocusAndTransposonNotAllowed

#define ERR_SOURCE_ExcessCoverage

#define ERR_SOURCE_IncompleteCoverage

#define ERR_SOURCE_InvalidDbXref

#define ERR_SOURCE_TransSingleOrgName

#define ERR_QUALIFIER_PCRprimerEmbeddedComma

#define ERR_SOURCE_OrganelleQualMultToks

#define ERR_SOURCE_UnwantedQualifiers

#define ERR_SOURCE_PartialLocation

#define ERR_SOURCE_DifferentSubmitterSeqids

#define ERR_SOURCE_FormerCountry

#define ERR_SOURCE_OrganismIncomplete

#define ERR_SOURCE_MultipleOrganismWithFocus

#define ERR_SOURCE_UnusualOrgName

#define ERR_ORGANISM_UnclassifiedLineage

#define ERR_SERVER_NoLineageFromTaxon

#define ERR_SOURCE_MissingSourceFeatureForDescr

#define ERR_SOURCE_MissingEnvSampQual

#define ERR_DIVISION_TGNnotTransgenic

#define ERR_SOURCE_MultipleSubmitterSeqids

#define ERR_ORGANISM_OrgNameLacksMetagenome

#define ERR_SOURCE_ManySourceFeats

#define ERR_SOURCE_FocusQualMissing

#define ERR_SOURCE_InvalidCollectionDate

#define ERR_SOURCE_UnusualLocation

#define ERR_DIVISION_TransgenicNotSYN_TGN

#define ERR_QUALIFIER_InvalidPCRprimer

#define ERR_SOURCE_LackingSubmitterSeqids

#define ERR_SOURCE_OrganelleIllegalClass

#define ERR_SOURCE_MultipleMolTypes

#define ERR_SOURCE_BadLocation

#define ERR_SOURCE_FocusQualNotFullLength

#define ERR_SOURCE_MultiOrgOverlap

#define ERR_FEATURE_Dropped

#define ERR_SOURCE_MultipleTransgenicQuals

#define ERR_SOURCE_InconsistentEnvSampQual

#define ERR_ORGANISM_SynOrgNameNotSYNdivision

#define ERR_QUALIFIER_MissingPCRprimerSeq

#define ERR_SOURCE_FocusQualNotNeeded

#define ERR_SOURCE_PartialQualifier

#define ERR_SOURCE_FocusAndTransgenicQuals

#define ERR_ORGANISM_NoSourceFeatMatch

#define ERR_SOURCE_TransgenicTooShort

#define ERR_ORGANISM_LineageLacksMetagenome

#define ERR_SOURCE_ObsoleteDbXref

#define ERR_SOURCE_InvalidLocation

#define ERR_SOURCE_FeatureMissing

#define ERR_SOURCE_SingleSourceTooShort

#define ERR_SOURCE_InvalidCountry

#define ERR_SOURCE_NoOrganismQual

forward_list< PcrPrimers > PcrPrimersList

static void RemoveSourceFeatSpaces(SourceFeatBlkList &sfbl)

static bool CheckMoltypeConsistency(const SourceFeatBlkList &sfbl, string &moltype)

static void FTASubSourceAdd(CBioSource &bio, const Char *val, CSubSource::ESubtype type)

static void SourceFeatRemoveDups(SourceFeatBlkList &sfbl)

static void CheckCollectionDate(const SourceFeatBlkList &sfbl, Parser::ESource source)

static void PopulateSubNames(string &namstr, const Char *name, const Char *value, COrgMod::ESubtype subtype, TOrgModList &mods)

static const char * GenomicSourceFeatQual[]

static const char * OrganelleFirstToken[]

static Int4 CheckFocusInOrgs(const SourceFeatBlkList &sfbl, size_t len, int *status)

static const char * unusual_toks[]

static const char * special_orgs[]

static void CheckQualsInSourceFeat(CBioSource &bio, TQualVector &quals, Uint1 taxserver)

static const char * SourceSubSources[]

static const char * DENLRSourceDbxrefTag[]

#define USE_SPECIMEN_VOUCHER

static void PropagateSuppliedLineage(const CBioseq &bioseq, SourceFeatBlkList &sfbl, Uint1 taxserver)

static void PickTheDescrSource(SourceFeatBlkList &sfbl)

static const char * NullTermValues[]

static void CheckMetagenome(CBioSource &bio)

static Int4 CheckTransgenicSourceFeats(const SourceFeatBlkList &sfbl)

static void SourceFeatDerive(SourceFeatBlkList &sfbl, SourceFeatBlkList::iterator res)

static bool CompareDescrFeatSources(const SourceFeatBlkList &sfbl, const CBioseq &bioseq, const string &source)

static const char * NLRSourceDbxrefTag[]

static void CollectSubNames(SourceFeatBlk &sfbp, Int4 use_what, const Char *name, const Char *cultivar, const Char *isolate, const Char *serotype, const Char *serovar, const Char *specimen_voucher, const Char *strain, const Char *sub_species, const Char *sub_strain, const Char *variety, const Char *ecotype)

static bool CheckSubmitterSeqidQuals(const SourceFeatBlkList &sfbl, char *acc)

#define BIOSOURCES_THRESHOLD

static const char * exempt_quals[]

static const char * SourceBadQuals[]

static const char * source_genomes[]

static bool UpdateRawBioSource(SourceFeatBlkList &sfbl, Parser::ESource source, IndexblkPtr ibp, Uint1 taxserver)

static bool ParsePcrPrimers(SourceFeatBlkList &sfbl)

static bool CheckSourceFeatLocFuzz(const SourceFeatBlkList &sfbl)

static SourceFeatBlkList CollectSourceFeats(DataBlkCIter dbp, DataBlkCIter dbp_end, Int2 type)

static void SourceFeatMoveOneUp(SourceFeatBlkList &sfbl, SourceFeatBlkList::iterator what)

static const char * ObsoleteSourceDbxrefTag[]

static void PopulatePcrPrimers(CBioSource &bio, PcrPrimersList &ppp, Int4 count)

static bool CheckNeedSYNFocus(const SourceFeatBlkList &sfbl)

static const char * DESourceDbxrefTag[]

static const CharUInt1 SourceOrgMods[]

static void CheckForExemption(SourceFeatBlkList &sfbl)

static char * CheckPcrPrimersTag(char *str)

static char * CheckForUnusualFullLengthOrgs(const SourceFeatBlkList &sfbl)

static bool IfSpecialFeat(const MinMax &mmp, size_t len)

static void CreateRawBioSources(ParserPtr pp, SourceFeatBlkList &sfbl, Int4 use_what)

static char * CheckSourceFeatFocusAndTransposon(const SourceFeatBlkList &sfbl)

static const char * ESourceDbxrefTag[]

static char * CheckSourceFeatLocAccs(const SourceFeatBlkList &sfbl, char *acc)

bool fta_if_special_org(const Char *name)

static bool CheckForENV(const SourceFeatBlkList &sfbl, IndexblkPtr ibp, Parser::ESource source)

forward_list< MinMax > MinMaxList

forward_list< SourceFeatBlk > SourceFeatBlkList

static void RemoveStringSpaces(char *line)

static bool is_a_space_char(Char c)

static bool SourceFeatStructFillIn(IndexblkPtr ibp, SourceFeatBlkList &sfbl, Int4 use_what)

static bool CheckSYNTGNDivision(const SourceFeatBlkList &sfbl, char *div)

static CRef< CDbtag > GetSourceDbtag(CRef< CGb_qual > &qual, Parser::ESource source)

static Int4 CheckSourceFeatCoverage(SourceFeatBlkList &sfbl, MinMaxList &mml, size_t len)

static void AddOrgMod(COrg_ref &org_ref, const Char *val, COrgMod::ESubtype type)

static bool CheckSourceLineage(const SourceFeatBlkList &sfbl, Parser::ESource source, bool is_pat)

static char * CheckWholeSourcesVersusFocused(const SourceFeatBlkList &sfbl)

static char * CheckSourceOverlap(const MinMaxList &mml, size_t len)

void ParseSourceFeat(ParserPtr pp, DataBlkCIter dbp, DataBlkCIter dbp_end, const CSeq_id &seqid, Int2 type, const CBioseq &bioseq, const string &source, TSeqFeatList &seq_feats)

static char * CheckSourceFeatOrgs(const SourceFeatBlkList &sfbl, int *status)

std::list< CRef< objects::COrgMod > > TOrgModList

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

TDataBlkList::const_iterator DataBlkCIter

int fta_atoi(string_view sv)

bool fta_StartsWith(const char *s1, string_view s2)

bool StringEquN(const char *s1, const char *s2, size_t n)

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

size_t StringLen(const char *s)

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

void fta_fix_orgref(ParserPtr pp, COrg_ref &org_ref, bool *drop, char *organelle)

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[]

#define TAX_ID_FROM(T, value)

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

Set object to copy of another one.

virtual bool Equals(const CSerialObject &object, ESerialRecursionMode how=eRecursive) const

Check if both objects contain the same values.

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 Empty(void) const THROWS_NONE

Check if CRef is empty – not pointing to any object, which means having a 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 StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)

Convert string to int.

static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)

Check if a string starts with a specified prefix value.

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

Case-insensitive equality of a substring with another string.

@ fConvErr_NoThrow

Do not throw an exception on error.

@ eNocase

Case insensitive compare.

@ eCurrent

Use current time. See also CCurrentTime.

const TSubtype & GetSubtype(void) const

Get the Subtype member data.

void SetSubtype(TSubtype value)

Assign a value to Subtype data member.

bool IsSetOrg(void) const

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

bool CanGetOrg(void) const

Check if it is safe to call GetOrg method.

list< CRef< CSubSource > > TSubtype

void SetOrigin(TOrigin value)

Assign a value to Origin data member.

const TOrg & GetOrg(void) const

Get the Org member data.

void SetGenome(TGenome value)

Assign a value to Genome data member.

void SetOrg(TOrg &value)

Assign a value to Org data member.

void SetName(const TName &value)

Assign a value to Name data member.

EGenome

biological context

TSubtype & SetSubtype(void)

Assign a value to Subtype data member.

@ eSubtype_fwd_primer_seq

sequence (possibly more than one; semicolon-separated)

@ eSubtype_rev_primer_name

@ eSubtype_fwd_primer_name

@ eSubtype_rev_primer_seq

sequence (possibly more than one; semicolon-separated)

@ eOrigin_artificial

artificially engineered

TYear GetYear(void) const

Get the Year member data.

TMonth GetMonth(void) const

Get the Month member data.

TDay GetDay(void) const

Get the Day member data.

const TMod & GetMod(void) const

Get the Mod member data.

bool CanGetMod(void) const

Check if it is safe to call GetMod method.

const TLineage & GetLineage(void) const

Get the Lineage member data.

bool CanGetDiv(void) const

Check if it is safe to call GetDiv method.

const TDiv & GetDiv(void) const

Get the Div member data.

void ResetLineage(void)

Reset Lineage data member.

bool IsSetCommon(void) const

common name Check if a value has been assigned to Common data member.

bool IsSetLineage(void) const

lineage with semicolon separators Check if a value has been assigned to Lineage data member.

const TTaxname & GetTaxname(void) const

Get the Taxname member data.

const TCommon & GetCommon(void) const

Get the Common member data.

bool CanGetTaxname(void) const

Check if it is safe to call GetTaxname method.

void SetTaxname(const TTaxname &value)

Assign a value to Taxname data member.

bool CanGetOrgname(void) const

Check if it is safe to call GetOrgname method.

bool IsSetOrgname(void) const

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

bool IsSetTaxname(void) const

preferred formal name Check if a value has been assigned to Taxname data member.

TMod & SetMod(void)

Assign a value to Mod data member.

void SetOrgname(TOrgname &value)

Assign a value to Orgname data member.

void SetLineage(const TLineage &value)

Assign a value to Lineage data member.

const TOrgname & GetOrgname(void) const

Get the Orgname member data.

@ eSubtype_nat_host

natural host of this specimen

@ eSubtype_metagenome_source

@ eSubtype_specimen_voucher

@ eSubtype_culture_collection

const TVal & GetVal(void) const

Get the Val member data.

void SetData(TData &value)

Assign a value to Data data member.

void SetExp_ev(TExp_ev value)

Assign a value to Exp_ev data member.

void SetVal(const TVal &value)

Assign a value to Val data member.

const TQual & GetQual(void) const

Get the Qual member data.

@ eExp_ev_experimental

any reasonable experimental check

@ eExp_ev_not_experimental

similarity, pattern, etc

const Tdata & Get(void) const

Get the member data.

bool IsSetDescr(void) const

descriptors Check if a value has been assigned to Descr data member.

const TDescr & GetDescr(void) const

Get the Descr member data.

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 whole

bool GetSeqLocation(CSeq_feat &feat, string_view location, const CSeq_id &seqid, bool *hard_err, ParserPtr pp, string_view name)

constexpr bool empty(list< Ts... >) noexcept

const GenericPointer< typename T::ValueType > T2 value

const CharType(& source)[N]

double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)

optional< string > location

MinMax(const char *o, Int4 i, Int4 x, bool s)

vector< IndexblkPtr > entrylist

CBioSource::EGenome genome

CRef< CBioSource > bio_src

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

Int2 StringMatchIcase(const Char **array, string_view text)

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

Char * StringIStr(const Char *where, const Char *what)

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