{
  "id": 613750,
  "title": "Biological Taxonomy",
  "url": "/competitions/cafa-6-protein-function-prediction/discussion/613750",
  "author_name": "MT",
  "post_date": "2025-10-29T12:59:00.977000",
  "votes": 28,
  "comment_count": 1,
  "views": 0,
  "content": "<p>Looking back at my CAFA5 submissions, one of my <strong>biggest oversights</strong> was completely ignoring taxonomic information in my modelling approach. Let me explain why taxonomy matters and how you can easily incorporate it.</p>\n<h2>Taxonomy 101: It's a Hierarchical Graph</h2>\n<p>Biological taxonomy organises life into a <strong>hierarchical tree structure</strong> </p>\n<pre><code> → Phylum →  →  →  → Genus → Species\n</code></pre>\n<p>Just as <strong>GO (Gene Ontology) terms</strong> form a directed acyclic graph in which terms inherit from parent terms, <strong>taxonomy creates natural hierarchies</strong> in which organisms share features with their ancestors.</p>\n<h2>Why This Matters for Protein Function Prediction</h2>\n<p>Close relatives, similar proteins, similar jobs, conserved domains, shared partners, analogous pathways. Useful prior, never a guarantee. </p>\n<h2>Setting Up TaxonKit</h2>\n<p>Before you can use TaxonKit, you need to download the NCBI taxonomy database:</p>\n<pre><code>\n!wget ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz\n\n\n!tar -xzf taxdump.tar.gz names.dmp nodes.dmp delnodes.dmp merged.dmp\n\n\nTAXONKIT_DIR=\n -p \n names.dmp nodes.dmp delnodes.dmp merged.dmp \n</code></pre>\n<h2>Using TaxonKit: A Quick Example</h2>\n<p>Once set up, extracting taxonomic lineages is simple:</p>\n<pre><code> 3702 \\\n| taxonkit lineage \\\n| taxonkit reformat -f  \\\n|  -f3\n</code></pre>\n<p><strong>Output:</strong></p>\n<pre><code>Eukaryota - Streptophyta - Magnoliopsida - - - Arabidopsis - Arabidopsis thaliana\n</code></pre>\n<h2>What's Happening Here?</h2>\n<ol>\n<li><strong>Input:</strong> NCBI Taxonomy ID (3702 = <em>Arabidopsis thaliana</em>)</li>\n<li><strong><code>taxonkit lineage</code>:</strong> Fetches the full taxonomic lineage from the database</li>\n<li><strong><code>taxonkit reformat</code>:</strong> Formats it with placeholders:<ul>\n<li><code>{d}</code> = Domain</li>\n<li><code>{p}</code> = Phylum  </li>\n<li><code>{c}</code> = Class</li>\n<li><code>{o}</code> = Order</li>\n<li><code>{f}</code> = Family</li>\n<li><code>{g}</code> = Genus</li>\n<li><code>{s}</code> = Species</li></ul></li>\n</ol>\n<h2>Resources</h2>\n<ul>\n<li><a href=\"https://github.com/shenwei356/taxonkit\" target=\"_blank\">TaxonKit GitHub</a></li>\n<li><a href=\"https://www.ncbi.nlm.nih.gov/taxonomy\" target=\"_blank\">NCBI Taxonomy Database</a></li>\n<li><a href=\"https://bioinf.shenwei.me/taxonkit/usage/#lineage\" target=\"_blank\">taxonkit lineage</a></li>\n<li><a href=\"https://bioinf.shenwei.me/taxonkit/usage/#reformat\" target=\"_blank\">taxonkit reformat</a></li>\n</ul>",
  "messages": [
    {
      "id": 3308449,
      "postDate": "2025-10-29T12:59:00.977Z",
      "content": "<p>Looking back at my CAFA5 submissions, one of my <strong>biggest oversights</strong> was completely ignoring taxonomic information in my modelling approach. Let me explain why taxonomy matters and how you can easily incorporate it.</p>\n<h2>Taxonomy 101: It's a Hierarchical Graph</h2>\n<p>Biological taxonomy organises life into a <strong>hierarchical tree structure</strong> </p>\n<pre><code> → Phylum →  →  →  → Genus → Species\n</code></pre>\n<p>Just as <strong>GO (Gene Ontology) terms</strong> form a directed acyclic graph in which terms inherit from parent terms, <strong>taxonomy creates natural hierarchies</strong> in which organisms share features with their ancestors.</p>\n<h2>Why This Matters for Protein Function Prediction</h2>\n<p>Close relatives, similar proteins, similar jobs, conserved domains, shared partners, analogous pathways. Useful prior, never a guarantee. </p>\n<h2>Setting Up TaxonKit</h2>\n<p>Before you can use TaxonKit, you need to download the NCBI taxonomy database:</p>\n<pre><code>\n!wget ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz\n\n\n!tar -xzf taxdump.tar.gz names.dmp nodes.dmp delnodes.dmp merged.dmp\n\n\nTAXONKIT_DIR=\n -p \n names.dmp nodes.dmp delnodes.dmp merged.dmp \n</code></pre>\n<h2>Using TaxonKit: A Quick Example</h2>\n<p>Once set up, extracting taxonomic lineages is simple:</p>\n<pre><code> 3702 \\\n| taxonkit lineage \\\n| taxonkit reformat -f  \\\n|  -f3\n</code></pre>\n<p><strong>Output:</strong></p>\n<pre><code>Eukaryota - Streptophyta - Magnoliopsida - - - Arabidopsis - Arabidopsis thaliana\n</code></pre>\n<h2>What's Happening Here?</h2>\n<ol>\n<li><strong>Input:</strong> NCBI Taxonomy ID (3702 = <em>Arabidopsis thaliana</em>)</li>\n<li><strong><code>taxonkit lineage</code>:</strong> Fetches the full taxonomic lineage from the database</li>\n<li><strong><code>taxonkit reformat</code>:</strong> Formats it with placeholders:<ul>\n<li><code>{d}</code> = Domain</li>\n<li><code>{p}</code> = Phylum  </li>\n<li><code>{c}</code> = Class</li>\n<li><code>{o}</code> = Order</li>\n<li><code>{f}</code> = Family</li>\n<li><code>{g}</code> = Genus</li>\n<li><code>{s}</code> = Species</li></ul></li>\n</ol>\n<h2>Resources</h2>\n<ul>\n<li><a href=\"https://github.com/shenwei356/taxonkit\" target=\"_blank\">TaxonKit GitHub</a></li>\n<li><a href=\"https://www.ncbi.nlm.nih.gov/taxonomy\" target=\"_blank\">NCBI Taxonomy Database</a></li>\n<li><a href=\"https://bioinf.shenwei.me/taxonkit/usage/#lineage\" target=\"_blank\">taxonkit lineage</a></li>\n<li><a href=\"https://bioinf.shenwei.me/taxonkit/usage/#reformat\" target=\"_blank\">taxonkit reformat</a></li>\n</ul>",
      "rawMarkdown": "Looking back at my CAFA5 submissions, one of my **biggest oversights** was completely ignoring taxonomic information in my modelling approach. Let me explain why taxonomy matters and how you can easily incorporate it.\n\n## Taxonomy 101: It's a Hierarchical Graph\n\nBiological taxonomy organises life into a **hierarchical tree structure** \n\n```\nDomain → Phylum → Class → Order → Family → Genus → Species\n```\n\nJust as **GO (Gene Ontology) terms** form a directed acyclic graph in which terms inherit from parent terms, **taxonomy creates natural hierarchies** in which organisms share features with their ancestors.\n\n## Why This Matters for Protein Function Prediction\n\nClose relatives, similar proteins, similar jobs, conserved domains, shared partners, analogous pathways. Useful prior, never a guarantee. \n\n## Setting Up TaxonKit\n\nBefore you can use TaxonKit, you need to download the NCBI taxonomy database:\n\n```bash\n# Download the taxonomy database\n!wget ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz\n\n# Extract only the files we need\n!tar -xzf taxdump.tar.gz names.dmp nodes.dmp delnodes.dmp merged.dmp\n\n# Move them to TaxonKit's data directory\nTAXONKIT_DIR=\"/Users/mtinti/.taxonkit\"\nmkdir -p \"$TAXONKIT_DIR\"\nmv names.dmp nodes.dmp delnodes.dmp merged.dmp \"$TAXONKIT_DIR/\"\n```\n\n## Using TaxonKit: A Quick Example\n\nOnce set up, extracting taxonomic lineages is simple:\n\n```bash\necho 3702 \\\n| taxonkit lineage \\\n| taxonkit reformat -f \"{d} - {p} - {c} - {o} - {f} - {g} - {s}\" \\\n| cut -f3\n```\n\n**Output:**\n```\nEukaryota - Streptophyta - Magnoliopsida - Brassicales - Brassicaceae - Arabidopsis - Arabidopsis thaliana\n```\n\n## What's Happening Here?\n\n1. **Input:** NCBI Taxonomy ID (3702 = *Arabidopsis thaliana*)\n2. **`taxonkit lineage`:** Fetches the full taxonomic lineage from the database\n3. **`taxonkit reformat`:** Formats it with placeholders:\n   - `{d}` = Domain\n   - `{p}` = Phylum  \n   - `{c}` = Class\n   - `{o}` = Order\n   - `{f}` = Family\n   - `{g}` = Genus\n   - `{s}` = Species\n\n## Resources\n\n- [TaxonKit GitHub](https://github.com/shenwei356/taxonkit)\n- [NCBI Taxonomy Database](https://www.ncbi.nlm.nih.gov/taxonomy)\n- [taxonkit lineage](https://bioinf.shenwei.me/taxonkit/usage/#lineage)\n- [taxonkit reformat](https://bioinf.shenwei.me/taxonkit/usage/#reformat)\n",
      "votes": 28
    },
    {
      "id": 3342417,
      "postDate": "2025-11-20T23:42:19.547Z",
      "rawMarkdown": "",
      "isDeleted": true
    }
  ],
  "comments": [
    {
      "id": 3342417,
      "author_name": "",
      "author_url": "",
      "post_date": "2025-11-20T23:42:19.547000",
      "content": "",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "3308449": "Looking back at my CAFA5 submissions, one of my **biggest oversights** was completely ignoring taxonomic information in my modelling approach. Let me explain why taxonomy matters and how you can easily incorporate it.\n\n## Taxonomy 101: It's a Hierarchical Graph\n\nBiological taxonomy organises life into a **hierarchical tree structure** \n\n```\nDomain → Phylum → Class → Order → Family → Genus → Species\n```\n\nJust as **GO (Gene Ontology) terms** form a directed acyclic graph in which terms inherit from parent terms, **taxonomy creates natural hierarchies** in which organisms share features with their ancestors.\n\n## Why This Matters for Protein Function Prediction\n\nClose relatives, similar proteins, similar jobs, conserved domains, shared partners, analogous pathways. Useful prior, never a guarantee. \n\n## Setting Up TaxonKit\n\nBefore you can use TaxonKit, you need to download the NCBI taxonomy database:\n\n```bash\n# Download the taxonomy database\n!wget ftp://ftp.ncbi.nih.gov/pub/taxonomy/taxdump.tar.gz\n\n# Extract only the files we need\n!tar -xzf taxdump.tar.gz names.dmp nodes.dmp delnodes.dmp merged.dmp\n\n# Move them to TaxonKit's data directory\nTAXONKIT_DIR=\"/Users/mtinti/.taxonkit\"\nmkdir -p \"$TAXONKIT_DIR\"\nmv names.dmp nodes.dmp delnodes.dmp merged.dmp \"$TAXONKIT_DIR/\"\n```\n\n## Using TaxonKit: A Quick Example\n\nOnce set up, extracting taxonomic lineages is simple:\n\n```bash\necho 3702 \\\n| taxonkit lineage \\\n| taxonkit reformat -f \"{d} - {p} - {c} - {o} - {f} - {g} - {s}\" \\\n| cut -f3\n```\n\n**Output:**\n```\nEukaryota - Streptophyta - Magnoliopsida - Brassicales - Brassicaceae - Arabidopsis - Arabidopsis thaliana\n```\n\n## What's Happening Here?\n\n1. **Input:** NCBI Taxonomy ID (3702 = *Arabidopsis thaliana*)\n2. **`taxonkit lineage`:** Fetches the full taxonomic lineage from the database\n3. **`taxonkit reformat`:** Formats it with placeholders:\n   - `{d}` = Domain\n   - `{p}` = Phylum  \n   - `{c}` = Class\n   - `{o}` = Order\n   - `{f}` = Family\n   - `{g}` = Genus\n   - `{s}` = Species\n\n## Resources\n\n- [TaxonKit GitHub](https://github.com/shenwei356/taxonkit)\n- [NCBI Taxonomy Database](https://www.ncbi.nlm.nih.gov/taxonomy)\n- [taxonkit lineage](https://bioinf.shenwei.me/taxonkit/usage/#lineage)\n- [taxonkit reformat](https://bioinf.shenwei.me/taxonkit/usage/#reformat)\n",
    "3342417": ""
  }
}