A comprehensive tool for satellite DNA analysis in T2T genome assemblies
Project description
Satellome
A comprehensive bioinformatics tool for analyzing satellite DNA (tandem repeats) in telomere-to-telomere (T2T) genome assemblies.
Overview
Satellome uses FasTAN (Fast Tandem Repeat Finder) as its default tandem repeat detection engine, providing fast and accurate identification of repetitive DNA sequences. The tool classifies and visualizes tandem repeats with a focus on centromeric and telomeric regions.
The tool is designed to work with various genome assembly projects including:
- T2T (Telomere-to-Telomere) Consortium assemblies
- DNA Zoo chromosome-length assemblies
- VGP (Vertebrate Genome Project) assemblies
- NCBI RefSeq and GenBank assemblies
Features
- Fast Tandem Repeat Detection: Uses FasTAN by default for rapid, accurate detection
- Smart Classification: Categorizes repeats into microsatellites, complex repeats, and other types
- Rich Visualizations: Generates karyotype plots and chromosome-level visualizations
- Annotation Integration: Supports GFF3 and RepeatMasker annotations
- Parallel Processing: Efficient handling of large genomes
- Smart Pipeline: Automatically skips completed steps (override with
--force) - Compressed File Support: Direct processing of .gz compressed FASTA files
- Optional TRF Support: Traditional TRF analysis available with
--run-trfflag
Quick Start
# Install from PyPI
pip install satellome
# Install required binaries (FasTAN, tanbed)
satellome --install-all
# Run on a genome
satellome -i genome.fasta -o output_dir -p project_name -t 8
Installation
From PyPI (Recommended)
pip install satellome
# Install external tools
satellome --install-all
From Source
git clone https://github.com/aglabx/satellome.git
cd satellome
pip install -e .
satellome --install-all
External Tools
Satellome requires FasTAN and tanbed for default operation. Install them automatically:
# Install all tools (FasTAN, tanbed, modified TRF)
satellome --install-all
# Or install individually
satellome --install-fastan
satellome --install-tanbed
satellome --install-trf-large # For genomes with chromosomes >2GB
Build requirements: git, make, C compiler (gcc/clang)
# Ubuntu/Debian
sudo apt-get install build-essential git
# macOS
xcode-select --install
Usage
Basic Command
satellome -i genome.fasta -o output_dir -p project_name -t 8
Common Options
# With GFF3 annotations
satellome -i genome.fasta -o output_dir -p project_name -t 8 --gff annotations.gff3
# With RepeatMasker annotations
satellome -i genome.fasta -o output_dir -p project_name -t 8 --rm repeatmasker.out
# Force rerun all steps
satellome -i genome.fasta -o output_dir -p project_name -t 8 --force
# Also run traditional TRF analysis
satellome -i genome.fasta -o output_dir -p project_name -t 8 --run-trf
Parameters
| Parameter | Description | Default |
|---|---|---|
-i, --input |
Input FASTA file (.fa, .fasta, .gz) | Required |
-o, --output |
Output directory | Required |
-p, --project |
Project name | Required |
-t, --threads |
Number of threads | 1 |
--gff |
GFF3 annotation file | None |
--rm |
RepeatMasker output file | None |
--run-trf |
Also run TRF analysis | False |
--force |
Force rerun all steps | False |
--taxid |
NCBI taxonomy ID | None |
Output Structure
output_dir/
├── genome.sat # Main SAT output (all arrays)
├── genome.1kb.sat # Arrays >1kb
├── genome.3kb.sat # Arrays >3kb
├── genome.10kb.sat # Arrays >10kb
├── genome.micro.sat # Microsatellites (1-9 bp monomers)
├── genome.complex.sat # Complex repeats (>9 bp monomers)
├── genome.pmicro.sat # Potential microsatellites
├── genome.tssr.sat # Tandem simple sequence repeats
├── genome.gaps.bed # Gaps annotation
├── results.yaml # Analysis statistics
├── fastan/ # FasTAN intermediate files
│ ├── genome.1aln # FasTAN alignment output
│ └── genome.bed # FasTAN BED format
├── fasta/ # FASTA sequences
│ └── genome.arrays.fasta # All array sequences
├── gff3/ # GFF3 annotations
│ ├── genome.1kb.gff
│ ├── genome.complex.gff
│ └── ...
├── images/ # Visualizations
│ └── *.png
└── reports/ # HTML reports
└── satellome_report.html
SAT File Format
The SAT format is a tab-delimited file with the following columns:
| Column | Description |
|---|---|
| project | Project name |
| trf_id | Unique array ID |
| trf_head | Chromosome/scaffold name |
| trf_l_ind | Left coordinate (1-based) |
| trf_r_ind | Right coordinate |
| trf_period | Monomer period length |
| trf_n_copy | Number of copies |
| trf_pmatch | Percent match |
| trf_pvar | Percent variation |
| trf_entropy | Shannon entropy |
| trf_consensus | Consensus monomer sequence |
| trf_array | Full array sequence |
| trf_array_gc | Array GC content |
| trf_consensus_gc | Consensus GC content |
| trf_array_length | Array length in bp |
| trf_joined | Join status |
| trf_family | Repeat family |
| trf_ref_annotation | Reference annotation |
Classification System
Satellome classifies tandem repeats into four categories:
| Category | Description | Criteria |
|---|---|---|
| micro | Microsatellites | Monomer 1-9 bp |
| complex | Complex repeats | Monomer >9 bp, entropy >1.82 |
| pmicro | Potential microsatellites | Intermediate characteristics |
| tssr | Tandem simple sequence repeats | Simple patterns |
Example Results
Analysis of CHM13 v2.0 human genome (3.1 GB):
| Category | Arrays | % Genome |
|---|---|---|
| Total | 614,616 | - |
| Complex | 20,373 | 5.27% |
| Microsatellites | 319,489 | 1.96% |
| TSSR | 296,475 | 0.47% |
| >1kb | 14,438 | 7.69% |
| >10kb | 1,223 | 6.67% |
Utility Scripts
Format Conversion
python scripts/trf_to_fasta.py -i repeats.sat -o repeats.fasta
python scripts/trf_to_gff3.py -i repeats.sat -o repeats.gff3
Analysis Tools
python scripts/trf_get_large.py -i repeats.sat -m 1000 -o large_repeats.sat
python scripts/trf_get_micro_stat.py -i repeats.sat -o micro_stats.txt
python scripts/check_telomeres.py -i genome.fasta -t repeats.sat
Testing
pytest tests/unit/ -v
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Citation
If you use Satellome in your research, please cite:
Komissarov A. et al. (2026). Satellome: A comprehensive tool for satellite DNA
analysis in T2T genome assemblies. [Publication details]
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
- Issues: GitHub Issues
- Documentation: Wiki
- Email: ad3002@gmail.com
Acknowledgments
- FasTAN by Gene Myers
- Tandem Repeat Finder by Gary Benson
- T2T Consortium
- DNA Zoo
- Vertebrate Genome Project
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file satellome-1.7.0.tar.gz.
File metadata
- Download URL: satellome-1.7.0.tar.gz
- Upload date:
- Size: 238.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60297411a9b8f1e453ffcf6ebd11f963f8304f8b11347772869147c4b7067d48
|
|
| MD5 |
557ed9df01c0fdf86c23dfc6bd7c2412
|
|
| BLAKE2b-256 |
60ac9ec56497f017ce80b41d2b3334f2541ba0bf694ce07d6aaa1e2cb1a1deb0
|
Provenance
The following attestation bundles were made for satellome-1.7.0.tar.gz:
Publisher:
publish.yml on aglabx/satellome
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
satellome-1.7.0.tar.gz -
Subject digest:
60297411a9b8f1e453ffcf6ebd11f963f8304f8b11347772869147c4b7067d48 - Sigstore transparency entry: 1945526977
- Sigstore integration time:
-
Permalink:
aglabx/satellome@eb469672df73ec6fc194cc657e15f3354e4d65f1 -
Branch / Tag:
refs/tags/v1.7.0 - Owner: https://github.com/aglabx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@eb469672df73ec6fc194cc657e15f3354e4d65f1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file satellome-1.7.0-py3-none-any.whl.
File metadata
- Download URL: satellome-1.7.0-py3-none-any.whl
- Upload date:
- Size: 184.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32cdd61abf8e163795ae111ae27a949c67e1e26f180a2847bba15587a9992625
|
|
| MD5 |
8d17d49dc560a050d72591e5991eb785
|
|
| BLAKE2b-256 |
73f1ba2ae86066311f523680350dd362279c45b599a59ce9e9714e4b02cb1dcc
|
Provenance
The following attestation bundles were made for satellome-1.7.0-py3-none-any.whl:
Publisher:
publish.yml on aglabx/satellome
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
satellome-1.7.0-py3-none-any.whl -
Subject digest:
32cdd61abf8e163795ae111ae27a949c67e1e26f180a2847bba15587a9992625 - Sigstore transparency entry: 1945527013
- Sigstore integration time:
-
Permalink:
aglabx/satellome@eb469672df73ec6fc194cc657e15f3354e4d65f1 -
Branch / Tag:
refs/tags/v1.7.0 - Owner: https://github.com/aglabx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@eb469672df73ec6fc194cc657e15f3354e4d65f1 -
Trigger Event:
push
-
Statement type: