Mercurial > repos > iuc > ncbi_eutils_efetch
diff generate_macros_xml.pl @ 3:c09fcbe4b16a draft
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
author | iuc |
---|---|
date | Wed, 23 Sep 2020 09:48:53 +0000 |
parents | |
children | c5ff15011115 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generate_macros_xml.pl Wed Sep 23 09:48:53 2020 +0000 @@ -0,0 +1,841 @@ +#!/usr/bin/env perl + +#Usage: perl generate_macros_xml.pl > macros.xml + +#Note, this script uses einfo.py to get database info. It also uses manually compiled data stored at the bottom of this script that is based on: https://www.ncbi.nlm.nih.gov/books/NBK25499/table/chapter4.T._valid_values_of__retmode_and/?report=objectonly +#The data in the table on that page was manipulated to replace nulls with 'none', remove duplicates, and add missing formats based on correspondence with MLN. + +## +## use einfo to retrieve all the valid databases +## + +print STDERR "Retrieving database list\n"; + +my $dbxml = `python einfo.py --user_email "planemo@galaxyproject.org" --admin_email "planemo@galaxyproject.org;test@bx.psu.edu"`; + +my(@dblist); +my $dbs = {}; +my $dbfroms = {}; +my $dbnames = {}; +foreach(split(/\n/,$dbxml)) + { + if(/<DbName>(.+)<\/DbName>/) + { + my $db = $1; + push(@dblist,$db); + $dbs->{$db} = 0; + $dbfroms->{$db} = 0; + $dbnames->{$db} = $_; + } + } + +## +## Use einfo to retrieve all the valid links for each database (Note: some databases are not linked) +## + +my $h = {}; +foreach my $db (sort {$dbnames->{$a} cmp $dbnames->{$b}} @dblist) + { + sleep(2); + + print STDERR "Retrieving info for $db\n"; + + my $response = `python einfo.py --db $db --user_email "planemo\@galaxyproject.org" --admin_email "planemo\@galaxyproject.org;test\@bx.psu.edu"`; + + my $dolinks = 0; + my $link = ""; + my $name = ""; + + foreach(split(/\n/,$response)) + { + if(/<LinkList>/) + { + $dolinks = 1; + #Save whether there exist links from this database + $dbfroms->{$db} = 1; + } + elsif(!$dolinks) + { + if(/<MenuName>(.+)<\/MenuName>/) + {$dbnames->{$db} = "$1 ($db)"} + } + elsif($dolinks) + { + if(/<Name>(.+)<\/Name>/) + {$link=$1} + elsif(/<Menu>(.*)<\/Menu>/) + {$name=$1} + elsif(/<DbTo>(.+)<\/DbTo>/) + { + $dbto=$1; + push(@{$h->{$db}->{$dbto}},[$link,$name]); + $link=""; + $name=""; + } + } + } + } + +my @sorted_dblist = sort {$dbnames->{$a} cmp $dbnames->{$b}} @dblist; + +## +## Generate XML to govern the valid databases to use with efetch +## + +my $efetch_dbhash = {}; #->{efetch-compatible-db}->{rettype-retmode-galaxy_format} = format_name (galaxy_format) +while(<DATA>) + { + chomp; + my($db,$galaxy_format,$retmode,$rettype,$format_name) = split(/\t/,$_); + $efetch_dbhash->{$db}->{"$rettype-$retmode-$galaxy_format"} = + "$format_name ($galaxy_format)"; + } + +#EFetch database select list + +print << 'EOXML'; + <xml name="dbselect_efetch" token_name="db_select" token_label="NCBI Database to Query"> + <param name="@NAME@" type="select" label="@LABEL@"> +EOXML + +foreach my $db (grep {exists($dbs->{$_})} + sort {$dbnames->{$a} cmp $dbnames->{$b}} + keys(%$efetch_dbhash)) + { + my $selected = ''; + if($db eq 'pubmed') + {$selected = ' selected="True"'} + print << " EOXML"; + <option value="$db"$selected>$dbnames->{$db}</option> + EOXML + } + +print << 'EOXML'; + </param> + </xml> +EOXML + +#EFetch output formats + +print << 'EOXML'; + <xml name="efetchdb"> + <conditional name="db"> + <expand macro="dbselect_efetch" /> +EOXML + +foreach my $db (grep {exists($dbs->{$_})} + sort {$dbnames->{$a} cmp $dbnames->{$b}} + keys(%$efetch_dbhash)) + { + print << " EOXML"; + <when value="$db"> + <param name="output_format" type="select" label="Output Format"> + EOXML + + foreach my $eutils_format (sort {$efetch_dbhash->{$db}->{$a} cmp + $efetch_dbhash->{$db}->{$b}} + keys(%{$efetch_dbhash->{$db}})) + { + print << " EOXML"; + <option value="$eutils_format">$efetch_dbhash->{$db}->{$eutils_format}</option> + EOXML + } + + print << " EOXML"; + </param> + </when> + EOXML + } + +print << 'EOXML'; + </conditional> + </xml> +EOXML + +## +## Create a select list for the databases linked *from* +## + +print << 'EOXML'; + <xml name="dbselect" token_name="db_select" token_label="NCBI Database to Query"> + <param name="@NAME@" type="select" label="@LABEL@"> +EOXML + +foreach my $from (@sorted_dblist) + { + print << " EOXML"; + <option value="$from">$dbnames->{$from}</option> + EOXML + } + +print << 'EOXML'; + </param> + </xml> +EOXML + +## +## Create a select list for the databases linked *to* +## + +print << 'EOXML'; + <xml name="dbselect_linked" token_name="db_select_linked" token_label="NCBI Database to Use"> + <param name="@NAME@" type="select" label="@LABEL@"> +EOXML + +foreach my $from (grep {$dbfroms->{$_}} @sorted_dblist) + { + print << " EOXML"; + <option value="$from">$dbnames->{$from}</option> + EOXML + } + +print << 'EOXML'; + </param> + </xml> +EOXML + +## +## Create empty entries for commands that take no *to* database or link +## + +print << 'EOXML'; + <xml name="none_link_macro"> + <conditional name="db_to"> + <param name="db_select_to" type="select" label="To NCBI Database (n/a)"> + <option value="n/a">Not applicable</option> + </param> + <when value="n/a"> + <param name="linkname" type="select" label="Link Name (n/a)"> + <option value="n/a">Not applicable</option> + </param> + </when> + </conditional> + </xml> + <xml name="db_link_macro"> + <conditional name="db_from_link"> + <expand macro="dbselect_linked" name="db_select_from_link" label="From NCBI Database" /> +EOXML + +foreach(grep {$dbfroms->{$_}} @sorted_dblist) + { + print << " EOXML"; + <when value="$_"> + <expand macro="none_link_macro" name="db_select_none" label="To NCBI Database" /> + </when> + EOXML + } + +print << 'EOXML'; + </conditional> + </xml> +EOXML + +## +## This is the master macro for the command selection +## + +print << 'EOXML'; + <xml name="linkmacro"> + <conditional name="cmd"> + <param name="cmd_select" type="select" label="Link Method" help="Fetch UIDs from the 'To' Database that are linked to supplied UIDs in the 'From' database"> + <option value="neighbor" selected="true">Neighbor (neighbor)</option> + <option value="neighbor_history">Neighbor, save result in history server (neighbor_history)</option> + <option value="neighbor_score">Neighbor Score (neighbor_score)</option> + <option value="acheck">Show available links to any database (acheck)</option> + <option value="ncheck">Show available links within the same database (ncheck)</option> + <option value="lcheck">Show available links to external sources (LinkOuts) (lcheck)</option> + <option value="llinks">Show available URLs and attributes for non-library LinkOut providers (llinks)</option> + <option value="llinkslib">Show available URLs and attributes for all LinkOut Providers (llinkslib)</option> + <option value="prlinks">Show available primary LinkOut Provider Links (prlinks)</option> + </param> + <when value="neighbor"> + <expand macro="db_db_link_macro" name="link_select" label="Link name" /> + <param name="output_format" type="select" label="Output Format"> + <option value="xml">ID File (xml)</option> + <option value="json">ID File (json)</option> + <option value="text" selected="true">ID File (tabular)</option> + </param> + </when> + <when value="neighbor_history"> + <expand macro="db_db_link_macro" name="link_select" label="Link name" /> + <param name="output_format" type="select" label="Output Format"> + <option value="json">History File (json)</option> + <option value="xml" selected="true">History File (xml)</option> + </param> + </when> + <when value="neighbor_score"> + <expand macro="db_db_link_macro" name="link_select" label="Link name" /> + <param name="output_format" type="select" label="Output Format"> + <option value="xml">ID File (xml)</option> + <option value="json">ID File (json)</option> + <option value="text" selected="true">ID File (tabular)</option> + </param> + </when> + <when value="acheck"> + <expand macro="db_link_macro" name="db_select_from_link" label="From NCBI Database" /> + <param name="output_format" type="select" label="Output Format"> + <option value="xml" selected="True">Link Description File (xml)</option> + <option value="json">Link Description File (json)</option> + </param> + </when> + <when value="ncheck"> + <expand macro="db_link_macro" name="db_select_from_link" label="From NCBI Database" /> + <param name="output_format" type="select" label="Output Format"> + <option value="xml" selected="True">Link Description File (xml)</option> + <option value="json">Link Description File (json)</option> + </param> + </when> + <when value="lcheck"> + <expand macro="db_link_macro" name="db_select_from_link" label="From NCBI Database" /> + <param name="output_format" type="select" label="Output Format"> + <option value="xml" selected="True">Link Description File (xml)</option> + <option value="json">Link Description File (json)</option> + </param> + </when> + <when value="llinks"> + <expand macro="db_link_macro" name="db_select_from_link" label="From NCBI Database" /> + <param name="output_format" type="select" label="Output Format"> + <option value="xml" selected="True">Link Description File (xml)</option> + <option value="json">Link Description File (json)</option> + </param> + </when> + <when value="llinkslib"> + <expand macro="db_link_macro" name="db_select_from_link" label="From NCBI Database" /> + <param name="output_format" type="select" label="Output Format"> + <option value="xml" selected="true">Link Description File (xml)</option> + <option value="json">Link Description File (json)</option> + </param> + </when> + <when value="prlinks"> + <expand macro="db_link_macro" name="db_select_from_link" label="From NCBI Database" /> + <param name="output_format" type="select" label="Output Format"> + <option value="xml" selected="true">Link Description File (xml)</option> + <option value="json">Link Description File (json)</option> + </param> + </when> + </conditional> + </xml> +EOXML + +## +## Create selections for valid links for command types neighbor, neighbor_history, and neighbor_score +## + +print << 'EOXML'; + <xml name="db_db_link_macro"> + <conditional name="db_from_link"> + <expand macro="dbselect_linked" name="db_select_from_link" label="From NCBI Database" /> +EOXML + +foreach my $from (grep {$dbfroms->{$_}} @sorted_dblist) + { + print STDERR ("Creating Links From: $from\n"); + + print << " EOXML"; + <when value="$from"> + <conditional name="db_to"> + <param name="db_select_to" type="select" label="To NCBI Database"> + EOXML + + my @dbtos = (grep {exists($h->{$from}) && exists($h->{$from}->{$_})} + @sorted_dblist); + foreach(@dbtos) + { + print << " EOXML"; + <option value="$_">$dbnames->{$_}</option> + EOXML + } + if(scalar(@dbtos) == 0) + { + #Provide an option for a self-link: from->from + print << " EOXML"; + <option value="$from">$dbnames->{$from}</option> + EOXML + } + + print << ' EOXML'; + </param> + EOXML + + if(exists($h->{$from})) + { + #There do exist links to invalid(/outdated/non-existant) databases that + #would result in an error if they are selected, so we use the original + #@dblist instead of the keys present in the sub hash of $h->{$from}, and + #then check for existence in the sub-hash + foreach my $to (grep {exists($h->{$from}->{$_})} @sorted_dblist) + { + print STDERR ("\tTo: $to Links: ", + join(',',map {$_->[0]} @{$h->{$from}->{$to}}), + "\n"); + + print << " EOXML"; + <when value="$to"> + <param name="linkname" type="select" label="Link Name"> + <option value="None">All Links</option> + EOXML + + foreach(sort {"$a->[1] ($a->[0])" cmp "$b->[1] ($b->[0])"} + @{$h->{$from}->{$to}}) + { + print << " EOXML"; + <option value="$_->[0]">$_->[1] ($_->[0])</option> + EOXML + } + + print << " EOXML"; + </param> + </when> + EOXML + + } + } + else + { + ## + ## Add-on selections for self-links for command types neighbor, + ## neighbor_history, and neighbor_score + ## Note, I'm not sure this would yield a valid result from elink + ## + + #This shows $from, but this is the 'when' for db_to conditional + print << " EOXML"; + <when value="$from"> + <param name="linkname" type="select" label="Link Name"> + <option value="none">All Links</option> + </param> + </when> + EOXML + } + + print << ' EOXML'; + </conditional> + </when> + EOXML + } + +## +## Add-on selections for self-links for command types neighbor, +## neighbor_history, and neighbor_score +## Note, I'm not sure this would yield a valid result from elink +## + +foreach my $from (grep {!exists($h->{$_})} @sorted_dblist) + { + print << "EOXML"; + <when value=\"$from\"> + <conditional name=\"db_to\"> + <param name=\"db_select_to\" type=\"select\" label=\"To NCBI Database\"> + <option value=\"none\">Not applicable</option> + </param> + <when value=\"none\"> + <param name=\"linkname\" type=\"select\" label=\"Link Name\"> + <option value=\"none\">Not applicable</option> + </param> + </when> + </conditional> + </when> +EOXML + } + +## +## This is the corresponding code for using the selections to add the respective command line options +## + +print << 'EOXML'; + </conditional> + </xml> +EOXML + +print << 'EOXML'; + <token name="@LINK_TOKEN@"> + <![CDATA[ +#if $cmd.db_from_link.db_to.db_select_to == 'n/a': + none +#else: + $cmd.db_from_link.db_to.db_select_to +#end if + +$cmd.db_from_link.db_select_from_link + +$cmd.cmd_select + +#if $cmd.output_format == 'json': + --retmode json +#elif $cmd.output_format == 'text': + --retmode uilist +#else: + --retmode xml +#end if + +#if $cmd.db_from_link.db_to.linkname != 'None' and $cmd.cmd_select in ('neighbor', 'neighbor_history', 'neighbor_score'): + --linkname $cmd.db_from_link.db_to.linkname +#end if + ]]> + </token> +EOXML + +sub startXML + { + print << ' EOXML'; +<?xml version="1.0"?> +<macros> + <token name="@PROFILE@">18.01</token> + <token name="@WRAPPER_VERSION@">1.70</token> + <token name="@EMAIL_ARGUMENTS@"> +--user_email "$__user_email__" +#set admin_emails = ';'.join(str($__admin_users__).split(',')) +--admin_email "$admin_emails" + </token> + <!-- TODO: citation --> + <token name="@REFERENCES@"><![CDATA[ + ]]></token> + <token name="@DISCLAIMER@"><![CDATA[ +Usage Guidelines and Requirements +================================= + +Frequency, Timing, and Registration of E-utility URL Requests +------------------------------------------------------------- + +In order not to overload the E-utility servers, NCBI recommends that users +limit large jobs to either weekends or between 9:00 PM and 5:00 AM Eastern time +during weekdays. Failure to comply with this policy may result in an IP address +being blocked from accessing NCBI. + +Minimizing the Number of Requests +--------------------------------- + +If a task requires searching for and/or downloading a large number of +records, it is much more efficient to use the Entrez History to upload +and/or retrieve these records in batches rather than using separate +requests for each record. Please refer to Application 3 in Chapter 3 +for an example. Many thousands of IDs can be uploaded using a single +EPost request, and several hundred records can be downloaded using one +EFetch request. + + +Disclaimer and Copyright Issues +------------------------------- + +In accordance with requirements of NCBI's E-Utilities, we must provide +the following disclaimer: + +Please note that abstracts in PubMed may incorporate material that may +be protected by U.S. and foreign copyright laws. All persons +reproducing, redistributing, or making commercial use of this +information are expected to adhere to the terms and conditions asserted +by the copyright holder. Transmission or reproduction of protected +items beyond that allowed by fair use (PDF) as defined in the copyright +laws requires the written permission of the copyright owners. NLM +provides no legal advice concerning distribution of copyrighted +materials. Please consult your legal counsel. If you wish to do a large +data mining project on PubMed data, you can enter into a licensing +agreement and lease the data for free from NLM. For more information on +this please see `https://www.nlm.nih.gov/databases/download/data_distrib_main.html <https://www.nlm.nih.gov/databases/download/data_distrib_main.html>`__ + +The `full disclaimer <https://www.ncbi.nlm.nih.gov/home/about/policies/>`__ is available on +their website + +Liability +~~~~~~~~~ + +For documents and software available from this server, the +U.S. Government does not warrant or assume any legal liability or +responsibility for the accuracy, completeness, or usefulness of any +information, apparatus, product, or process disclosed. + +Endorsement +~~~~~~~~~~~ + +NCBI does not endorse or recommend any commercial +products, processes, or services. The views and opinions of authors +expressed on NCBI's Web sites do not necessarily state or reflect those +of the U.S. Government, and they may not be used for advertising or +product endorsement purposes. + +External Links +~~~~~~~~~~~~~~ + +Some NCBI Web pages may provide links to other Internet +sites for the convenience of users. NCBI is not responsible for the +availability or content of these external sites, nor does NCBI endorse, +warrant, or guarantee the products, services, or information described +or offered at these other Internet sites. Users cannot assume that the +external sites will abide by the same Privacy Policy to which NCBI +adheres. It is the responsibility of the user to examine the copyright +and licensing restrictions of linked pages and to secure all necessary +permissions. + ]]></token> + <token name="@LIST_OR_HIST@"> +#if $query_source.qss == "history_json": + --history_file $query_source.history_file +#else if $query_source.qss == "history_xml": + --history_xml $query_source.history_xml +#else if $query_source.qss == "id_file": + --id_list $query_source.id_file +#else if $query_source.qss == "id_list": + --id $query_source.id_list +#else if $query_source.qss == "id_xml": + --id_xml $query_source.id_xml +#else if $query_source.qss == "id_json": + --id_json $query_source.id_json +#end if + </token> + <xml name="list_or_hist"> + <conditional name="query_source"> + <param name="qss" type="select" label="Enter Query IDs by..." help="Files output by ELink or ESearch are acceptable. Query IDs in an ELink result are ignored."> + <option value="history_json">History File (JSON)</option> + <option value="history_xml">History File (XML)</option> + <option value="id_file" selected="True">ID file (Tabular)</option> + <option value="id_xml">ID File (XML)</option> + <option value="id_json">ID File (JSON)</option> + <option value="id_list">Paste IDs</option> + </param> + <when value="history_json"> + <param label="History File (JSON)" name="history_file" type="data" format="json" help="A JSON file containing the WebEnv ID and Query Key referencing the search on the NCBI history server"/> + </when> + <when value="history_xml"> + <param label="History File (XML)" name="history_xml" type="data" format="xml" help="An XML file containing the WebEnv ID and Query Key referencing the search on the NCBI history server"/> + </when> + <when value="id_file"> + <param label="ID File (Text)" name="id_file" type="data" format="text,tabular" help="A Text file containing one ID per line"/> + </when> + <when value="id_xml"> + <param label="ID File (XML)" name="id_xml" type="data" format="xml" help="ESearch or ELink Result XML file"/> + </when> + <when value="id_json"> + <param label="ID File (JSON)" name="id_json" type="data" format="json" help="ESearch or ELink Result JSON file"/> + </when> + <when value="id_list"> + <param label="Paste ID List" name="id_list" type="text" area="true" help="Newline/Comma separated list of IDs"/> + </when> + </conditional> + </xml> + <xml name="citations"> + <citations> + <citation type="bibtex">@Book{ncbiEutils, + author = {Eric Sayers}, + title = {Entrez Programming Utilities Help}, + year = {2010}, + publisher = {National Center for Biotechnology Information, Bethesda, Maryland}, + note = {https://www.ncbi.nlm.nih.gov/books/NBK25500/} + }</citation> + </citations> + </xml> + <xml name="requirements"> + <requirements> + <requirement type="package" version="1.70">biopython</requirement> + </requirements> + </xml> + <token name="@EFETCH_FORMAT_TOKEN@"> + <![CDATA[ + + ## This token must go at the end of the efetch command + + #set rettype, retmode, format = str($db.output_format).split('-') + + #if retmode != "none": + --retmode $retmode + #end if + ## Otherwise, defaults to a None/empty which implies 'default' to NCBI + + #if rettype != "none": + --rettype $rettype + #end if + + --galaxy_format $format + + ]]> + </token> + EOXML + } + +sub endXML + { + print << ' EOXML'; +</macros> + EOXML + } + +BEGIN {startXML()} +END {endXML()} + + +## +## Output formats for efetch mapped to galaxy formats +## + +#Based on: +#https://www.ncbi.nlm.nih.gov/books/NBK25499/table/chapter4.T._valid_values_of__retmode_and/?report=objectonly + +#Note: While json works for esearch and elink, the only database that supports +#json (according to an NLM support ticket I have about this) is snp + +#The output_format param value for these will be "rettype-retmode-format" + +#db galaxy retmode rettype format_name +__DATA__ +bioproject tabular text uilist List of UIDs +bioproject xml xml docsum Document summary +bioproject xml xml uilist List of UIDs +bioproject xml xml xml Full record +biosample tabular text uilist List of UIDs +biosample txt text full Full record +biosample xml xml docsum Document summary +biosample xml xml full Full record +biosample xml xml uilist List of UIDs +biosystems tabular text uilist List of UIDs +biosystems xml xml docsum Document summary +biosystems xml xml uilist List of UIDs +biosystems xml xml xml Full record +clinvar tabular text uilist List of UIDs +clinvar xml xml clinvarset ClinVar Set +clinvar xml xml docsum Document summary +clinvar xml xml uilist List of UIDs +clinvar xml none none Full +gds tabular text uilist List of UIDs +gds txt text summary Summary +gds xml xml docsum Document summary +gds xml xml uilist List of UIDs +gds xml none none Full +gene txt text gene_table Gene table +gene tabular text uilist List of UIDs +gene txt asn.1 none text ASN.1 +gene xml xml docsum Document summary +gene xml xml none Full +gene xml xml uilist List of UIDs +gtr tabular text uilist List of UIDs +gtr xml xml docsum Document summary +gtr xml xml gtracc GTR Test Report +gtr xml xml uilist List of UIDs +gtr xml none none Full +homologene fasta text fasta FASTA +homologene tabular text alignmentscores Alignment scores +homologene tabular text uilist List of UIDs +homologene txt asn.1 none text ASN.1 +homologene txt text homologene HomoloGene +homologene xml xml docsum Document summary +homologene xml xml none Full +homologene xml xml uilist List of UIDs +mesh tabular text uilist List of UIDs +mesh txt text full Full record +mesh xml xml docsum Document summary +mesh xml xml uilist List of UIDs +nlmcatalog tabular text uilist List of UIDs +nlmcatalog txt text none Full record +nlmcatalog xml xml docsum Document summary +nlmcatalog xml xml none Full +nlmcatalog xml xml uilist List of UIDs +nuccore binary asn.1 none binary ASN.1 +nuccore fasta text fasta FASTA +nuccore fasta text fasta_cds_aa CDS protein FASTA +nuccore fasta text fasta_cds_na CDS nucleotide FASTA +nuccore genbank text gb GenBank flat file +nuccore genbank text gbwithparts GenBank flat file with full sequence (contigs) +nuccore tabular text acc Accession number(s) +nuccore txt text ft Feature table +nuccore tabular text seqid SeqID string +nuccore tabular text uilist List of UIDs +nuccore txt text none text ASN.1 +nuccore xml xml docsum Document summary +nuccore xml xml fasta TinySeq +nuccore xml xml gb GBSeq +nuccore xml xml gbc INSDSeq +nuccore xml xml native Full record +nuccore xml xml uilist List of UIDs +nucest binary asn.1 none binary ASN.1 +nucest fasta text fasta FASTA +nucest genbank text gb GenBank flat file +nucest tabular text acc Accession number(s) +nucest tabular text seqid SeqID string +nucest tabular text uilist List of UIDs +nucest txt text est EST report +nucest txt text none text ASN.1 +nucest xml xml docsum Document summary +nucest xml xml fasta TinySeq +nucest xml xml gb GBSeq +nucest xml xml gbc INSDSeq +nucest xml xml native Full record +nucest xml xml uilist List of UIDs +nucgss binary asn.1 none binary ASN.1 +nucgss fasta text fasta FASTA +nucgss genbank text gb GenBank flat file +nucgss tabular text acc Accession number(s) +nucgss tabular text seqid SeqID string +nucgss tabular text uilist List of UIDs +nucgss txt text gss GSS report +nucgss txt text none text ASN.1 +nucgss xml xml docsum Document summary +nucgss xml xml fasta TinySeq +nucgss xml xml gb GBSeq +nucgss xml xml gbc INSDSeq +nucgss xml xml native Full record +nucgss xml xml uilist List of UIDs +pmc tabular text uilist List of UIDs +pmc txt text medline MEDLINE +pmc xml xml docsum Document summary +pmc xml xml none FULL +pmc xml xml uilist List of UIDs +popset binary asn.1 none binary ASN.1 +popset fasta text fasta FASTA +popset genbank text gb GenBank flat file +popset tabular text acc Accession number(s) +popset tabular text seqid SeqID string +popset tabular text uilist List of UIDs +popset txt text none text ASN.1 +popset xml xml docsum Document summary +popset xml xml fasta TinySeq +popset xml xml gb GBSeq +popset xml xml gbc INSDSeq +popset xml xml native Full record +popset xml xml uilist List of UIDs +protein binary asn.1 none binary ASN.1 +protein fasta text fasta FASTA +protein tabular text acc Accession number(s) +protein txt text ft Feature table +protein tabular text seqid SeqID string +protein tabular text uilist List of UIDs +protein txt text gp GenPept flat file +protein txt text none text ASN.1 +protein xml xml docsum Document summary +protein xml xml fasta TinySeq +protein xml xml gp GBSeq +protein xml xml gpc INSDSeq +protein xml xml ipg Identical Protein +protein xml xml native Full record +protein xml xml uilist List of UIDs +pubmed tabular text uilist List of UIDs +pubmed txt asn.1 none text ASN.1 +pubmed txt text abstract Abstract +pubmed txt text medline MEDLINE +pubmed xml xml docsum Document summary +pubmed xml xml none Full +pubmed xml xml uilist List of UIDs +sequences fasta text fasta FASTA +sequences tabular text acc Accession number(s) +sequences tabular text seqid SeqID string +sequences tabular text uilist List of UIDs +sequences txt text none text ASN.1 +sequences xml xml docsum Document summary +sequences xml xml uilist List of UIDs +sequences xml none none Full +snp fasta text fasta FASTA +snp json json docsum Document summary +snp json json uilist List of UIDs +snp tabular text ssexemplar SS Exemplar list +snp tabular text uilist List of UIDs +snp txt asn.1 none text ASN.1 +snp txt text chr Chromosome report +snp txt text docset Summary +snp txt text flt Flat file +snp txt text rsr RS Cluster report +snp xml xml docsum Document summary +snp xml xml none XML +snp xml xml uilist List of UIDs +sra tabular text uilist List of UIDs +sra xml xml docsum Document summary +sra xml xml full Full +taxonomy tabular text uilist List of UIDs +taxonomy xml xml none Full +taxonomy xml xml docsum Document summary +taxonomy xml xml uilist List of UIDs