# Copyright 2025 Xin Huang
#
# GNU General Public License v3.0
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, please see
#
#    https://www.gnu.org/licenses/gpl-3.0.en.html


import allel
from dataclasses import dataclass


@dataclass
class ChromosomeData:
    """
    A data structure for storing chromosome-specific genotype information.

    Attributes
    ----------
    REF : list[str]
        A list of reference alleles for each variant position.
    ALT : list[str]
        A list of alternate alleles for each variant position.
    POS : list[int]
        A list of genomic positions corresponding to each variant.
    GT : list[allel.GenotypeVector]
        A list of genotype vectors, where each vector represents the genotype
        information for a specific variant position.
    """

    REF: list[str]
    ALT: list[str]
    POS: list[int]
    GT: list[allel.GenotypeVector]
