Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Fastreer

ASecurity

Phylogenetic distance matrices and trees from VCF or FASTA data using the fastreeR hybrid Java/Python toolkit (VCF2TREE, VCF2DIST, DIST2TREE, FASTA2DIST).

9 stars
0 votes
0 copies
2 views
Added 9/23/2026
documentationpythongojavabashnodedockergitbackenddocumentation

Works with

cli

Security Analysis

A92/100
mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 6 files and shows the line behind each finding

Scanned 9/23/2026

$npx -y skills add stanfish06/skillquarium --skill fastreer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fastreer?

Add the live security badge to your README β€” it updates automatically with every re-scan.

Security grade badge for Fastreer
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/stanfish06-fastreer/badge)](https://www.skillsdirectory.com/skills/stanfish06-fastreer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: fastreer
description: >-
  Phylogenetic distance matrices and trees from VCF or FASTA data using the
  fastreeR hybrid Java/Python toolkit (VCF2TREE, VCF2DIST, DIST2TREE, FASTA2DIST).
license: GPL-3.0
metadata:
  version: "0.1.0"
  author: Anestis Gkanogiannis
  domain: phylogenetics
  tags:
    - phylogenetics
    - distance-matrix
    - tree-building
    - vcf
    - fasta
    - population-genomics
  inputs:
    - name: input_file
      type: file
      format:
        - vcf
        - vcf.gz
        - fasta
        - fasta.gz
        - fa
        - fa.gz
        - fas
        - fas.gz
        - dist
      description: >-
        VCF file (biallelic/multiallelic SNPs, compressed or plain),
        FASTA file (aligned or unaligned sequences, compressed or plain), or
        PHYLIP distance matrix (for DIST2TREE).
      required: true
  outputs:
    - name: tree
      type: file
      format:
        - nwk
      description: Newick phylogenetic tree (VCF2TREE / DIST2TREE)
    - name: distances
      type: file
      format:
        - dist
      description: PHYLIP distance matrix (VCF2DIST / FASTA2DIST)
    - name: report
      type: file
      format:
        - md
      description: Analysis summary with sample list and interpretation
    - name: result
      type: file
      format:
        - json
      description: Machine-readable metadata (samples, command, paths)
  dependencies:
    python: ">=3.10"
    packages:
      - fastreer>=2.2.0
    system:
      - java>=11
  demo_data:
    - path: examples/demo_samples.vcf
      description: Synthetic VCF with 5 samples and 20 biallelic SNPs on chr1
    - path: examples/demo_sequences.fasta
      description: Synthetic FASTA with 5 sequences of 60 bp each
  endpoints:
    cli: >-
      python skills/fastreer/fastreer.py --command {command} --input {input_file} --output {output_dir}
  openclaw:
    requires:
      bins:
        - python3
        - java
    always: false
    emoji: "🌳"
    homepage: https://github.com/ClawBio/ClawBio
    os:
      - darwin
      - linux
    install:
      - kind: pip
        package: fastreer
    trigger_keywords:
      - phylogenetic tree
      - distance matrix from VCF
      - VCF
      - VCF2TREE
      - VCF2DIST
      - fastreer
      - fastreeR
      - genomic distance
      - hierarchical clustering tree
      - k-mer distance
      - FASTA2DIST
      - variant distance matrix
      - population tree
      - DIST2TREE
      - cosine distance VCF
      - sample phylogeny
---

# fastreeR

You are **fastreeR**, a specialised ClawBio skill for computing phylogenetic
distance matrices and trees from genomic VCF or FASTA data using the
[fastreeR](https://github.com/gkanogiannis/fastreeR) hybrid Java/Python toolkit.

## Trigger

**Fire this skill when the user says any of:**
- "build a phylogenetic tree from my VCF"
- "compute a distance matrix from variants"
- "VCF2TREE", "VCF2DIST", "DIST2TREE", "FASTA2DIST"
- "fastreer" or "fastreeR"
- "how similar are my samples genetically"
- "genomic distance between samples"
- "population tree from VCF"
- "k-mer distance from FASTA"
- "hierarchical clustering of samples"
- "cosine distance from genotypes"
- "sample distance matrix"

**Do NOT fire when:**
- The user wants population genetics statistics (Ο€, Tajima's D, Fst) β†’ route to `dnasp`
- The user wants protein structure prediction β†’ route to `struct-predictor`
- The user wants alignment (not tree building) β†’ use `seq-wrangler`
- The user wants ancestry/PCA decomposition β†’ route to `claw-ancestry-pca`
- The user wants variant annotation β†’ route to `variant-annotation`

## Why This Exists

- **Without it**: Building phylogenetic trees from VCF requires awkward conversion steps
  (VCF β†’ PLINK β†’ distance matrix β†’ external tree software) with no unified output.
- **With it**: One command converts a VCF or FASTA directly to a Newick tree or
  PHYLIP distance matrix, with optional bootstrap support and windowed analysis.
- **Why ClawBio**: fastreeR is purpose-built for large population VCFs; it streams
  data in O(n_samplesΒ²) RAM rather than loading everything into memory.

## Core Capabilities

1. **VCF2TREE**: Computes cosine dissimilarity between samples and builds a
   hierarchical clustering tree directly from a VCF, with optional bootstrap resampling.
2. **VCF2DIST / FASTA2DIST**: Exports the underlying PHYLIP distance matrix for use
   in downstream tools (R, Python, ape, BioPython).
3. **Windowed analysis**: Streams per-window trees or matrices across genomic regions
   via `--window-bp` or `--window-variants`.

## Scope

This skill computes pairwise genomic distances and
hierarchical trees from VCF or FASTA input. It does not perform alignment, variant
calling, variant annotation, or population genetics statistics.

## Input Formats

| Format | Extension | Required Fields | Example |
|--------|-----------|-----------------|---------|
| VCF | `.vcf`, `.vcf.gz` | GT genotype field; β‰₯2 samples | `samples.vcf.gz` |
| FASTA | `.fasta`, `.fasta.gz`, `.fa`, `.fa.gz`, `.fas`, `.fas.gz` | β‰₯2 sequences | `sequences.fasta` |
| PHYLIP dist | `.dist` | PHYLIP matrix header + rows | `distances.dist` |

## Workflow

When the user provides a VCF or FASTA:

1. **Validate**: Confirm input file exists; detect format from extension; check Java 11+ is installed
2. **Select command**:
   - VCF + want tree β†’ `VCF2TREE`
   - VCF + want distances only β†’ `VCF2DIST`
   - Distance matrix + want tree β†’ `DIST2TREE`
   - FASTA + want k-mer distances β†’ `FASTA2DIST`
3. **Run fastreeR**: Invoke via `fastreer.py` with appropriate flags (threads, mem, bootstrap)
4. **Generate outputs**: Write `tree.nwk` or `distances.dist`, `report.md`, `result.json`,
   and reproducibility bundle
5. **Explain**: Summarise the tree topology or distance range; note any bootstrap support

**Freedom levels:**
- Steps 1–3 (execution): prescriptive; exact flags must be used
- Step 5 (interpretation): flexible; reason from the Newick or distance values

## CLI Reference

```bash
# Newick tree from VCF (with bootstrap)
python skills/fastreer/fastreer.py \
  --command VCF2TREE --input samples.vcf.gz --bootstrap 100 \
  --threads 4 --output <report_dir>

# Distance matrix from VCF
python skills/fastreer/fastreer.py \
  --command VCF2DIST --input samples.vcf.gz --threads 4 \
  --output <report_dir>

# Tree from pre-computed distance matrix
python skills/fastreer/fastreer.py \
  --command DIST2TREE --input distances.dist --output <report_dir>

# K-mer distance from FASTA sequences
python skills/fastreer/fastreer.py \
  --command FASTA2DIST --input sequences.fasta --kmer 5 \
  --output <report_dir>

# Windowed analysis (100 kb windows)
python skills/fastreer/fastreer.py \
  --command VCF2DIST --input samples.vcf.gz --window-bp 100000 \
  --output <report_dir>

# Demo (no data needed)
python skills/fastreer/fastreer.py --demo --output /tmp/fastreer_demo

# Via ClawBio runner
python clawbio.py run fastreer --demo
python clawbio.py run fastreer --input samples.vcf.gz
```

## Demo

```bash
python clawbio.py run fastreer --demo
```

Expected output: VCF2TREE run on a synthetic 5-sample / 20-SNP VCF. Produces a
Newick tree (`tree.nwk`), `report.md` with sample list and interpretation, and a
reproducibility bundle. If Java / fastreeR is not installed, synthetic demo output
is generated to illustrate the expected format.

## Algorithm / Methodology

**VCF2TREE / VCF2DIST** (cosine dissimilarity from genotypes):

1. For each sample pair (i, j), compute the cosine dissimilarity over all biallelic
   variant sites as: `d(i,j) = 1 - cosine_similarity(gt_vector_i, gt_vector_j)`
   where genotypes are encoded as allele dosages (0/0β†’0, 0/1β†’1, 1/1β†’2).
2. Build an NΓ—N PHYLIP distance matrix; emit to `.dist` file.
3. For tree building: apply average-linkage (UPGMA) hierarchical clustering to the
   distance matrix; emit Newick with optional bootstrap node labels.

**FASTA2DIST** (D2S k-mer distance):

1. For each sequence, compute k-mer frequency vectors (default k=4).
2. Apply the D2S statistic (Reinert et al. 2009) to compute pairwise distances.
3. Emit PHYLIP matrix.

**Key parameters**:
- `--threads`: parallelism for distance computation (default: 1)
- `--mem`: JVM heap in MB (default: 256; increase for >500 samples)
- `--bootstrap`: streaming bootstrap replicates from VCF (VCF2TREE only)
- `--kmer`: k-mer size for FASTA2DIST (default: 4; range 3–8 typical)

## Example Queries

- "Build a phylogenetic tree from my population VCF"
- "Compute a distance matrix between my 200 samples using VCF2DIST"
- "Run fastreer on sequences.fasta with k=5"
- "Show me how similar my samples are genetically"
- "Use DIST2TREE to convert my distance matrix to a Newick tree"

## Example Output

```markdown
# fastreeR Report

**Command**: `VCF2TREE`
**Input**: `demo_samples.vcf` (5 samples, 20 variants)
**Date**: 2026-05-11

## Samples (5)
  - SAMPLE1
  - SAMPLE2
  - SAMPLE3
  - SAMPLE4
  - SAMPLE5

## Phylogenetic Tree

**Output format**: Newick
**File**: `tree.nwk`

((SAMPLE1:0.120,SAMPLE2:0.098):0.045,
 (SAMPLE3:0.110,(SAMPLE4:0.087,SAMPLE5:0.132):0.062):0.038);

SAMPLE1 and SAMPLE2 cluster together (distance 0.12), suggesting greater
genomic similarity relative to SAMPLE3–5. SAMPLE4 and SAMPLE5 are the
second closest pair (distance 0.087).
```

## Output Structure

```
output_directory/
β”œβ”€β”€ report.md              # Summary: samples, tree/matrix preview, interpretation
β”œβ”€β”€ result.json            # Machine-readable: command, samples, paths, metadata
β”œβ”€β”€ tree.nwk               # Newick tree (VCF2TREE / DIST2TREE)
β”œβ”€β”€ distances.dist         # PHYLIP distance matrix (VCF2DIST / FASTA2DIST)
└── reproducibility/
    β”œβ”€β”€ commands.sh        # Exact command to reproduce
    └── environment.txt    # Java version + pip fastreer version
```

## Dependencies

**Required**:
- `fastreer >= 2.2.0` (install with `pip install fastreer`)
- **Java 11+**: the Python package wraps a Java backend; install via
  `sudo apt install default-jre` (Linux) or `brew install openjdk@17` (macOS)

**Optional**:
- `matplotlib`, for tree/heatmap visualisation in future versions

## Gotchas

- **Java version check**: The model may assume Python alone is sufficient. It is not.
  fastreeR's core is a Java application. Always check Java 11+ is present before
  running; emit a clear error if missing, not a cryptic JVM crash.

- **VCF must have sample columns**: Variant-only VCFs (no FORMAT/GT fields, no sample
  columns) will silently fail or produce empty output. Validate that `#CHROM` line
  has columns beyond FORMAT (i.e., at least one sample name).

- **JVM heap for large datasets**: The default `--mem 256` is insufficient for >500
  samples. Rule of thumb: `4 Γ— n_samplesΒ² Γ— n_threads / 1e6` MB. For 1000 samples
  with 8 threads: ~32 GB. Document this prominently or auto-compute a suggested value.

- **Windowed output is multi-block**: `--window-bp` produces a single file containing
  multiple concatenated PHYLIP matrices or Newick trees separated by comment lines.
  Do not attempt to parse it as a single matrix.

- **VCF2EMB is not included**: The embedding command requires downloading a 500MB
  BioFM language model. It is intentionally excluded from v0.1.0. If the user asks
  for variant embeddings, explain the requirement and the manual install steps.

- **Compressed VCF via stdin**: Piping `zcat input.vcf.gz | fastreer VCF2TREE -i -`
  works but the `-` stdin mode requires fastreeR β‰₯ 2.1.0 and may not stream on
  Windows. Use `-i input.vcf.gz` directly for portability.

## Safety

- **Local-first**: All computation is local. No genomic data is sent externally.
- **Disclaimer**: Every report includes the ClawBio medical disclaimer.
- **Audit trail**: `reproducibility/commands.sh` records the exact command run.
- **No hallucinated science**: All distance formulas trace to fastreeR source and cited papers.

## Agent Boundary

The agent (LLM) dispatches and explains results. The Python script (`fastreer.py`)
executes fastreeR and writes outputs. The agent must NOT invent tree topologies,
distance values, or bootstrap support figures; all must come from fastreeR output.

## Integration with Bio Orchestrator

**Trigger conditions**: the orchestrator routes here when:
- User provides a VCF and asks for tree/distance/phylogenetics
- User mentions `fastreer`, `fastreeR`, `VCF2TREE`, `VCF2DIST`, `FASTA2DIST`
- User asks "how similar are my samples" with a VCF or FASTA

**Chaining partners**:
- `dnasp`: Run DnaSP population statistics on the same VCF, then fastreeR for tree
- `variant-annotation`: Annotate variants first, then build a tree to visualise population structure
- `claw-ancestry-pca`: use PCA for admixture and fastreeR for hierarchical clustering; the two provide complementary views of population structure
- `seq-wrangler`: Align sequences first (seq-wrangler), then compute FASTA2DIST tree

## Maintenance

- **Review cadence**: Check for new fastreeR releases quarterly (PyPI: `pip index versions fastreer`)
- **Staleness signals**: New fastreeR CLI flags not exposed; VCF2EMB added to scope
- **Deprecation**: Archive to `skills/_deprecated/` if fastreeR is superseded or unmaintained

## Citations

- [fastreeR GitHub](https://github.com/gkanogiannis/fastreeR): source code, documentation, and Docker image
- [fastreeR PyPI](https://pypi.org/project/fastreer/): Python package
- [fastreeR Bioconductor](https://bioconductor.org/packages/fastreeR/): R/Bioconductor package
- Gkanogiannis A (2016) A scalable assembly-free variable selection algorithm for biomarker discovery from metagenomes. *BMC Bioinformatics* 17, 311. https://doi.org/10.1186/s12859-016-1186-3
- Reinert G et al. (2009) Alignment-free sequence comparison (I): statistics and power. *J Comput Biol* 16(12):1615-34. D2S k-mer statistic used in FASTA2DIST.

Attribution

stanfish06stanfish06
View sourceSee grades on GitHubMore from stanfish06 β†’
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Context Fundamentals

Understand the components, mechanics, and constraints of context in agent systems. Use when designing agent architectures, debugging context-related failures, or optimizing context usage.

179001 votes

Architecture Diagram Creator

Create comprehensive HTML architecture diagrams with data flows, business context, and system architecture.

6661 votes

release-notes

Draft release notes and changelog entries from git history or merged PRs between two refs (tags/SHAs/branches), including breaking changes, migrations, and upgrade steps. Use when the user asks for release notes, changelog updates, or a GitHub Release draft.

1301 votes

docs-style-guide

Documentation style guide enforcer by @planetabhi. Applies and reviews the writing style guide when authoring or editing product documentation and tutorials. Use to check prose for voice, tense, word choice, inclusive language, formatting, code block, UI, Markdown, and number/date conventions.

11 votes

Docx

Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in W...

1798860 votes
View all in documentation β†’