Skip to main content

Yet Another Tool for Making Artificial Genomes

Project description

YATOMAT - Yet Another Tool for Making Artificial Genomes

YATOMAT Logo

Overview

YATOMAT is a comprehensive tool designed to generate realistic artificial genomes. It allows users to create chromosome sequences with detailed annotations, including telomeres, centromeres, pericentromeres, and other chromosomal regions. The tool supports various configurations and outputs in FASTA and GFF3 formats.

Features

  • Flexible Configuration: Customize chromosome parameters through a JSON configuration file.
  • Realistic Sequence Generation: Generate sequences with realistic GC content, repeat densities, and chromatin states.
  • Detailed Annotations: Output detailed annotations in GFF3 format, including telomeres, centromeres, and other features.
  • Compression Support: Optionally compress output files in gzip format.
  • Reproducibility: Set a random seed for reproducible results.
  • Logging: Detailed logging for tracking the generation process.

Installation

Clone the repository and install the required dependencies:

git clone https://github.com/yourusername/yatomat.git
cd yatomat
pip install -r requirements.txt

Usage

Command Line Interface

Run the main script with the required configuration file and optional parameters:

python yatomat.py config.json --output-dir output --prefix chr1 --compress --seed 42

Configuration File

The configuration file is a JSON file that specifies the parameters for chromosome generation. Below is an example configuration file (example_config.json):

{
    "total_length": 80000000,
    "p_arm": {
        "length": 30000000,
        "gc_content": 0.45,
        "gc_std": 0.02,
        "repeat_density": 0.3,
        "tad_organization": 0.8,
        "chromatin_state": "EUCHROMATIN"
    },
    "q_arm": {
        "length": 50000000,
        "gc_content": 0.48,
        "gc_std": 0.02,
        "repeat_density": 0.35,
        "tad_organization": 0.75,
        "chromatin_state": "EUCHROMATIN"
    },
    "telomere": {
        "max_length": 10000
    },
    "subtelomere": {
        "max_length": 20000
    },
    "centromere": {
        "max_core_length": 4000000
    },
    "pericentromere": {
        "min_total_length": 1000000
    },
    "boundary": {
        "transition_length": 50000
    }
}

Output

The tool generates two main output files:

  • FASTA File: Contains the generated chromosome sequence.
  • GFF3 File: Contains annotations for the generated features.

Modules

Core Modules

  • core.py: Basic functions for sequence generation and mutation handling.
  • repeats.py: Functions for handling various types of repeats and HOR structures.
  • regions/common.py: Base classes and interfaces for chromosome regions.
  • regions/telomeres.py: Functions for generating telomeric and subtelomeric regions.
  • regions/centromeres.py: Functions for generating centromeric regions.
  • regions/pericentromeres.py: Functions for generating pericentromeric regions.
  • regions/boundaries.py: Functions for generating boundary regions between different chromatin states.

Main Script

  • yatomat.py: The main script that integrates all modules and generates the final output.

Testing

To ensure the correctness of the generated sequences and annotations, comprehensive test scripts are provided for each module. Run the tests using:

python -m unittest discover tests

Contributing

Contributions are welcome! Please fork the repository and submit pull requests.

License

This project is licensed under the MIT License.

Contact

For any questions or issues, please open an issue on GitHub or contact the maintainer at ad3002@gmail.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yatomat-0.1.0.tar.gz (51.0 kB view details)

Uploaded Source

File details

Details for the file yatomat-0.1.0.tar.gz.

File metadata

  • Download URL: yatomat-0.1.0.tar.gz
  • Upload date:
  • Size: 51.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.19

File hashes

Hashes for yatomat-0.1.0.tar.gz
Algorithm Hash digest
SHA256 af1a6da239a79600069a8707cb25989b7a19bd18645bc04a1279e4d7920e6365
MD5 05220ebe77d3c5a50e493a053bdae095
BLAKE2b-256 1e3b918c3a3185caf224e356304c73be50f8b5a872fad9d0210621e3a5a3eae6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page