diff options
| author | Frederick Muriuki Muriithi | 2026-09-25 10:37:20 -0500 |
|---|---|---|
| committer | Frederick Muriuki Muriithi | 2026-09-25 10:37:20 -0500 |
| commit | 351c43ad306a5d28e64b3aaf10064d38c794bd52 (patch) | |
| tree | ca8265772885b8845a912e88728c3a4f4b76eb35 /scripts/genotypes/types.py | |
| parent | c590b5226e8e2f65e8ef85c77d4d24a8d423a4c4 (diff) | |
| download | gn-uploader-351c43ad306a5d28e64b3aaf10064d38c794bd52.tar.gz | |
Diffstat (limited to 'scripts/genotypes/types.py')
| -rw-r--r-- | scripts/genotypes/types.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/scripts/genotypes/types.py b/scripts/genotypes/types.py new file mode 100644 index 0000000..0ac335a --- /dev/null +++ b/scripts/genotypes/types.py @@ -0,0 +1,58 @@ +"""The datatypes this package will use.""" +from dataclasses import dataclass +from typing import Sequence, Optional + + +@dataclass +class DotGenoFields: + """Custom .geno file format values""" + name: str, + mat: str, + pat: str, + het: str, + type_: Optional[str] = None + unk: Optional[str] = None + + +@dataclass(frozen=True) +class FieldsIdentity: + """Data type for identity of the fields.""" + marker: str + chromosome: str + genetic_distance: str # cM + physical_distance: str # Mb + samples: Sequence[str] + + +@dataclass(frozen=True) +class LineDetails: + """Data type for processed line details""" + line_content: Sequence[Union[str, None]] + geno_symbols: Sequence[str] + line_header: Optional[str] = None + + +@dataclass(frozen=True) +class LineError: + """An error object for a line.""" + marker: str + field: str + value: Union[str, None] + message: str + + +@dataclass(frozen=True) +class FileStats: + """Custom file statistics.""" + data_lines: int + total_lines: int + geno_symbols: Sequence[str] + + blank_lines: int = 0 + comment_lines: int = 0 + dot_geno_lines: int = 0 + dot_geno_fields: Optional[DotGenoFields] = None + samples: Sequence[str] = field(default_factory=tuple) + samples_list: Sequence[str] = field(default_factory=tuple) + markers_list: Sequence[str] = field(default_factory=tuple) + errors: Sequence[LineError] = field(default_factory=tuple) |
