tooluniverse-sequence-retrieval

Retrieve DNA/RNA/protein sequences from NCBI and ENA with disambiguation. Quality hierarchy: RefSeq (NM_/NP_) > RefSeq predicted (XM_/XP_) > GenBank submissions. Use for fetching specific sequences by accession, gene-symbol-to-sequence lookup, transcript-isoform retrieval, and curated-vs-raw-submiss

By mims-harvard · 1,640 installs

npx skills add mims-harvard/tooluniverse --skill tooluniverse-sequence-retrieval

Source repository · Upstream listing

Biological Sequence Retrieval Retrieve DNA, RNA, and protein sequences with proper disambiguation and cross database handling. IMPORTANT : Always use English terms in tool calls. Only try original language terms as fallback. Respond in the user's language. LOOK UP DON'T GUESS : Never assume accession numbers or sequence versions. Always retrieve and verify from NCBI or ENA. Domain Reasoning Sequence quality hierarchy: RefSeq (NM /NP = curated) RefSeq predicted (XM /XP ) GenBank (submitted). Prefer the MANE Select transcript for human canonical isoforms. Check version numbers annotations improve across versions. Workflow Phase 0: Clarification (When Needed) Ask ONLY if: gene exists in multiple organisms, sequence type unclear, or strain matters. Skip for: specific accessions, clear organism+gene combos, complete genome requests with organism. Phase 1: Gene/Organism Disambiguation Accession Type Decision Tree Prefix Type Use With NC /NM /NR /NP /XM RefSeq NCBI only U /M /K /X /CP /NZ GenBank NCBI or ENA EMBL format EMBL ENA preferred CRITICAL : Never try ENA tools with RefSeq accessions they return 404. Identity Checklist Organism confirmed (scientific name) Gene symbol/name identified Sequence type determined (genomic/mRNA/protein) Accession prefix identified for tool selection Phase 2: Data Retrieval (Internal) Retrieve silently. Do NOT narrate the search process. Fallback Chains Primary Fallback Notes NCBI get sequence ENA (if GenBank format) NCBI unavailable ena get entry NCBI get sequence ENA doesn't have RefSeq NCBI search nucleotide Try broader keywords No results NCBI get sequence / ena get sequence fasta dbfetch fetch entry (db="refseqn"/"ena sequence") Both NCBI and ENA specific tools unavailable; dbfetch mirrors the same underlying records Phase 3: Report Sequence Profile Present as a Sequence Profile Report . Hide search process. Include: 1. Search Summary : query, database, result count 2. Primary Sequence : accession, type (RefSeq/GenBank), organism, strain, length, molecule, topology, curation level 3. Sequence Preview : first lines of FASTA (truncated) 4. Annotations Summary : CDS/tRNA/rRNA/regulatory feature counts (from GenBank format) 5. Alternative Sequences : ranked by relevance and curation, with ENA compatibility 6. Cross Database References : RefSeq, GenBank, ENA/EMBL, BioProject, BioSample 7. Download Options : FASTA (for BLAST/alignment), GenBank (for annotation) Curation Level Tiers Tier Prefix Description RefSeq Reference (best) NC , NM , NP NCBI curated, gold standard RefSeq Predicted XM , XP , XR Computationally predicted GenBank Validated Various Submitted, some curation GenBank Direct Various Direct submission Third Party TPA Third party annotation Reasoning Framework Sequence quality : Prefer RefSeq over GenBank. Check version numbers. Sequences with "PREDICTED" in definition are not experimentally validated. Accession guidance : RefSeq = NCBI only. GenBank = mirrored in ENA/EMBL. Default to RefSeq mRNA (NM ) for human/model organisms; most complete genome assembly for microbial queries. Cross database reconciliation : Same sequence may have different accessions (e.g., GenBank U00096 = RefSeq NC 000913 for E. coli K 12). Always report both when available. Discrepancies between GenBank/RefSeq typically indicate RefSeq curation corrected submission errors. Synthesis Questions 1. What is the highest quality accession available? 2. Are there alternative accessions in other databases? 3. What is the annotation completeness? 4. Is the sequence from the expected organism/strain? 5. What download format suits the user's downstream analysis? Error Handling Error Response "No search criteria provided" Add organism, gene, or keywords "ENA 404 error" Likely RefSeq use NCBI only "No results found" Broaden search, check spelling, try synonyms "Sequence too large" Note size, provide download link instead Tool Reference NCBI Tools : NCBI search nucleotide (search), NCBI fetch accessions (UID→accession), NCBI get sequence (retrieve) ENA Tools (GenBank/EMBL only) : ena get entry (metadata), ena get sequence fasta (FASTA), ena get entry summary (summary) Search Parameters Reference NCBI search nucleotide : operation ="search", organism (scientific name), gene (symbol), strain , keywords , seq type (complete genome/mrna/refseq), limit NCBI get sequence : operation ="fetch sequence", accession , format (fasta/genbank) Whole Organism Reference Proteomes (UniProt) A different granularity from Phases 1 3 above: src/tooluniverse/data/uniprot ref tools.json 's UniProtRef search proteomes / UniProtRef get proteome (no API key required) return organism LEVEL proteome metadata — total protein count, chromosome/component breakdown, genome accession — not one sequence. Reach for these when the question is "what is species X's reference proteome and how big is it" (e.g. before a proteome wide analysis, or to find the right genome assembly accession to hand to Phase 2 above), not for fetching an individual gene/transcript sequence. Tool Resolves Key output UniProtRef search proteomes organism name/taxon ID matching proteome ID(s) id ( UPXXXXXXXXX ), organism , taxon id , proteome type (Reference/Non Reference), protein count UniProtRef get proteome one proteome ID full organism/assembly detail organism.scientific name / taxon id , components[] ( name , protein count , genome accession ), total protein count Real example chain (verified live): UniProtRef search proteomes {"query": "SARS CoV 2"} 3 results, including UP000464024 ( proteome type: "Reference proteome" , 17 proteins) alongside two "Non Reference proteome" entries for the same organism (5 and 10 proteins) — always check proteome type and prefer "Reference proteome" rather than assuming the first hit is canonical. Feeding UP000464024 into UniProtRef get proteome confirms components: [{"name": "Segment", "protein count": 17, "genome accession": "MN908947"}] (the real SARS CoV 2 reference genome accession) and total protein count: 17 . For human ( UP000005640 ) and E. coli K 12 ( UP000000625 ), get proteome returns per chromosome/plasmid component breakdowns the same way. Registry duplication, verified live: UniProt search proteomes (in src/tooluniverse/data/uniprot proteomes tools.json , hitting rest.uniprot.org/proteomes/search directly) does the SAME search as UniProtRef search proteomes above, but is a separate, older tool implementation. Its advantage: one call returns the full rich record (BUSCO completeness, genome assembly, per component protein counts, full citation list) that UniProtRef search proteomes requires a second UniProtRef get proteome call to obtain — verified live on organism name: human , organism name:escherichia coli , organism name:mouse , all 3 returning the full nested object in one shot. If you only need the ID or proteomeType for triage, either tool works; if you need full detail immediately, prefer UniProt search proteomes and skip the follow up call. Sequence Archive and Clustering (UniParc, UniRef) A different question again from Phases 1 3 and the proteome tools above: "has this exact sequence been seen before, and under how many accessions," and "what other sequences are near identical to this one." Tool Answers Key params UniParc search Find all UPI archive entries for a gene/organism/keyword query (UniProt query syntax, e.g. "gene:EGFR AND organism id:9606" ), size UniParc get entry Full sequence + every UniProt accession that ever pointed to this exact sequence, across every database load upi UniRef search clusters Find sequence similarity clusters for a gene/organism/keyword query , cluster type (UniRef100/90/50), size UniRef get cluster Cluster detail: member count, representative sequence, common taxon cluster id (e.g. UniRef90 P00533 ) Real example (verified live, EGFR/human): UniParc search {"query": "gene:EGFR AND organism id:9606", "size": 3} 3 distinct UPI entries, each with a different set of UniProt accessions ( Q8NDU8.1 , Q9BZS2.1 , Q9UMG5.1 ) and different oldest created dates — UniParc treats each unique amino acid string as one entry regardless of which UniProt accession(s) submitted it, so isoforms/fragments with distinct sequences get distinct UPIs even though they share a gene name. UniRef get cluster {"cluster id": "UniRef90 P00533"} a real 119 member cluster spanning Boreoeutheria (the common ancestor taxon), with a representative member ( EGFR HUMAN , 1210 aa) that carries 9+ merged UniProtKB accessions ( P00533 , O00688 , ...) — note the seed id ( UPI0005F3CCCC , a UniParc ID) and representative member are not always the same sequence. Use UniParc when the question is "which UniProt accessions actually share this exact sequence" (deduplication); use UniRef when the question is "what else looks like this sequence at X% identity" (finding related proteins across species for MSA/phylogenetics input, or reducing redundancy before a proteome wide analysis). Subcellular Location Vocabulary (UniProt Locations) UniProtLocations search / UniProtLocations get location resolve UniProt's controlled subcellular location vocabulary (organelles, membranes, topology, orientation) by ID ( SL XXXX ) or free text search. Real gotcha, verified live: the common term "plasma membrane" does NOT surface UniProt's actual term for it — UniProt's controlled vocabulary calls this location "Cell membrane" ( SL 0039 ), not "Plasma membrane." Searching "plasma membrane" or "Plasma membrane" returns only tangentially related hits (e.g. SL 0552 "Rhabdomere membrane," whose definition happens to mention "plasma membrane," not the term itself). Search a broader, UniProt native term ( "membrane" , "cell" ) and scan the results rather than assuming your everyday biology term matches UniProt's naming — this is a real vocabulary mismatch, not a search bug. Sample Metadata (EBI BioSamples) BioSamples search / BioSamples search by filter / BioSamples get sample / BioSamples get relationships / BioSamples get facets query EBI's 60M+ sample metadata archive (organism, tissue, disease, experimental context) for samples that back sequencing/omics submissions — a different layer from the sequence itself, useful for "what samples exist for condition X" before going to ENA/SRA for the actual data. Real gotcha, verified live: BioSamples search with a multi word phrase ( "EGFR lung adenocarcinoma" ) returned zero results, while the single term "EGFR" returned real hits immediately — the search does not implicitly AND multiple free text words the way a search engine would. Use one keyword at a time, or use BioSamples search by filter (structured attribute / value pairs, e.g. attribute="organism", value="Homo sapiens" ) when you need to combine multiple real constraints. get facets is useful up front to discover which attribute values actually exist before filtering on one (verified live: returns real facet counts, e.g. 432,302 samples for a broad text query). Organism Taxonomy (EBI Taxonomy) EBITaxonomy get by id / get by scientific name / search by name / suggest resolve organism names/IDs (NCBI Taxonomy, mirrored by EBI) — lineage, rank, division, genetic code. Use search by name for common names ("mouse," "fruit fly") and suggest for type ahead partial matching; get by scientific name / get by id for an exact, already known name/ID. Verified live: Homo sapiens tax id: "9606" , full lineage string "Eukaryota; Metazoa; Chordata; ... Ho