gi is an abbreviation for "Genbank identifier".
- This is a pretty standard convention used by data stored in NCBI databases. There used to be a pretty comprehensive description of the conventions used at NCBI (I wouldn't say it was a standard or specification, just convention) here, but this page is no longer available it seems.
AY848686 label is an accession value, and the appended number is a version number.
See this page for more info.
The short answer is: these are all internal conventions. None of it needs to be there, except perhaps to ensure NCBI's internal tools work as expected.
UPDATE: I found a non-official copy of the old docs here. Look for the section starting with "FASTA Defline Format". I've copied it here to prevent further problems with bitrot in the future.
FASTA Defline Format
The syntax of FASTA Deflines used by the NCBI BLAST server depends on
the database from which each sequence was obtained. The table below lists
the identifiers for the databases from which the sequences were derived.
Database Name Identifier Syntax
EMBL Data Library emb|accession|locus
DDBJ, DNA Database of Japan dbj|accession|locus
NBRF PIR pir||entry
Protein Research Foundation prf||name
SWISS-PROT sp|accession|entry name
Brookhaven Protein Data Bank pdb|entry|chain
GenInfo Backbone Id bbs|number
General database identifier gnl|database|identifier
NCBI Reference Sequence ref|accession|locus
Local Sequence identifier lcl|identifier
For example, an identifier might be "gb|M73307|AGMA13GT", where the "gb" tag
indicates that the identifier refers to a GenBank sequence, "M73307" is its
GenBank ACCESSION, and "AGMA13GT" is the GenBank LOCUS.
"gi" identifiers are being assigned by NCBI for all sequences contained
within NCBI's sequence databases. The 'gi' identifier provides a uniform
and stable naming convention whereby a specific sequence is assigned
its unique gi identifier. If a nucleotide or protein sequence changes,
however, a new gi identifier is assigned, even if the accession number
of the record remains unchanged. Thus gi identifiers provide a mechanism
for identifying the exact sequence that was used or retrieved in a
For searches of the nr protein database where the sequences are derived
from conceptual translations of sequences from the nucleotide databases
the following syntax is used:
An example would be:
gi|451623 (U04987) env [Simian immunodeficiency..."
where '451623' is the gi identifier and the 'U04987' is the accession
number of the nucleotide sequence from which it was derived.
Users are encouraged to use the '-I' option for Blast output which will
produce a header line with the gi identifier concatenated with the database
identifier of the database from which it was derived, for example, from a
And similarly for protein databases:
The gnl ('general') identifier allows databases not on the above list to
be identified with the same syntax. An example here is the PID identifier:
PID stands for Protein-ID; the "e" (in e1632) indicates that this ID
was issued by EMBL. As mentioned above, use of the "-I" option
produces the NCBI gi (in addition to the PID) which users can also
The bar ("|") separates different fields as listed in the above table.
In some cases a field is left empty, even though the original
specification called for including this field. To make
these identifiers backwards-compatiable for older parsers
the empty field is denoted by an additional bar ("||").