:- use_module(library(lib)). :- lib(options). :- lib(debug_call). :- lib(stoics_lib:known/1). % local :- ensure_loaded(bio_db_build_organism). bio_db_taxo_defaults([org(hs)]). /** bio_db_taxo(-Org, -Tax, +Opts). bio_db_taxo(+Org, -Tax). Tax-onomy is the NCBI tax_id of bio_db Org-anism. In the /2 version Org is returned in the canonical name (via bio_db_organism/2). Opts * debug(Dbg=false) informational, progress messages * org(Org=hs) any recognised alias for the organism Examples == ?- bio_db_taxo(Org, Tax, []). Org = human, Tax = 9606. ?- bio_db_taxo(hs, Tax). Tax = 9606. ?- bio_db_taxo(Org, Tax, [org(gallus)]). Org = chicken, Tax = 9031. == @author nicos angelopoulos @version 0.1 2024/03/27 @see bio_db_organism/2 */ bio_db_taxo( Org, Tax, Args ) :- Self = bio_db_taxo, options_append( Self, Args, Opts ), options( org(KnownAs), Opts ), bio_db_organism( KnownAs, Org ), known( bio_db_canon_taxo(Org,Tax) ). bio_db_taxo( KnownAs, Tax ) :- bio_db_organism( KnownAs, Org ), known( bio_db_canon_taxo(Org,Tax) ). % fixme: ideally we want to hook this to NCBI taxonomy (see organism=multi) bio_db_canon_taxo(chicken, 9031). bio_db_canon_taxo(human, 9606). bio_db_canon_taxo(mouse, 10090). bio_db_canon_taxo(pig, 9823).