diff --git a/docs/multitax.html b/docs/multitax.html index 505a642..e8bf787 100644 --- a/docs/multitax.html +++ b/docs/multitax.html @@ -131,7 +131,7 @@
__version__ = "1.3.0" +__version__ = "1.3.1" __all__ = ( 'CustomTx', diff --git a/docs/multitax/multitax.html b/docs/multitax/multitax.html index 440005f..2889428 100644 --- a/docs/multitax/multitax.html +++ b/docs/multitax/multitax.html @@ -500,10 +500,6 @@if isinstance(nodes, str): nodes = [nodes] - # Cannot filter root node - if self.root_node in nodes: - raise ValueError("Root node [" + self.root_node + "] cannot be filtered.") - # Keep track of nodes to be filtered out filtered_nodes = set(self._nodes) # Always keep root @@ -512,7 +508,7 @@
if desc: # Keep descendants of the given nodes for node in nodes: - # Check if node exists + # Check if node exists (skips root) if node in filtered_nodes: # For each leaf of the selected nodes for leaf in self.leaves(node): @@ -536,7 +532,6 @@
# Delete aux. data structures self._reset_aux_data() - self.check_consistency() def latest(self, node: str): @@ -1212,10 +1207,6 @@
if isinstance(nodes, str): nodes = [nodes] - # Cannot filter root node - if self.root_node in nodes: - raise ValueError("Root node [" + self.root_node + "] cannot be filtered.") - # Keep track of nodes to be filtered out filtered_nodes = set(self._nodes) # Always keep root @@ -1224,7 +1215,7 @@
if desc: # Keep descendants of the given nodes for node in nodes: - # Check if node exists + # Check if node exists (skips root) if node in filtered_nodes: # For each leaf of the selected nodes for leaf in self.leaves(node): @@ -1248,7 +1239,6 @@
# Delete aux. data structures self._reset_aux_data() - self.check_consistency() def latest(self, node: str): @@ -1715,7 +1705,7 @@
@@ -2041,10 +2031,6 @@diff --git a/docs/search.js b/docs/search.js index 79bba77..61b90dd 100644 --- a/docs/search.js +++ b/docs/search.js @@ -1,6 +1,6 @@ window.pdocSearch = (function(){ /** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;uif isinstance(nodes, str): nodes = [nodes] - # Cannot filter root node - if self.root_node in nodes: - raise ValueError("Root node [" + self.root_node + "] cannot be filtered.") - # Keep track of nodes to be filtered out filtered_nodes = set(self._nodes) # Always keep root @@ -2053,7 +2039,7 @@
if desc: # Keep descendants of the given nodes for node in nodes: - # Check if node exists + # Check if node exists (skips root) if node in filtered_nodes: # For each leaf of the selected nodes for leaf in self.leaves(node): @@ -2077,7 +2063,6 @@
# Delete aux. data structures self._reset_aux_data() - self.check_consistency()
0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e 1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();o \n"}, {"fullname": "multitax.CustomTx", "modulename": "multitax", "qualname": "CustomTx", "type": "class", "doc": "\n", "bases": "multitax.multitax.MultiTax"}, {"fullname": "multitax.CustomTx.__init__", "modulename": "multitax", "qualname": "CustomTx.__init__", "type": "function", "doc": " CustomTx()
\n\nParameters:
\n\n\n
\n\n- cols [list, dict]: List of fields to be parsed or a dictionary with {field: column index}. Options: \"node\", \"parent\", \"rank\", \"name\"
\n- sep [str]: Separator of fields
\n- **kwargs defined at
\nmultitax.multitax.MultiTax
Example:
\n\n\n", "signature": "(\n self,\n cols: list = ['node', 'parent', 'rank', 'name'],\n sep: str = '\\t',\n **kwargs\n)", "funcdef": "def"}, {"fullname": "multitax.DummyTx", "modulename": "multitax", "qualname": "DummyTx", "type": "class", "doc": "\n", "bases": "multitax.multitax.MultiTax"}, {"fullname": "multitax.DummyTx.__init__", "modulename": "multitax", "qualname": "DummyTx.__init__", "type": "function", "doc": "tax_custom1 = CustomTx(files=\"my_custom_tax.tsv\", cols=[\"node\",\"parent\",\"rank\"])\ntax_custom2 = CustomTx(files=\"my_custom_tax.tsv\", cols={\"node\": 0, \"parent\": 1, \"name\": 5, \"rank\": 3})\n
DummyTx() - Dummy empty taxonomy
\n\nParameters:
\n\n\n
\n", "signature": "(self, **kwargs)", "funcdef": "def"}, {"fullname": "multitax.GreengenesTx", "modulename": "multitax", "qualname": "GreengenesTx", "type": "class", "doc": "\n", "bases": "multitax.multitax.MultiTax"}, {"fullname": "multitax.GreengenesTx.__init__", "modulename": "multitax", "qualname": "GreengenesTx.__init__", "type": "function", "doc": "- **kwargs defined at
\nmultitax.multitax.MultiTax
Main constructor of MultiTax and sub-classes
\n\nParameters:
\n\n\n
\n\n- files [str, list]: One or more local files to parse.
\n- urls [str, list]: One or more urls to download and parse.
\n- output_prefix [str]: Directory to write downloaded files.
\n- root_node [str]: Define an alternative root node.
\n- root_parent [str]: Define the root parent node identifier.
\n- root_name [str]: Define an alternative root name. Set to None to use original name.
\n- root_rank [str]: Define an alternative root rank. Set to None to use original name.
\n- undefined_node [str]: Define a default return value for undefined nodes.
\n- undefined_name [str]: Define a default return value for undefined names.
\n- undefined_rank [str]: Define a default return value for undefined ranks.
\n- build_node_children [bool]: Build node,children dict (otherwise it will be created on first use).
\n- build_name_nodes [bool]: Build name,nodes dict (otherwise it will be created on first use).
\n- build_rank_nodes [bool]: Build rank,nodes dict (otherwise it will be created on first use).
\n- extended_names [bool]: Parse extended names if available.
\nExample:
\n\n\n", "signature": "(self, **kwargs)", "funcdef": "def"}, {"fullname": "multitax.GtdbTx", "modulename": "multitax", "qualname": "GtdbTx", "type": "class", "doc": "\n", "bases": "multitax.multitax.MultiTax"}, {"fullname": "multitax.GtdbTx.__init__", "modulename": "multitax", "qualname": "GtdbTx.__init__", "type": "function", "doc": "tax_ncbi = NcbiTx()\ntax_gtdb = GtdbTx(files=[\"file1.gz\", \"file2.txt\"])\ntax_silva = SilvaTx(urls=[\"https://www.arb-silva.de/fileadmin/silva_databases/current/Exports/taxonomy/tax_slv_lsu_138.1.txt.gz\"])\ntax_ott = OttTx(root_node=\"844192\")\ntax_gg = GreengenesTx(output_prefix=\"save/to/prefix_\")\n
Main constructor of MultiTax and sub-classes
\n\nParameters:
\n\n\n
\n\n- files [str, list]: One or more local files to parse.
\n- urls [str, list]: One or more urls to download and parse.
\n- output_prefix [str]: Directory to write downloaded files.
\n- root_node [str]: Define an alternative root node.
\n- root_parent [str]: Define the root parent node identifier.
\n- root_name [str]: Define an alternative root name. Set to None to use original name.
\n- root_rank [str]: Define an alternative root rank. Set to None to use original name.
\n- undefined_node [str]: Define a default return value for undefined nodes.
\n- undefined_name [str]: Define a default return value for undefined names.
\n- undefined_rank [str]: Define a default return value for undefined ranks.
\n- build_node_children [bool]: Build node,children dict (otherwise it will be created on first use).
\n- build_name_nodes [bool]: Build name,nodes dict (otherwise it will be created on first use).
\n- build_rank_nodes [bool]: Build rank,nodes dict (otherwise it will be created on first use).
\n- extended_names [bool]: Parse extended names if available.
\nExample:
\n\n\n", "signature": "(self, **kwargs)", "funcdef": "def"}, {"fullname": "multitax.NcbiTx", "modulename": "multitax", "qualname": "NcbiTx", "type": "class", "doc": "\n", "bases": "multitax.multitax.MultiTax"}, {"fullname": "multitax.NcbiTx.__init__", "modulename": "multitax", "qualname": "NcbiTx.__init__", "type": "function", "doc": "tax_ncbi = NcbiTx()\ntax_gtdb = GtdbTx(files=[\"file1.gz\", \"file2.txt\"])\ntax_silva = SilvaTx(urls=[\"https://www.arb-silva.de/fileadmin/silva_databases/current/Exports/taxonomy/tax_slv_lsu_138.1.txt.gz\"])\ntax_ott = OttTx(root_node=\"844192\")\ntax_gg = GreengenesTx(output_prefix=\"save/to/prefix_\")\n
Main constructor of MultiTax and sub-classes
\n\nParameters:
\n\n\n
\n\n- files [str, list]: One or more local files to parse.
\n- urls [str, list]: One or more urls to download and parse.
\n- output_prefix [str]: Directory to write downloaded files.
\n- root_node [str]: Define an alternative root node.
\n- root_parent [str]: Define the root parent node identifier.
\n- root_name [str]: Define an alternative root name. Set to None to use original name.
\n- root_rank [str]: Define an alternative root rank. Set to None to use original name.
\n- undefined_node [str]: Define a default return value for undefined nodes.
\n- undefined_name [str]: Define a default return value for undefined names.
\n- undefined_rank [str]: Define a default return value for undefined ranks.
\n- build_node_children [bool]: Build node,children dict (otherwise it will be created on first use).
\n- build_name_nodes [bool]: Build name,nodes dict (otherwise it will be created on first use).
\n- build_rank_nodes [bool]: Build rank,nodes dict (otherwise it will be created on first use).
\n- extended_names [bool]: Parse extended names if available.
\nExample:
\n\n\n", "signature": "(self, **kwargs)", "funcdef": "def"}, {"fullname": "multitax.NcbiTx.latest", "modulename": "multitax", "qualname": "NcbiTx.latest", "type": "function", "doc": "tax_ncbi = NcbiTx()\ntax_gtdb = GtdbTx(files=[\"file1.gz\", \"file2.txt\"])\ntax_silva = SilvaTx(urls=[\"https://www.arb-silva.de/fileadmin/silva_databases/current/Exports/taxonomy/tax_slv_lsu_138.1.txt.gz\"])\ntax_ott = OttTx(root_node=\"844192\")\ntax_gg = GreengenesTx(output_prefix=\"save/to/prefix_\")\n
Returns latest/updated version of a given node.\nIf node is already the latests, returns itself.\nMainly used for NCBI (merged.dmp) and OTT (forwards.tsv)
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.NcbiTx.merged", "modulename": "multitax", "qualname": "NcbiTx.merged", "type": "function", "doc": "Returns relative entry from the merged.dmp file of a given node.
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.NcbiTx.search_name", "modulename": "multitax", "qualname": "NcbiTx.search_name", "type": "function", "doc": "Search node by exact or partial name.
\n\nDefault order (can be skipped with force_extended=True):
\n\n1) Search names defined as \"scientific name\" on nodes.dmp
\n\n2) If nothing was found, search text in all other categories (must be activated with NcbiTx(extended_names=True))
\n\nParameters:
\n\n\n
\n\n- text [str]: Text to search.
\n- rank [str]: Filter results by rank.
\n- exact [bool]: Exact or partial name search (both case sensitive).
\n- force_extended [bool]: Search for text in all categories at once.
\nReturns: list of matching nodes
\n", "signature": "(\n self,\n text: str,\n rank: str = None,\n exact: bool = True,\n force_extended: bool = False\n)", "funcdef": "def"}, {"fullname": "multitax.NcbiTx.stats", "modulename": "multitax", "qualname": "NcbiTx.stats", "type": "function", "doc": "Returns a dict with general numbers of the taxonomic tree
\n\nExample:
\n\n\n", "signature": "(self)", "funcdef": "def"}, {"fullname": "multitax.OttTx", "modulename": "multitax", "qualname": "OttTx", "type": "class", "doc": "\n", "bases": "multitax.multitax.MultiTax"}, {"fullname": "multitax.OttTx.__init__", "modulename": "multitax", "qualname": "OttTx.__init__", "type": "function", "doc": "from pprint import pprint\nfrom multitax import GtdbTx\ntax = GtdbTx()\n\npprint(tax.stats())\n{'leaves': 30238,\n 'names': 42739,\n 'nodes': 42739,\n 'ranked_leaves': Counter({'species': 30238}),\n 'ranked_nodes': Counter({'species': 30238,\n 'genus': 8778,\n 'family': 2323,\n 'order': 930,\n 'class': 337,\n 'phylum': 131,\n 'domain': 1,\n 'root': 1}),\n 'ranks': 42739}\n
Main constructor of MultiTax and sub-classes
\n\nParameters:
\n\n\n
\n\n- files [str, list]: One or more local files to parse.
\n- urls [str, list]: One or more urls to download and parse.
\n- output_prefix [str]: Directory to write downloaded files.
\n- root_node [str]: Define an alternative root node.
\n- root_parent [str]: Define the root parent node identifier.
\n- root_name [str]: Define an alternative root name. Set to None to use original name.
\n- root_rank [str]: Define an alternative root rank. Set to None to use original name.
\n- undefined_node [str]: Define a default return value for undefined nodes.
\n- undefined_name [str]: Define a default return value for undefined names.
\n- undefined_rank [str]: Define a default return value for undefined ranks.
\n- build_node_children [bool]: Build node,children dict (otherwise it will be created on first use).
\n- build_name_nodes [bool]: Build name,nodes dict (otherwise it will be created on first use).
\n- build_rank_nodes [bool]: Build rank,nodes dict (otherwise it will be created on first use).
\n- extended_names [bool]: Parse extended names if available.
\nExample:
\n\n\n", "signature": "(self, **kwargs)", "funcdef": "def"}, {"fullname": "multitax.OttTx.forwards", "modulename": "multitax", "qualname": "OttTx.forwards", "type": "function", "doc": "tax_ncbi = NcbiTx()\ntax_gtdb = GtdbTx(files=[\"file1.gz\", \"file2.txt\"])\ntax_silva = SilvaTx(urls=[\"https://www.arb-silva.de/fileadmin/silva_databases/current/Exports/taxonomy/tax_slv_lsu_138.1.txt.gz\"])\ntax_ott = OttTx(root_node=\"844192\")\ntax_gg = GreengenesTx(output_prefix=\"save/to/prefix_\")\n
Returns relative entry from the forwards.tsv file of a given node.
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.OttTx.latest", "modulename": "multitax", "qualname": "OttTx.latest", "type": "function", "doc": "Returns latest/updated version of a given node.\nIf node is already the latests, returns itself.\nMainly used for NCBI (merged.dmp) and OTT (forwards.tsv)
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.OttTx.search_name", "modulename": "multitax", "qualname": "OttTx.search_name", "type": "function", "doc": "Search node by exact or partial name.
\n\nDefault order (can be skipped with force_extended=True):
\n\n1) Search default names defined on \"taxonomy.tsv\"
\n\n2) If nothing was found, search in all other names defined on \"synonyms.tsv\" (must be activated with OttTx(extended_names=True))
\n\nParameters:
\n\n\n
\n\n- text [str]: Text to search.
\n- rank [str]: Filter results by rank.
\n- exact [bool]: Exact or partial name search (both case sensitive).
\n- force_extended [bool]: Search for text in all categories at once.
\nReturns: list of matching nodes
\n", "signature": "(\n self,\n text: str,\n rank: str = None,\n exact: bool = True,\n force_extended: bool = False\n)", "funcdef": "def"}, {"fullname": "multitax.OttTx.stats", "modulename": "multitax", "qualname": "OttTx.stats", "type": "function", "doc": "Returns a dict with general numbers of the taxonomic tree
\n\nExample:
\n\n\n", "signature": "(self)", "funcdef": "def"}, {"fullname": "multitax.SilvaTx", "modulename": "multitax", "qualname": "SilvaTx", "type": "class", "doc": "\n", "bases": "multitax.multitax.MultiTax"}, {"fullname": "multitax.SilvaTx.__init__", "modulename": "multitax", "qualname": "SilvaTx.__init__", "type": "function", "doc": "from pprint import pprint\nfrom multitax import GtdbTx\ntax = GtdbTx()\n\npprint(tax.stats())\n{'leaves': 30238,\n 'names': 42739,\n 'nodes': 42739,\n 'ranked_leaves': Counter({'species': 30238}),\n 'ranked_nodes': Counter({'species': 30238,\n 'genus': 8778,\n 'family': 2323,\n 'order': 930,\n 'class': 337,\n 'phylum': 131,\n 'domain': 1,\n 'root': 1}),\n 'ranks': 42739}\n
Main constructor of MultiTax and sub-classes
\n\nParameters:
\n\n\n
\n\n- files [str, list]: One or more local files to parse.
\n- urls [str, list]: One or more urls to download and parse.
\n- output_prefix [str]: Directory to write downloaded files.
\n- root_node [str]: Define an alternative root node.
\n- root_parent [str]: Define the root parent node identifier.
\n- root_name [str]: Define an alternative root name. Set to None to use original name.
\n- root_rank [str]: Define an alternative root rank. Set to None to use original name.
\n- undefined_node [str]: Define a default return value for undefined nodes.
\n- undefined_name [str]: Define a default return value for undefined names.
\n- undefined_rank [str]: Define a default return value for undefined ranks.
\n- build_node_children [bool]: Build node,children dict (otherwise it will be created on first use).
\n- build_name_nodes [bool]: Build name,nodes dict (otherwise it will be created on first use).
\n- build_rank_nodes [bool]: Build rank,nodes dict (otherwise it will be created on first use).
\n- extended_names [bool]: Parse extended names if available.
\nExample:
\n\n\n", "signature": "(self, **kwargs)", "funcdef": "def"}, {"fullname": "multitax.multitax", "modulename": "multitax.multitax", "type": "module", "doc": "\n"}, {"fullname": "multitax.multitax.MultiTax", "modulename": "multitax.multitax", "qualname": "MultiTax", "type": "class", "doc": "\n"}, {"fullname": "multitax.multitax.MultiTax.__init__", "modulename": "multitax.multitax", "qualname": "MultiTax.__init__", "type": "function", "doc": "tax_ncbi = NcbiTx()\ntax_gtdb = GtdbTx(files=[\"file1.gz\", \"file2.txt\"])\ntax_silva = SilvaTx(urls=[\"https://www.arb-silva.de/fileadmin/silva_databases/current/Exports/taxonomy/tax_slv_lsu_138.1.txt.gz\"])\ntax_ott = OttTx(root_node=\"844192\")\ntax_gg = GreengenesTx(output_prefix=\"save/to/prefix_\")\n
Main constructor of MultiTax and sub-classes
\n\nParameters:
\n\n\n
\n\n- files [str, list]: One or more local files to parse.
\n- urls [str, list]: One or more urls to download and parse.
\n- output_prefix [str]: Directory to write downloaded files.
\n- root_node [str]: Define an alternative root node.
\n- root_parent [str]: Define the root parent node identifier.
\n- root_name [str]: Define an alternative root name. Set to None to use original name.
\n- root_rank [str]: Define an alternative root rank. Set to None to use original name.
\n- undefined_node [str]: Define a default return value for undefined nodes.
\n- undefined_name [str]: Define a default return value for undefined names.
\n- undefined_rank [str]: Define a default return value for undefined ranks.
\n- build_node_children [bool]: Build node,children dict (otherwise it will be created on first use).
\n- build_name_nodes [bool]: Build name,nodes dict (otherwise it will be created on first use).
\n- build_rank_nodes [bool]: Build rank,nodes dict (otherwise it will be created on first use).
\n- extended_names [bool]: Parse extended names if available.
\nExample:
\n\n\n", "signature": "(\n self,\n files: list = None,\n urls: list = None,\n output_prefix: str = None,\n root_node: str = None,\n root_parent: str = '0',\n root_name: str = None,\n root_rank: str = None,\n undefined_node: str = None,\n undefined_name: str = None,\n undefined_rank: str = None,\n build_name_nodes: bool = False,\n build_node_children: bool = False,\n build_rank_nodes: bool = False,\n extended_names: bool = False\n)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.version", "modulename": "multitax.multitax", "qualname": "MultiTax.version", "type": "variable", "doc": "\n", "default_value": " = '1.3.0'"}, {"fullname": "multitax.multitax.MultiTax.add", "modulename": "multitax.multitax", "qualname": "MultiTax.add", "type": "function", "doc": "tax_ncbi = NcbiTx()\ntax_gtdb = GtdbTx(files=[\"file1.gz\", \"file2.txt\"])\ntax_silva = SilvaTx(urls=[\"https://www.arb-silva.de/fileadmin/silva_databases/current/Exports/taxonomy/tax_slv_lsu_138.1.txt.gz\"])\ntax_ott = OttTx(root_node=\"844192\")\ntax_gg = GreengenesTx(output_prefix=\"save/to/prefix_\")\n
Add node to taxonomy.\nDeletes built lineages and translations.
\n", "signature": "(self, node: str, parent: str, name: str = None, rank: str = None)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.build_lineages", "modulename": "multitax.multitax", "qualname": "MultiTax.build_lineages", "type": "function", "doc": "Stores lineages in memory for faster access.\nIt is valid for lineage(), rank_lineage() and name_lineage().\nIf keyword arguments (root_node, ranks) are used in those functions stored lineages are not used.
\n\nReturns: None
\n", "signature": "(self, root_node: str = None, ranks: list = None)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.build_translation", "modulename": "multitax.multitax", "qualname": "MultiTax.build_translation", "type": "function", "doc": "Create a translation of current taxonomy to another
\n\nParameters:
\n\n\n
\n\n- tax [MultiTax]: A target taxonomy to be translated to.
\n- files [str, list]: One or more local files to parse.
\n- urls [str, list]: One or more urls to download and parse.
\nExample:
\n\n\n", "signature": "(self, tax, files: list = None, urls: list = None)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.children", "modulename": "multitax.multitax", "qualname": "MultiTax.children", "type": "function", "doc": "from multitax import GtdbTx, NcbiTx\ngtdb_tax = GtdbTx()\nncbi_tax = NcbiTx()\n\n# Automatically download translation files\ngtdb_tax.build_translation(ncbi_tax)\ngtdb_tax.translate(\"g__Escherichia\")\n {'1301', '547', '561', '570', '590', '620'}\n\n# Using local files (NCBI <-> GTDB)\nncbi_tax.build_translation(gtdb_tax, files=[\"ar53_metadata.tar.gz\", \"bac120_metadata.tar.gz\"])\nncbi_tax.translate(\"620\")\n {'g__Escherichia', 'g__Proteus', 'g__Serratia'}\n
Returns list of direct children nodes of a given node.
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.check_consistency", "modulename": "multitax.multitax", "qualname": "MultiTax.check_consistency", "type": "function", "doc": "Checks consistency of the tree
\n\nReturns: raise an Exception otherwise None
\n", "signature": "(self)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.clear_lineages", "modulename": "multitax.multitax", "qualname": "MultiTax.clear_lineages", "type": "function", "doc": "Clear built lineages.
\n\nReturns: None
\n", "signature": "(self)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.closest_parent", "modulename": "multitax.multitax", "qualname": "MultiTax.closest_parent", "type": "function", "doc": "Returns the closest parent node based on a defined list of ranks
\n", "signature": "(self, node: str, ranks: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.filter", "modulename": "multitax.multitax", "qualname": "MultiTax.filter", "type": "function", "doc": "Filters taxonomy given a list of nodes.\nBy default keep all the ancestors of the given nodes.\nIf desc=True, keep all descendants instead.\nDeletes built lineages and translations.
\n\nExample:
\n\n\n", "signature": "(self, nodes: list, desc: bool = False)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.latest", "modulename": "multitax.multitax", "qualname": "MultiTax.latest", "type": "function", "doc": "from multitax import GtdbTx\ntax = GtdbTx()\n\ntax.lineage('s__Enterovibrio marina')\n# ['1', 'd__Bacteria', 'p__Proteobacteria', 'c__Gammaproteobacteria', 'o__Enterobacterales', 'f__Vibrionaceae', 'g__Enterovibrio', 's__Enterovibrio marina']\n# Keep only ancestors of 'g__Enterovibrio'\ntax.filter('g__Enterovibrio')\n\n# Reload taxonomy\ntax = GtdbTx()\n# Keep only descendants of 'g__Enterovibrio'\ntax.filter('g__Enterovibrio', desc=True)\n
Returns latest/updated version of a given node.\nIf node is already the latests, returns itself.\nMainly used for NCBI (merged.dmp) and OTT (forwards.tsv)
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.leaves", "modulename": "multitax.multitax", "qualname": "MultiTax.leaves", "type": "function", "doc": "Returns a list of leaf nodes of a given node.
\n", "signature": "(self, node: str = None)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.lineage", "modulename": "multitax.multitax", "qualname": "MultiTax.lineage", "type": "function", "doc": "Returns a list with the lineage of a given node.\nIf ranks is provided, returns only nodes annotated with such ranks.\nIf root_node is provided, use it instead of default root of tree.
\n", "signature": "(self, node: str, root_node: str = None, ranks: list = None)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.name", "modulename": "multitax.multitax", "qualname": "MultiTax.name", "type": "function", "doc": "Returns name of a given node.
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.name_lineage", "modulename": "multitax.multitax", "qualname": "MultiTax.name_lineage", "type": "function", "doc": "Returns a list with the name lineage of a given node.
\n", "signature": "(self, node: str, root_node: str = None, ranks: list = None)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.nodes_rank", "modulename": "multitax.multitax", "qualname": "MultiTax.nodes_rank", "type": "function", "doc": "Returns list of nodes of a given rank.
\n", "signature": "(self, rank: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.parent", "modulename": "multitax.multitax", "qualname": "MultiTax.parent", "type": "function", "doc": "Returns the direct parent node of a given node.
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.parent_rank", "modulename": "multitax.multitax", "qualname": "MultiTax.parent_rank", "type": "function", "doc": "Returns the parent node of a given rank in the specified rank.
\n", "signature": "(self, node: str, rank: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.prune", "modulename": "multitax.multitax", "qualname": "MultiTax.prune", "type": "function", "doc": "Prunes branches of the tree under the given nodes.\nDeletes built lineages and translations.
\n", "signature": "(self, nodes: list)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.rank", "modulename": "multitax.multitax", "qualname": "MultiTax.rank", "type": "function", "doc": "Returns the rank of a given node.
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.rank_lineage", "modulename": "multitax.multitax", "qualname": "MultiTax.rank_lineage", "type": "function", "doc": "Returns a list with the rank lineage of a given node.
\n", "signature": "(self, node: str, root_node: str = None, ranks: list = None)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.remove", "modulename": "multitax.multitax", "qualname": "MultiTax.remove", "type": "function", "doc": "Removes node from taxonomy. Can break the tree if a parent node is removed. To remove a certain branch, use prune.\nRunning check consistency after removing a node is recommended.\nDeletes built lineages and translations.
\n", "signature": "(self, node: str, check_consistency: bool = False)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.search_name", "modulename": "multitax.multitax", "qualname": "MultiTax.search_name", "type": "function", "doc": "Search node by exact or partial name
\n\nParameters:
\n\n\n
\n\n- text [str]: Text to search.
\n- rank [str]: Filter results by rank.
\n- exact [bool]: Exact or partial name search (both case sensitive).
\nReturns: list of matching nodes
\n", "signature": "(self, text: str, rank: str = None, exact: bool = True)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.stats", "modulename": "multitax.multitax", "qualname": "MultiTax.stats", "type": "function", "doc": "Returns a dict with general numbers of the taxonomic tree
\n\nExample:
\n\n\n", "signature": "(self)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.translate", "modulename": "multitax.multitax", "qualname": "MultiTax.translate", "type": "function", "doc": "from pprint import pprint\nfrom multitax import GtdbTx\ntax = GtdbTx()\n\npprint(tax.stats())\n{'leaves': 30238,\n 'names': 42739,\n 'nodes': 42739,\n 'ranked_leaves': Counter({'species': 30238}),\n 'ranked_nodes': Counter({'species': 30238,\n 'genus': 8778,\n 'family': 2323,\n 'order': 930,\n 'class': 337,\n 'phylum': 131,\n 'domain': 1,\n 'root': 1}),\n 'ranks': 42739}\n
Returns the translated node from another taxonomy. Translated nodes are generated with the build_translation function.
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.write", "modulename": "multitax.multitax", "qualname": "MultiTax.write", "type": "function", "doc": "Writes loaded taxonomy to a file.
\n\nParameters:
\n\n\n
\n\n- cols [list]: Options: \"node\", \"latest\", \"parent\", \"rank\", \"name\", \"leaves\", \"children\", \"lineage\", \"rank_lineage\", \"name_lineage\"
\n- sep [str]: Separator of fields
\n- sep_multi [str]: Separator of multi-valued fields
\n- ranks [list]: Ranks to report
\n- gz [bool]: Gzip output
\nReturns: None
\n", "signature": "(\n self,\n output_file: str,\n cols: list = ['node', 'parent', 'rank', 'name'],\n sep: str = '\\t',\n sep_multi: str = '|',\n ranks: list = None,\n gz: bool = False\n)", "funcdef": "def"}, {"fullname": "multitax.utils", "modulename": "multitax.utils", "type": "module", "doc": "\n"}, {"fullname": "multitax.utils.check_dir", "modulename": "multitax.utils", "qualname": "check_dir", "type": "function", "doc": "\n", "signature": "(prefix: str)", "funcdef": "def"}, {"fullname": "multitax.utils.check_file", "modulename": "multitax.utils", "qualname": "check_file", "type": "function", "doc": "\n", "signature": "(file: str)", "funcdef": "def"}, {"fullname": "multitax.utils.check_no_file", "modulename": "multitax.utils", "qualname": "check_no_file", "type": "function", "doc": "\n", "signature": "(file: str)", "funcdef": "def"}, {"fullname": "multitax.utils.close_files", "modulename": "multitax.utils", "qualname": "close_files", "type": "function", "doc": "Parameters:
\n\n\n
\n\n- fhs [dict]: {file: file handler}
\nReturns: Nothing
\n", "signature": "(fhs: dict)", "funcdef": "def"}, {"fullname": "multitax.utils.download_files", "modulename": "multitax.utils", "qualname": "download_files", "type": "function", "doc": "Download and open files (memory/stream) or write to disk (multitax.utils.save_urls)
\n\nParameters:
\n\n\n
\n\n- urls [list]: List of files to download (text, \".gz\", \".tar.gz\", \".tgz\")
\n- output_prefix [str]: Output directory to save files
\nReturns:
\n\n\n
\n", "signature": "(urls: list, output_prefix: str = None, retry_attempts: int = 1)", "funcdef": "def"}, {"fullname": "multitax.utils.filter_function", "modulename": "multitax.utils", "qualname": "filter_function", "type": "function", "doc": "\n", "signature": "(elements, function, value)", "funcdef": "def"}, {"fullname": "multitax.utils.join_check", "modulename": "multitax.utils", "qualname": "join_check", "type": "function", "doc": "\n", "signature": "(elements, sep: str)", "funcdef": "def"}, {"fullname": "multitax.utils.load_url_mem", "modulename": "multitax.utils", "qualname": "load_url_mem", "type": "function", "doc": "- OrderedDict {file: file handler} (same order as input)
\nParameters:
\n\n\n
\n\n- url [str]: URL to load into memory
\nReturns:
\n\n\n
\n", "signature": "(url: str)", "funcdef": "def"}, {"fullname": "multitax.utils.open_files", "modulename": "multitax.utils", "qualname": "open_files", "type": "function", "doc": "- io.BytesIO of the requested url
\nParameters:
\n\n\n
\n\n- files [list]: List of files to open (text, \".gz\", \".tar.gz\", \".tgz\")
\nReturns:
\n\n\n
\n", "signature": "(files: list)", "funcdef": "def"}, {"fullname": "multitax.utils.reverse_dict", "modulename": "multitax.utils", "qualname": "reverse_dict", "type": "function", "doc": "\n", "signature": "(d: dict)", "funcdef": "def"}, {"fullname": "multitax.utils.save_urls", "modulename": "multitax.utils", "qualname": "save_urls", "type": "function", "doc": "- OrderedDict {file: file handler} (same order as input)
\nParameters:
\n\n\n
\n\n- urls [list]: List of urls to download
\n- output_prefix [str]: Output directory to save files
\nReturns:
\n\n\n
\n", "signature": "(urls: list, output_prefix: str)", "funcdef": "def"}, {"fullname": "multitax.utils.warning_on_one_line", "modulename": "multitax.utils", "qualname": "warning_on_one_line", "type": "function", "doc": "\n", "signature": "(message, category, filename, lineno, file=None, line=None)", "funcdef": "def"}]; + /** pdoc search index */const docs = [{"fullname": "multitax", "modulename": "multitax", "type": "module", "doc": "\n"}, {"fullname": "multitax.CustomTx", "modulename": "multitax", "qualname": "CustomTx", "type": "class", "doc": "\n", "bases": "multitax.multitax.MultiTax"}, {"fullname": "multitax.CustomTx.__init__", "modulename": "multitax", "qualname": "CustomTx.__init__", "type": "function", "doc": "- list of files saved
\nCustomTx()
\n\nParameters:
\n\n\n
\n\n- cols [list, dict]: List of fields to be parsed or a dictionary with {field: column index}. Options: \"node\", \"parent\", \"rank\", \"name\"
\n- sep [str]: Separator of fields
\n- **kwargs defined at
\nmultitax.multitax.MultiTax
Example:
\n\n\n", "signature": "(\n self,\n cols: list = ['node', 'parent', 'rank', 'name'],\n sep: str = '\\t',\n **kwargs\n)", "funcdef": "def"}, {"fullname": "multitax.DummyTx", "modulename": "multitax", "qualname": "DummyTx", "type": "class", "doc": "\n", "bases": "multitax.multitax.MultiTax"}, {"fullname": "multitax.DummyTx.__init__", "modulename": "multitax", "qualname": "DummyTx.__init__", "type": "function", "doc": "tax_custom1 = CustomTx(files=\"my_custom_tax.tsv\", cols=[\"node\",\"parent\",\"rank\"])\ntax_custom2 = CustomTx(files=\"my_custom_tax.tsv\", cols={\"node\": 0, \"parent\": 1, \"name\": 5, \"rank\": 3})\n
DummyTx() - Dummy empty taxonomy
\n\nParameters:
\n\n\n
\n", "signature": "(self, **kwargs)", "funcdef": "def"}, {"fullname": "multitax.GreengenesTx", "modulename": "multitax", "qualname": "GreengenesTx", "type": "class", "doc": "\n", "bases": "multitax.multitax.MultiTax"}, {"fullname": "multitax.GreengenesTx.__init__", "modulename": "multitax", "qualname": "GreengenesTx.__init__", "type": "function", "doc": "- **kwargs defined at
\nmultitax.multitax.MultiTax
Main constructor of MultiTax and sub-classes
\n\nParameters:
\n\n\n
\n\n- files [str, list]: One or more local files to parse.
\n- urls [str, list]: One or more urls to download and parse.
\n- output_prefix [str]: Directory to write downloaded files.
\n- root_node [str]: Define an alternative root node.
\n- root_parent [str]: Define the root parent node identifier.
\n- root_name [str]: Define an alternative root name. Set to None to use original name.
\n- root_rank [str]: Define an alternative root rank. Set to None to use original name.
\n- undefined_node [str]: Define a default return value for undefined nodes.
\n- undefined_name [str]: Define a default return value for undefined names.
\n- undefined_rank [str]: Define a default return value for undefined ranks.
\n- build_node_children [bool]: Build node,children dict (otherwise it will be created on first use).
\n- build_name_nodes [bool]: Build name,nodes dict (otherwise it will be created on first use).
\n- build_rank_nodes [bool]: Build rank,nodes dict (otherwise it will be created on first use).
\n- extended_names [bool]: Parse extended names if available.
\nExample:
\n\n\n", "signature": "(self, **kwargs)", "funcdef": "def"}, {"fullname": "multitax.GtdbTx", "modulename": "multitax", "qualname": "GtdbTx", "type": "class", "doc": "\n", "bases": "multitax.multitax.MultiTax"}, {"fullname": "multitax.GtdbTx.__init__", "modulename": "multitax", "qualname": "GtdbTx.__init__", "type": "function", "doc": "tax_ncbi = NcbiTx()\ntax_gtdb = GtdbTx(files=[\"file1.gz\", \"file2.txt\"])\ntax_silva = SilvaTx(urls=[\"https://www.arb-silva.de/fileadmin/silva_databases/current/Exports/taxonomy/tax_slv_lsu_138.1.txt.gz\"])\ntax_ott = OttTx(root_node=\"844192\")\ntax_gg = GreengenesTx(output_prefix=\"save/to/prefix_\")\n
Main constructor of MultiTax and sub-classes
\n\nParameters:
\n\n\n
\n\n- files [str, list]: One or more local files to parse.
\n- urls [str, list]: One or more urls to download and parse.
\n- output_prefix [str]: Directory to write downloaded files.
\n- root_node [str]: Define an alternative root node.
\n- root_parent [str]: Define the root parent node identifier.
\n- root_name [str]: Define an alternative root name. Set to None to use original name.
\n- root_rank [str]: Define an alternative root rank. Set to None to use original name.
\n- undefined_node [str]: Define a default return value for undefined nodes.
\n- undefined_name [str]: Define a default return value for undefined names.
\n- undefined_rank [str]: Define a default return value for undefined ranks.
\n- build_node_children [bool]: Build node,children dict (otherwise it will be created on first use).
\n- build_name_nodes [bool]: Build name,nodes dict (otherwise it will be created on first use).
\n- build_rank_nodes [bool]: Build rank,nodes dict (otherwise it will be created on first use).
\n- extended_names [bool]: Parse extended names if available.
\nExample:
\n\n\n", "signature": "(self, **kwargs)", "funcdef": "def"}, {"fullname": "multitax.NcbiTx", "modulename": "multitax", "qualname": "NcbiTx", "type": "class", "doc": "\n", "bases": "multitax.multitax.MultiTax"}, {"fullname": "multitax.NcbiTx.__init__", "modulename": "multitax", "qualname": "NcbiTx.__init__", "type": "function", "doc": "tax_ncbi = NcbiTx()\ntax_gtdb = GtdbTx(files=[\"file1.gz\", \"file2.txt\"])\ntax_silva = SilvaTx(urls=[\"https://www.arb-silva.de/fileadmin/silva_databases/current/Exports/taxonomy/tax_slv_lsu_138.1.txt.gz\"])\ntax_ott = OttTx(root_node=\"844192\")\ntax_gg = GreengenesTx(output_prefix=\"save/to/prefix_\")\n
Main constructor of MultiTax and sub-classes
\n\nParameters:
\n\n\n
\n\n- files [str, list]: One or more local files to parse.
\n- urls [str, list]: One or more urls to download and parse.
\n- output_prefix [str]: Directory to write downloaded files.
\n- root_node [str]: Define an alternative root node.
\n- root_parent [str]: Define the root parent node identifier.
\n- root_name [str]: Define an alternative root name. Set to None to use original name.
\n- root_rank [str]: Define an alternative root rank. Set to None to use original name.
\n- undefined_node [str]: Define a default return value for undefined nodes.
\n- undefined_name [str]: Define a default return value for undefined names.
\n- undefined_rank [str]: Define a default return value for undefined ranks.
\n- build_node_children [bool]: Build node,children dict (otherwise it will be created on first use).
\n- build_name_nodes [bool]: Build name,nodes dict (otherwise it will be created on first use).
\n- build_rank_nodes [bool]: Build rank,nodes dict (otherwise it will be created on first use).
\n- extended_names [bool]: Parse extended names if available.
\nExample:
\n\n\n", "signature": "(self, **kwargs)", "funcdef": "def"}, {"fullname": "multitax.NcbiTx.latest", "modulename": "multitax", "qualname": "NcbiTx.latest", "type": "function", "doc": "tax_ncbi = NcbiTx()\ntax_gtdb = GtdbTx(files=[\"file1.gz\", \"file2.txt\"])\ntax_silva = SilvaTx(urls=[\"https://www.arb-silva.de/fileadmin/silva_databases/current/Exports/taxonomy/tax_slv_lsu_138.1.txt.gz\"])\ntax_ott = OttTx(root_node=\"844192\")\ntax_gg = GreengenesTx(output_prefix=\"save/to/prefix_\")\n
Returns latest/updated version of a given node.\nIf node is already the latests, returns itself.\nMainly used for NCBI (merged.dmp) and OTT (forwards.tsv)
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.NcbiTx.merged", "modulename": "multitax", "qualname": "NcbiTx.merged", "type": "function", "doc": "Returns relative entry from the merged.dmp file of a given node.
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.NcbiTx.search_name", "modulename": "multitax", "qualname": "NcbiTx.search_name", "type": "function", "doc": "Search node by exact or partial name.
\n\nDefault order (can be skipped with force_extended=True):
\n\n1) Search names defined as \"scientific name\" on nodes.dmp
\n\n2) If nothing was found, search text in all other categories (must be activated with NcbiTx(extended_names=True))
\n\nParameters:
\n\n\n
\n\n- text [str]: Text to search.
\n- rank [str]: Filter results by rank.
\n- exact [bool]: Exact or partial name search (both case sensitive).
\n- force_extended [bool]: Search for text in all categories at once.
\nReturns: list of matching nodes
\n", "signature": "(\n self,\n text: str,\n rank: str = None,\n exact: bool = True,\n force_extended: bool = False\n)", "funcdef": "def"}, {"fullname": "multitax.NcbiTx.stats", "modulename": "multitax", "qualname": "NcbiTx.stats", "type": "function", "doc": "Returns a dict with general numbers of the taxonomic tree
\n\nExample:
\n\n\n", "signature": "(self)", "funcdef": "def"}, {"fullname": "multitax.OttTx", "modulename": "multitax", "qualname": "OttTx", "type": "class", "doc": "\n", "bases": "multitax.multitax.MultiTax"}, {"fullname": "multitax.OttTx.__init__", "modulename": "multitax", "qualname": "OttTx.__init__", "type": "function", "doc": "from pprint import pprint\nfrom multitax import GtdbTx\ntax = GtdbTx()\n\npprint(tax.stats())\n{'leaves': 30238,\n 'names': 42739,\n 'nodes': 42739,\n 'ranked_leaves': Counter({'species': 30238}),\n 'ranked_nodes': Counter({'species': 30238,\n 'genus': 8778,\n 'family': 2323,\n 'order': 930,\n 'class': 337,\n 'phylum': 131,\n 'domain': 1,\n 'root': 1}),\n 'ranks': 42739}\n
Main constructor of MultiTax and sub-classes
\n\nParameters:
\n\n\n
\n\n- files [str, list]: One or more local files to parse.
\n- urls [str, list]: One or more urls to download and parse.
\n- output_prefix [str]: Directory to write downloaded files.
\n- root_node [str]: Define an alternative root node.
\n- root_parent [str]: Define the root parent node identifier.
\n- root_name [str]: Define an alternative root name. Set to None to use original name.
\n- root_rank [str]: Define an alternative root rank. Set to None to use original name.
\n- undefined_node [str]: Define a default return value for undefined nodes.
\n- undefined_name [str]: Define a default return value for undefined names.
\n- undefined_rank [str]: Define a default return value for undefined ranks.
\n- build_node_children [bool]: Build node,children dict (otherwise it will be created on first use).
\n- build_name_nodes [bool]: Build name,nodes dict (otherwise it will be created on first use).
\n- build_rank_nodes [bool]: Build rank,nodes dict (otherwise it will be created on first use).
\n- extended_names [bool]: Parse extended names if available.
\nExample:
\n\n\n", "signature": "(self, **kwargs)", "funcdef": "def"}, {"fullname": "multitax.OttTx.forwards", "modulename": "multitax", "qualname": "OttTx.forwards", "type": "function", "doc": "tax_ncbi = NcbiTx()\ntax_gtdb = GtdbTx(files=[\"file1.gz\", \"file2.txt\"])\ntax_silva = SilvaTx(urls=[\"https://www.arb-silva.de/fileadmin/silva_databases/current/Exports/taxonomy/tax_slv_lsu_138.1.txt.gz\"])\ntax_ott = OttTx(root_node=\"844192\")\ntax_gg = GreengenesTx(output_prefix=\"save/to/prefix_\")\n
Returns relative entry from the forwards.tsv file of a given node.
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.OttTx.latest", "modulename": "multitax", "qualname": "OttTx.latest", "type": "function", "doc": "Returns latest/updated version of a given node.\nIf node is already the latests, returns itself.\nMainly used for NCBI (merged.dmp) and OTT (forwards.tsv)
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.OttTx.search_name", "modulename": "multitax", "qualname": "OttTx.search_name", "type": "function", "doc": "Search node by exact or partial name.
\n\nDefault order (can be skipped with force_extended=True):
\n\n1) Search default names defined on \"taxonomy.tsv\"
\n\n2) If nothing was found, search in all other names defined on \"synonyms.tsv\" (must be activated with OttTx(extended_names=True))
\n\nParameters:
\n\n\n
\n\n- text [str]: Text to search.
\n- rank [str]: Filter results by rank.
\n- exact [bool]: Exact or partial name search (both case sensitive).
\n- force_extended [bool]: Search for text in all categories at once.
\nReturns: list of matching nodes
\n", "signature": "(\n self,\n text: str,\n rank: str = None,\n exact: bool = True,\n force_extended: bool = False\n)", "funcdef": "def"}, {"fullname": "multitax.OttTx.stats", "modulename": "multitax", "qualname": "OttTx.stats", "type": "function", "doc": "Returns a dict with general numbers of the taxonomic tree
\n\nExample:
\n\n\n", "signature": "(self)", "funcdef": "def"}, {"fullname": "multitax.SilvaTx", "modulename": "multitax", "qualname": "SilvaTx", "type": "class", "doc": "\n", "bases": "multitax.multitax.MultiTax"}, {"fullname": "multitax.SilvaTx.__init__", "modulename": "multitax", "qualname": "SilvaTx.__init__", "type": "function", "doc": "from pprint import pprint\nfrom multitax import GtdbTx\ntax = GtdbTx()\n\npprint(tax.stats())\n{'leaves': 30238,\n 'names': 42739,\n 'nodes': 42739,\n 'ranked_leaves': Counter({'species': 30238}),\n 'ranked_nodes': Counter({'species': 30238,\n 'genus': 8778,\n 'family': 2323,\n 'order': 930,\n 'class': 337,\n 'phylum': 131,\n 'domain': 1,\n 'root': 1}),\n 'ranks': 42739}\n
Main constructor of MultiTax and sub-classes
\n\nParameters:
\n\n\n
\n\n- files [str, list]: One or more local files to parse.
\n- urls [str, list]: One or more urls to download and parse.
\n- output_prefix [str]: Directory to write downloaded files.
\n- root_node [str]: Define an alternative root node.
\n- root_parent [str]: Define the root parent node identifier.
\n- root_name [str]: Define an alternative root name. Set to None to use original name.
\n- root_rank [str]: Define an alternative root rank. Set to None to use original name.
\n- undefined_node [str]: Define a default return value for undefined nodes.
\n- undefined_name [str]: Define a default return value for undefined names.
\n- undefined_rank [str]: Define a default return value for undefined ranks.
\n- build_node_children [bool]: Build node,children dict (otherwise it will be created on first use).
\n- build_name_nodes [bool]: Build name,nodes dict (otherwise it will be created on first use).
\n- build_rank_nodes [bool]: Build rank,nodes dict (otherwise it will be created on first use).
\n- extended_names [bool]: Parse extended names if available.
\nExample:
\n\n\n", "signature": "(self, **kwargs)", "funcdef": "def"}, {"fullname": "multitax.multitax", "modulename": "multitax.multitax", "type": "module", "doc": "\n"}, {"fullname": "multitax.multitax.MultiTax", "modulename": "multitax.multitax", "qualname": "MultiTax", "type": "class", "doc": "\n"}, {"fullname": "multitax.multitax.MultiTax.__init__", "modulename": "multitax.multitax", "qualname": "MultiTax.__init__", "type": "function", "doc": "tax_ncbi = NcbiTx()\ntax_gtdb = GtdbTx(files=[\"file1.gz\", \"file2.txt\"])\ntax_silva = SilvaTx(urls=[\"https://www.arb-silva.de/fileadmin/silva_databases/current/Exports/taxonomy/tax_slv_lsu_138.1.txt.gz\"])\ntax_ott = OttTx(root_node=\"844192\")\ntax_gg = GreengenesTx(output_prefix=\"save/to/prefix_\")\n
Main constructor of MultiTax and sub-classes
\n\nParameters:
\n\n\n
\n\n- files [str, list]: One or more local files to parse.
\n- urls [str, list]: One or more urls to download and parse.
\n- output_prefix [str]: Directory to write downloaded files.
\n- root_node [str]: Define an alternative root node.
\n- root_parent [str]: Define the root parent node identifier.
\n- root_name [str]: Define an alternative root name. Set to None to use original name.
\n- root_rank [str]: Define an alternative root rank. Set to None to use original name.
\n- undefined_node [str]: Define a default return value for undefined nodes.
\n- undefined_name [str]: Define a default return value for undefined names.
\n- undefined_rank [str]: Define a default return value for undefined ranks.
\n- build_node_children [bool]: Build node,children dict (otherwise it will be created on first use).
\n- build_name_nodes [bool]: Build name,nodes dict (otherwise it will be created on first use).
\n- build_rank_nodes [bool]: Build rank,nodes dict (otherwise it will be created on first use).
\n- extended_names [bool]: Parse extended names if available.
\nExample:
\n\n\n", "signature": "(\n self,\n files: list = None,\n urls: list = None,\n output_prefix: str = None,\n root_node: str = None,\n root_parent: str = '0',\n root_name: str = None,\n root_rank: str = None,\n undefined_node: str = None,\n undefined_name: str = None,\n undefined_rank: str = None,\n build_name_nodes: bool = False,\n build_node_children: bool = False,\n build_rank_nodes: bool = False,\n extended_names: bool = False\n)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.version", "modulename": "multitax.multitax", "qualname": "MultiTax.version", "type": "variable", "doc": "\n", "default_value": " = '1.3.1'"}, {"fullname": "multitax.multitax.MultiTax.add", "modulename": "multitax.multitax", "qualname": "MultiTax.add", "type": "function", "doc": "tax_ncbi = NcbiTx()\ntax_gtdb = GtdbTx(files=[\"file1.gz\", \"file2.txt\"])\ntax_silva = SilvaTx(urls=[\"https://www.arb-silva.de/fileadmin/silva_databases/current/Exports/taxonomy/tax_slv_lsu_138.1.txt.gz\"])\ntax_ott = OttTx(root_node=\"844192\")\ntax_gg = GreengenesTx(output_prefix=\"save/to/prefix_\")\n
Add node to taxonomy.\nDeletes built lineages and translations.
\n", "signature": "(self, node: str, parent: str, name: str = None, rank: str = None)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.build_lineages", "modulename": "multitax.multitax", "qualname": "MultiTax.build_lineages", "type": "function", "doc": "Stores lineages in memory for faster access.\nIt is valid for lineage(), rank_lineage() and name_lineage().\nIf keyword arguments (root_node, ranks) are used in those functions stored lineages are not used.
\n\nReturns: None
\n", "signature": "(self, root_node: str = None, ranks: list = None)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.build_translation", "modulename": "multitax.multitax", "qualname": "MultiTax.build_translation", "type": "function", "doc": "Create a translation of current taxonomy to another
\n\nParameters:
\n\n\n
\n\n- tax [MultiTax]: A target taxonomy to be translated to.
\n- files [str, list]: One or more local files to parse.
\n- urls [str, list]: One or more urls to download and parse.
\nExample:
\n\n\n", "signature": "(self, tax, files: list = None, urls: list = None)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.children", "modulename": "multitax.multitax", "qualname": "MultiTax.children", "type": "function", "doc": "from multitax import GtdbTx, NcbiTx\ngtdb_tax = GtdbTx()\nncbi_tax = NcbiTx()\n\n# Automatically download translation files\ngtdb_tax.build_translation(ncbi_tax)\ngtdb_tax.translate(\"g__Escherichia\")\n {'1301', '547', '561', '570', '590', '620'}\n\n# Using local files (NCBI <-> GTDB)\nncbi_tax.build_translation(gtdb_tax, files=[\"ar53_metadata.tar.gz\", \"bac120_metadata.tar.gz\"])\nncbi_tax.translate(\"620\")\n {'g__Escherichia', 'g__Proteus', 'g__Serratia'}\n
Returns list of direct children nodes of a given node.
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.check_consistency", "modulename": "multitax.multitax", "qualname": "MultiTax.check_consistency", "type": "function", "doc": "Checks consistency of the tree
\n\nReturns: raise an Exception otherwise None
\n", "signature": "(self)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.clear_lineages", "modulename": "multitax.multitax", "qualname": "MultiTax.clear_lineages", "type": "function", "doc": "Clear built lineages.
\n\nReturns: None
\n", "signature": "(self)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.closest_parent", "modulename": "multitax.multitax", "qualname": "MultiTax.closest_parent", "type": "function", "doc": "Returns the closest parent node based on a defined list of ranks
\n", "signature": "(self, node: str, ranks: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.filter", "modulename": "multitax.multitax", "qualname": "MultiTax.filter", "type": "function", "doc": "Filters taxonomy given a list of nodes.\nBy default keep all the ancestors of the given nodes.\nIf desc=True, keep all descendants instead.\nDeletes built lineages and translations.
\n\nExample:
\n\n\n", "signature": "(self, nodes: list, desc: bool = False)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.latest", "modulename": "multitax.multitax", "qualname": "MultiTax.latest", "type": "function", "doc": "from multitax import GtdbTx\ntax = GtdbTx()\n\ntax.lineage('s__Enterovibrio marina')\n# ['1', 'd__Bacteria', 'p__Proteobacteria', 'c__Gammaproteobacteria', 'o__Enterobacterales', 'f__Vibrionaceae', 'g__Enterovibrio', 's__Enterovibrio marina']\n# Keep only ancestors of 'g__Enterovibrio'\ntax.filter('g__Enterovibrio')\n\n# Reload taxonomy\ntax = GtdbTx()\n# Keep only descendants of 'g__Enterovibrio'\ntax.filter('g__Enterovibrio', desc=True)\n
Returns latest/updated version of a given node.\nIf node is already the latests, returns itself.\nMainly used for NCBI (merged.dmp) and OTT (forwards.tsv)
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.leaves", "modulename": "multitax.multitax", "qualname": "MultiTax.leaves", "type": "function", "doc": "Returns a list of leaf nodes of a given node.
\n", "signature": "(self, node: str = None)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.lineage", "modulename": "multitax.multitax", "qualname": "MultiTax.lineage", "type": "function", "doc": "Returns a list with the lineage of a given node.\nIf ranks is provided, returns only nodes annotated with such ranks.\nIf root_node is provided, use it instead of default root of tree.
\n", "signature": "(self, node: str, root_node: str = None, ranks: list = None)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.name", "modulename": "multitax.multitax", "qualname": "MultiTax.name", "type": "function", "doc": "Returns name of a given node.
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.name_lineage", "modulename": "multitax.multitax", "qualname": "MultiTax.name_lineage", "type": "function", "doc": "Returns a list with the name lineage of a given node.
\n", "signature": "(self, node: str, root_node: str = None, ranks: list = None)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.nodes_rank", "modulename": "multitax.multitax", "qualname": "MultiTax.nodes_rank", "type": "function", "doc": "Returns list of nodes of a given rank.
\n", "signature": "(self, rank: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.parent", "modulename": "multitax.multitax", "qualname": "MultiTax.parent", "type": "function", "doc": "Returns the direct parent node of a given node.
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.parent_rank", "modulename": "multitax.multitax", "qualname": "MultiTax.parent_rank", "type": "function", "doc": "Returns the parent node of a given rank in the specified rank.
\n", "signature": "(self, node: str, rank: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.prune", "modulename": "multitax.multitax", "qualname": "MultiTax.prune", "type": "function", "doc": "Prunes branches of the tree under the given nodes.\nDeletes built lineages and translations.
\n", "signature": "(self, nodes: list)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.rank", "modulename": "multitax.multitax", "qualname": "MultiTax.rank", "type": "function", "doc": "Returns the rank of a given node.
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.rank_lineage", "modulename": "multitax.multitax", "qualname": "MultiTax.rank_lineage", "type": "function", "doc": "Returns a list with the rank lineage of a given node.
\n", "signature": "(self, node: str, root_node: str = None, ranks: list = None)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.remove", "modulename": "multitax.multitax", "qualname": "MultiTax.remove", "type": "function", "doc": "Removes node from taxonomy. Can break the tree if a parent node is removed. To remove a certain branch, use prune.\nRunning check consistency after removing a node is recommended.\nDeletes built lineages and translations.
\n", "signature": "(self, node: str, check_consistency: bool = False)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.search_name", "modulename": "multitax.multitax", "qualname": "MultiTax.search_name", "type": "function", "doc": "Search node by exact or partial name
\n\nParameters:
\n\n\n
\n\n- text [str]: Text to search.
\n- rank [str]: Filter results by rank.
\n- exact [bool]: Exact or partial name search (both case sensitive).
\nReturns: list of matching nodes
\n", "signature": "(self, text: str, rank: str = None, exact: bool = True)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.stats", "modulename": "multitax.multitax", "qualname": "MultiTax.stats", "type": "function", "doc": "Returns a dict with general numbers of the taxonomic tree
\n\nExample:
\n\n\n", "signature": "(self)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.translate", "modulename": "multitax.multitax", "qualname": "MultiTax.translate", "type": "function", "doc": "from pprint import pprint\nfrom multitax import GtdbTx\ntax = GtdbTx()\n\npprint(tax.stats())\n{'leaves': 30238,\n 'names': 42739,\n 'nodes': 42739,\n 'ranked_leaves': Counter({'species': 30238}),\n 'ranked_nodes': Counter({'species': 30238,\n 'genus': 8778,\n 'family': 2323,\n 'order': 930,\n 'class': 337,\n 'phylum': 131,\n 'domain': 1,\n 'root': 1}),\n 'ranks': 42739}\n
Returns the translated node from another taxonomy. Translated nodes are generated with the build_translation function.
\n", "signature": "(self, node: str)", "funcdef": "def"}, {"fullname": "multitax.multitax.MultiTax.write", "modulename": "multitax.multitax", "qualname": "MultiTax.write", "type": "function", "doc": "Writes loaded taxonomy to a file.
\n\nParameters:
\n\n\n
\n\n- cols [list]: Options: \"node\", \"latest\", \"parent\", \"rank\", \"name\", \"leaves\", \"children\", \"lineage\", \"rank_lineage\", \"name_lineage\"
\n- sep [str]: Separator of fields
\n- sep_multi [str]: Separator of multi-valued fields
\n- ranks [list]: Ranks to report
\n- gz [bool]: Gzip output
\nReturns: None
\n", "signature": "(\n self,\n output_file: str,\n cols: list = ['node', 'parent', 'rank', 'name'],\n sep: str = '\\t',\n sep_multi: str = '|',\n ranks: list = None,\n gz: bool = False\n)", "funcdef": "def"}, {"fullname": "multitax.utils", "modulename": "multitax.utils", "type": "module", "doc": "\n"}, {"fullname": "multitax.utils.check_dir", "modulename": "multitax.utils", "qualname": "check_dir", "type": "function", "doc": "\n", "signature": "(prefix: str)", "funcdef": "def"}, {"fullname": "multitax.utils.check_file", "modulename": "multitax.utils", "qualname": "check_file", "type": "function", "doc": "\n", "signature": "(file: str)", "funcdef": "def"}, {"fullname": "multitax.utils.check_no_file", "modulename": "multitax.utils", "qualname": "check_no_file", "type": "function", "doc": "\n", "signature": "(file: str)", "funcdef": "def"}, {"fullname": "multitax.utils.close_files", "modulename": "multitax.utils", "qualname": "close_files", "type": "function", "doc": "Parameters:
\n\n\n
\n\n- fhs [dict]: {file: file handler}
\nReturns: Nothing
\n", "signature": "(fhs: dict)", "funcdef": "def"}, {"fullname": "multitax.utils.download_files", "modulename": "multitax.utils", "qualname": "download_files", "type": "function", "doc": "Download and open files (memory/stream) or write to disk (multitax.utils.save_urls)
\n\nParameters:
\n\n\n
\n\n- urls [list]: List of files to download (text, \".gz\", \".tar.gz\", \".tgz\")
\n- output_prefix [str]: Output directory to save files
\nReturns:
\n\n\n
\n", "signature": "(urls: list, output_prefix: str = None, retry_attempts: int = 1)", "funcdef": "def"}, {"fullname": "multitax.utils.filter_function", "modulename": "multitax.utils", "qualname": "filter_function", "type": "function", "doc": "\n", "signature": "(elements, function, value)", "funcdef": "def"}, {"fullname": "multitax.utils.join_check", "modulename": "multitax.utils", "qualname": "join_check", "type": "function", "doc": "\n", "signature": "(elements, sep: str)", "funcdef": "def"}, {"fullname": "multitax.utils.load_url_mem", "modulename": "multitax.utils", "qualname": "load_url_mem", "type": "function", "doc": "- OrderedDict {file: file handler} (same order as input)
\nParameters:
\n\n\n
\n\n- url [str]: URL to load into memory
\nReturns:
\n\n\n
\n", "signature": "(url: str)", "funcdef": "def"}, {"fullname": "multitax.utils.open_files", "modulename": "multitax.utils", "qualname": "open_files", "type": "function", "doc": "- io.BytesIO of the requested url
\nParameters:
\n\n\n
\n\n- files [list]: List of files to open (text, \".gz\", \".tar.gz\", \".tgz\")
\nReturns:
\n\n\n
\n", "signature": "(files: list)", "funcdef": "def"}, {"fullname": "multitax.utils.reverse_dict", "modulename": "multitax.utils", "qualname": "reverse_dict", "type": "function", "doc": "\n", "signature": "(d: dict)", "funcdef": "def"}, {"fullname": "multitax.utils.save_urls", "modulename": "multitax.utils", "qualname": "save_urls", "type": "function", "doc": "- OrderedDict {file: file handler} (same order as input)
\nParameters:
\n\n\n
\n\n- urls [list]: List of urls to download
\n- output_prefix [str]: Output directory to save files
\nReturns:
\n\n\n
\n", "signature": "(urls: list, output_prefix: str)", "funcdef": "def"}, {"fullname": "multitax.utils.warning_on_one_line", "modulename": "multitax.utils", "qualname": "warning_on_one_line", "type": "function", "doc": "\n", "signature": "(message, category, filename, lineno, file=None, line=None)", "funcdef": "def"}]; // mirrored in build-search-index.js (part 1) // Also split on html tags. this is a cheap heuristic, but good enough. diff --git a/multitax/__init__.py b/multitax/__init__.py index b7f5275..dfbe3ef 100644 --- a/multitax/__init__.py +++ b/multitax/__init__.py @@ -1,4 +1,4 @@ -__version__ = "1.3.0" +__version__ = "1.3.1" __all__ = ( 'CustomTx', diff --git a/multitax/multitax.py b/multitax/multitax.py index 1b6d50e..fc7605a 100644 --- a/multitax/multitax.py +++ b/multitax/multitax.py @@ -365,10 +365,6 @@ def filter(self, nodes: list, desc: bool = False): if isinstance(nodes, str): nodes = [nodes] - # Cannot filter root node - if self.root_node in nodes: - raise ValueError("Root node [" + self.root_node + "] cannot be filtered.") - # Keep track of nodes to be filtered out filtered_nodes = set(self._nodes) # Always keep root @@ -377,7 +373,7 @@ def filter(self, nodes: list, desc: bool = False): if desc: # Keep descendants of the given nodes for node in nodes: - # Check if node exists + # Check if node exists (skips root) if node in filtered_nodes: # For each leaf of the selected nodes for leaf in self.leaves(node): @@ -401,7 +397,6 @@ def filter(self, nodes: list, desc: bool = False): # Delete aux. data structures self._reset_aux_data() - self.check_consistency() def latest(self, node: str): diff --git a/setup.py b/setup.py index 3d710f4..025f351 100755 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ setup( name="multitax", - version="1.3.0", + version="1.3.1", url="https://www.github.com/pirovc/multitax", license="MIT", author="Vitor C. Piro", diff --git a/tests/multitax/unit/test_functions.py b/tests/multitax/unit/test_functions.py index c2c1a9e..e6ccbbb 100644 --- a/tests/multitax/unit/test_functions.py +++ b/tests/multitax/unit/test_functions.py @@ -500,16 +500,6 @@ def test_filter(self): self.assertCountEqual(tax.lineage("4.5"), []) self.assertCountEqual(tax.leaves("1"), ["4.2", "4.3", "5.1", "5.2"]) - # No filter for root - tax = CustomTx(files=self.test_file) - self.assertEqual(tax.stats()["nodes"], 14) - with self.assertRaises(ValueError): - tax.filter(tax.root_node) - tax.filter(["2.2", tax.root_node]) - tax.filter(tax.root_node, desc=True) - tax.filter(["2.2", tax.root_node], desc=True) - self.assertEqual(tax.stats()["nodes"], 14) - tax = CustomTx(files=self.test_file) self.assertEqual(tax.stats()["nodes"], 14) tax.filter("XXXXX", desc=True)- list of files saved
\n