genmod 3.8.3__tar.gz → 3.10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- genmod-3.10/.github/workflows/build_and_publish.yml +63 -0
- genmod-3.10/.github/workflows/check_format.yml +26 -0
- genmod-3.10/.github/workflows/keep_a_changelog.yml +15 -0
- genmod-3.10/.github/workflows/lint.yml +19 -0
- genmod-3.10/.github/workflows/test.yml +24 -0
- genmod-3.10/.gitignore +20 -0
- genmod-3.10/.python-version +1 -0
- genmod-3.10/.travis.yml +16 -0
- genmod-3.10/CHANGELOG.md +49 -0
- genmod-3.10/CITATION.cff +16 -0
- genmod-3.10/DEVELOPING.md +19 -0
- genmod-3.10/Dockerfile +17 -0
- genmod-3.10/Dockerfile.pytest +9 -0
- {genmod-3.8.3 → genmod-3.10}/MANIFEST.in +5 -1
- genmod-3.10/Makefile +24 -0
- genmod-3.8.3/README.md → genmod-3.10/PKG-INFO +59 -73
- genmod-3.10/README.md +302 -0
- genmod-3.10/artwork/tree_man.JPG +0 -0
- genmod-3.10/docs/commands/annotate-models.md +110 -0
- genmod-3.10/docs/commands/annotate-variants.md +44 -0
- genmod-3.10/docs/commands/build-annotation.md +28 -0
- genmod-3.10/docs/commands/filter-variants.md +43 -0
- genmod-3.10/docs/commands/score-compounds.md +23 -0
- genmod-3.10/docs/commands/score-variants.md +19 -0
- genmod-3.10/docs/genetic-models.md +75 -0
- genmod-3.10/docs/index.md +137 -0
- genmod-3.10/examples/readme.md +57 -0
- genmod-3.10/examples/score_test.ini +155 -0
- genmod-3.10/examples/small_1000G_CADD.tsv +23 -0
- genmod-3.10/examples/small_CADD.tsv +2185 -0
- genmod-3.10/examples/small_dbNSFP.txt +317 -0
- genmod-3.10/examples/small_geneset.gtf +106 -0
- genmod-3.10/examples/test_vcf.vcf +20 -0
- genmod-3.10/genmod/__init__.py +10 -0
- genmod-3.10/genmod/annotate_models/__init__.py +1 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/annotate_models/fix_variant.py +35 -49
- {genmod-3.8.3 → genmod-3.10}/genmod/annotate_models/genetic_models.py +202 -227
- genmod-3.10/genmod/annotate_models/make_haploblocks.py +119 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/annotate_models/model_score.py +22 -20
- genmod-3.10/genmod/annotate_models/models/__init__.py +15 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/annotate_models/models/compound_model.py +54 -55
- {genmod-3.8.3 → genmod-3.10}/genmod/annotate_models/models/dominant_model.py +20 -20
- {genmod-3.8.3 → genmod-3.10}/genmod/annotate_models/models/recessive_model.py +14 -18
- {genmod-3.8.3 → genmod-3.10}/genmod/annotate_models/models/x_models.py +33 -30
- {genmod-3.8.3 → genmod-3.10}/genmod/annotate_models/variant_annotator.py +66 -62
- genmod-3.10/genmod/annotate_regions/__init__.py +0 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/annotate_regions/get_features.py +3 -2
- {genmod-3.8.3 → genmod-3.10}/genmod/annotate_regions/parse_annotations.py +42 -44
- genmod-3.10/genmod/annotate_variants/__init__.py +10 -0
- genmod-3.10/genmod/annotate_variants/add_annotations.py +131 -0
- genmod-3.10/genmod/annotate_variants/annotate.py +87 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/annotate_variants/read_tabix_files.py +47 -47
- genmod-3.10/genmod/annotations/__init__.py +7 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/commands/__init__.py +13 -4
- genmod-3.10/genmod/commands/analyze.py +611 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/commands/annotate_models.py +188 -187
- genmod-3.10/genmod/commands/annotate_variant.py +230 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/commands/base.py +34 -30
- {genmod-3.8.3 → genmod-3.10}/genmod/commands/filter_variants.py +56 -61
- {genmod-3.8.3 → genmod-3.10}/genmod/commands/genmod_sort.py +42 -72
- {genmod-3.8.3 → genmod-3.10}/genmod/commands/score_compounds.py +72 -75
- {genmod-3.8.3 → genmod-3.10}/genmod/commands/score_variants.py +114 -100
- {genmod-3.8.3 → genmod-3.10}/genmod/commands/summarize_variants.py +81 -77
- genmod-3.10/genmod/commands/utils.py +53 -0
- genmod-3.10/genmod/errors/__init__.py +4 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/errors/warning.py +6 -5
- {genmod-3.8.3 → genmod-3.10}/genmod/log.py +8 -8
- genmod-3.10/genmod/score_variants/__init__.py +19 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/score_variants/cap_rank_score_to_min_bound.py +6 -6
- {genmod-3.8.3 → genmod-3.10}/genmod/score_variants/check_plugins.py +21 -18
- {genmod-3.8.3 → genmod-3.10}/genmod/score_variants/compound_scorer.py +151 -108
- {genmod-3.8.3 → genmod-3.10}/genmod/score_variants/config_parser.py +166 -190
- genmod-3.10/genmod/score_variants/rank_score_variant_definitions.py +8 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/score_variants/score_function.py +77 -73
- {genmod-3.8.3 → genmod-3.10}/genmod/score_variants/score_variant.py +70 -60
- genmod-3.10/genmod/utils/__init__.py +44 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/utils/check_individuals.py +8 -7
- {genmod-3.8.3 → genmod-3.10}/genmod/utils/get_batches.py +54 -52
- {genmod-3.8.3 → genmod-3.10}/genmod/utils/get_features.py +57 -27
- {genmod-3.8.3 → genmod-3.10}/genmod/utils/get_priority.py +36 -34
- {genmod-3.8.3 → genmod-3.10}/genmod/utils/is_number.py +3 -3
- {genmod-3.8.3 → genmod-3.10}/genmod/utils/pair_generator.py +17 -15
- {genmod-3.8.3 → genmod-3.10}/genmod/utils/variant_printer.py +37 -36
- genmod-3.10/genmod/vcf_tools/__init__.py +45 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/vcf_tools/add_metadata.py +59 -56
- {genmod-3.8.3 → genmod-3.10}/genmod/vcf_tools/add_variant_information.py +46 -44
- {genmod-3.8.3 → genmod-3.10}/genmod/vcf_tools/check_info_header.py +6 -5
- {genmod-3.8.3 → genmod-3.10}/genmod/vcf_tools/genotype.py +33 -36
- genmod-3.10/genmod/vcf_tools/get_genotypes.py +29 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/vcf_tools/header_parser.py +145 -154
- genmod-3.10/genmod/vcf_tools/parse_variant.py +97 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/vcf_tools/print_headers.py +5 -6
- {genmod-3.8.3 → genmod-3.10}/genmod/vcf_tools/print_variants.py +45 -42
- {genmod-3.8.3 → genmod-3.10}/genmod/vcf_tools/sort_variants.py +21 -26
- genmod-3.10/mkdocs.yml +20 -0
- genmod-3.10/pyproject.toml +73 -0
- genmod-3.10/pytest.ini +5 -0
- genmod-3.10/setup.cfg +13 -0
- genmod-3.10/tests/__init__.py +0 -0
- genmod-3.10/tests/annotate_regions/test_bed_parser.py +35 -0
- genmod-3.10/tests/annotate_regions/test_build_region_trees.py +53 -0
- genmod-3.10/tests/annotate_regions/test_get_interval.py +17 -0
- genmod-3.10/tests/annotate_variants/test_add_annotations.py +101 -0
- genmod-3.10/tests/conftest.py +78 -0
- genmod-3.10/tests/fixtures/annotate_models/one_ind.ped +2 -0
- genmod-3.10/tests/fixtures/annotate_variant/small_1000G.vcf.gz +0 -0
- genmod-3.10/tests/fixtures/annotate_variant/small_1000G.vcf.gz.tbi +0 -0
- genmod-3.10/tests/fixtures/annotate_variant/small_1000G_CADD.tsv.gz +0 -0
- genmod-3.10/tests/fixtures/annotate_variant/small_1000G_CADD.tsv.gz.tbi +0 -0
- genmod-3.10/tests/fixtures/annotate_variant/small_1000G_chr.vcf.gz +0 -0
- genmod-3.10/tests/fixtures/annotate_variant/small_1000G_chr.vcf.gz.tbi +0 -0
- genmod-3.10/tests/fixtures/annotate_variant/small_1000G_maxAF.vcf +316 -0
- genmod-3.10/tests/fixtures/annotate_variant/small_1000G_maxAF.vcf.gz +0 -0
- genmod-3.10/tests/fixtures/annotate_variant/small_1000G_maxAF.vcf.gz.tbi +0 -0
- genmod-3.10/tests/fixtures/annotate_variant/small_CADD.tsv.gz +0 -0
- genmod-3.10/tests/fixtures/annotate_variant/small_CADD.tsv.gz.tbi +0 -0
- genmod-3.10/tests/fixtures/comp_check.vcf +17 -0
- genmod-3.10/tests/fixtures/duo.ped +3 -0
- genmod-3.10/tests/fixtures/empty.vcf +5 -0
- genmod-3.10/tests/fixtures/one_ind.ped +2 -0
- genmod-3.10/tests/fixtures/recessive_trio.ped +4 -0
- genmod-3.10/tests/fixtures/reduced_penetrance.tsv +2 -0
- genmod-3.10/tests/fixtures/resources/small_spidex.tsv +1540 -0
- genmod-3.10/tests/fixtures/resources/small_spidex.tsv.gz +0 -0
- genmod-3.10/tests/fixtures/resources/small_spidex.tsv.gz.tbi +0 -0
- genmod-3.10/tests/fixtures/score_variants/genmod_example.ini +180 -0
- {genmod-3.8.3/examples → genmod-3.10/tests/fixtures}/test_vcf.vcf +2 -2
- genmod-3.10/tests/fixtures/test_vcf_annotated.vcf +27 -0
- genmod-3.10/tests/fixtures/test_vcf_annotated_empty.vcf +12 -0
- genmod-3.10/tests/fixtures/test_vcf_annotated_scored.vcf +27 -0
- genmod-3.10/tests/fixtures/test_vcf_regions.vcf +21 -0
- genmod-3.10/tests/fixtures/test_vcf_regions_with_chr.vcf +21 -0
- genmod-3.10/tests/functionality/test_annotate_models.py +97 -0
- genmod-3.10/tests/functionality/test_annotate_variant.py +62 -0
- genmod-3.10/tests/functionality/test_filter_variants.py +16 -0
- genmod-3.10/tests/functionality/test_score_variants.py +62 -0
- genmod-3.10/tests/functionality/test_score_variants_ranks_score_is_float.py +98 -0
- genmod-3.10/tests/functionality/test_sort_variants.py +98 -0
- genmod-3.10/tests/functionality/test_utils.py +40 -0
- genmod-3.10/tests/genetic_models/test_dominant_model.py +138 -0
- genmod-3.10/tests/genetic_models/test_x_dominant.py +251 -0
- genmod-3.10/tests/genetic_models/test_x_recessive.py +187 -0
- genmod-3.10/tests/score_variants/test_category_score.py +294 -0
- genmod-3.10/tests/score_variants/test_config_parser.py +91 -0
- genmod-3.10/tests/score_variants/test_rankscore_capping.py +41 -0
- genmod-3.10/tests/score_variants/test_score_function.py +136 -0
- genmod-3.10/tests/utils/test_check_individuals.py +23 -0
- genmod-3.10/tests/utils/test_check_vep_annotation.py +27 -0
- genmod-3.10/tests/utils/test_generate_pairs.py +43 -0
- genmod-3.10/tests/utils/test_get_annotation.py +59 -0
- genmod-3.10/tests/utils/test_get_batches.py +215 -0
- genmod-3.10/tests/utils/test_get_priority.py +41 -0
- genmod-3.10/tests/utils/test_get_rank_score.py +75 -0
- genmod-3.10/tests/utils/test_is_number.py +31 -0
- genmod-3.10/tests/utils/test_variant_printer.py +78 -0
- genmod-3.10/tests/variant_annotation/test_get_frequencies.py +29 -0
- genmod-3.10/tests/variant_annotation/test_get_haploblocks.py +104 -0
- genmod-3.10/tests/variant_annotation/test_get_tabix_records.py +31 -0
- genmod-3.10/tests/vcf_tools/test_genotype.py +190 -0
- genmod-3.10/tests/vcf_tools/test_header_parser.py +94 -0
- genmod-3.10/tests/vcf_tools/test_parse_variant.py +19 -0
- genmod-3.10/tests/vcf_tools/test_sorting.py +55 -0
- genmod-3.10/uv.lock +1045 -0
- genmod-3.8.3/PKG-INFO +0 -31
- genmod-3.8.3/genmod/__init__.py +0 -14
- genmod-3.8.3/genmod/annotate_models/__init__.py +0 -7
- genmod-3.8.3/genmod/annotate_models/make_haploblocks.py +0 -126
- genmod-3.8.3/genmod/annotate_models/models/__init__.py +0 -7
- genmod-3.8.3/genmod/annotate_variants/__init__.py +0 -4
- genmod-3.8.3/genmod/annotate_variants/add_annotations.py +0 -122
- genmod-3.8.3/genmod/annotate_variants/annotate.py +0 -82
- genmod-3.8.3/genmod/annotations/__init__.py +0 -7
- genmod-3.8.3/genmod/commands/analyze.py +0 -628
- genmod-3.8.3/genmod/commands/annotate_variant.py +0 -212
- genmod-3.8.3/genmod/commands/utils.py +0 -53
- genmod-3.8.3/genmod/errors/__init__.py +0 -2
- genmod-3.8.3/genmod/score_variants/__init__.py +0 -8
- genmod-3.8.3/genmod/score_variants/rank_score_variant_definitions.py +0 -8
- genmod-3.8.3/genmod/utils/__init__.py +0 -67
- genmod-3.8.3/genmod/vcf_tools/__init__.py +0 -16
- genmod-3.8.3/genmod/vcf_tools/get_genotypes.py +0 -29
- genmod-3.8.3/genmod/vcf_tools/parse_variant.py +0 -93
- genmod-3.8.3/genmod.egg-info/PKG-INFO +0 -31
- genmod-3.8.3/genmod.egg-info/SOURCES.txt +0 -96
- genmod-3.8.3/genmod.egg-info/dependency_links.txt +0 -1
- genmod-3.8.3/genmod.egg-info/entry_points.txt +0 -2
- genmod-3.8.3/genmod.egg-info/requires.txt +0 -10
- genmod-3.8.3/genmod.egg-info/top_level.txt +0 -1
- genmod-3.8.3/setup.cfg +0 -14
- genmod-3.8.3/setup.py +0 -65
- {genmod-3.8.3 → genmod-3.10}/LICENSE.txt +0 -0
- /genmod-3.8.3/genmod/annotate_regions/__init__.py → /genmod-3.10/docs/commands/sort-variants.md +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/dominant_trio.ped +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/multi_allele_example.vcf +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/multi_family.ped +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/recessive_trio.ped +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/small_1000G.vcf +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/small_1000G.vcf.gz +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/small_1000G.vcf.gz.tbi +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/small_1000G_CADD.tsv.gz +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/small_1000G_CADD.tsv.gz.tbi +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/small_CADD.tsv.gz +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/small_CADD.tsv.gz.tbi +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/small_dbNSFP.txt.gz +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/small_dbNSFP.txt.gz.tbi +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/small_vep.vcf +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/test_phased_compounds.vcf +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/test_vcf_regions.vcf +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/test_vcf_regions_models.vcf +0 -0
- {genmod-3.8.3 → genmod-3.10}/examples/test_vcf_regions_models_scored.vcf +0 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/annotations/ensembl_genes_37.txt.gz +0 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/annotations/ensembl_genes_38.txt.gz +0 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/configs/genmod_test.v1.5.ini +0 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/configs/rank_model_cmms_v1.7.ini +0 -0
- {genmod-3.8.3 → genmod-3.10}/genmod/configs/rank_model_cmms_v1.9.ini +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types:
|
|
6
|
+
- created
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
pypi:
|
|
10
|
+
name: Build and publish to PyPI
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
permissions:
|
|
13
|
+
id-token: write
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
- uses: astral-sh/setup-uv@v3
|
|
17
|
+
- run: uv build
|
|
18
|
+
- run: uv publish --trusted-publishing always
|
|
19
|
+
|
|
20
|
+
docker-image-CI:
|
|
21
|
+
name: Docker Image CI
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
steps:
|
|
24
|
+
|
|
25
|
+
- name: Check out git repository
|
|
26
|
+
uses: actions/checkout@v4
|
|
27
|
+
|
|
28
|
+
- name: Login to Docker Hub
|
|
29
|
+
uses: docker/login-action@v3
|
|
30
|
+
with:
|
|
31
|
+
username: ${{ secrets.DOCKER_USERNAME }}
|
|
32
|
+
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
33
|
+
|
|
34
|
+
- name: Set up Docker Buildx
|
|
35
|
+
id: buildx
|
|
36
|
+
uses: docker/setup-buildx-action@v3
|
|
37
|
+
|
|
38
|
+
- name: Publish server image (Dockerfile-server) to Registry
|
|
39
|
+
uses: docker/build-push-action@v6
|
|
40
|
+
with:
|
|
41
|
+
context: ./
|
|
42
|
+
file: ./Dockerfile
|
|
43
|
+
push: true
|
|
44
|
+
provenance: mode=max
|
|
45
|
+
sbom: true
|
|
46
|
+
tags: "clinicalgenomics/genmod:latest, clinicalgenomics/genmod:${{ github.event.release.tag_name }}"
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
deploy-docs:
|
|
50
|
+
name: Deploy Docs to GitHubIO
|
|
51
|
+
runs-on: ubuntu-latest
|
|
52
|
+
steps:
|
|
53
|
+
- name: Checkout repo
|
|
54
|
+
uses: actions/checkout@v4
|
|
55
|
+
- name: Setup environment for docs deployment
|
|
56
|
+
uses: actions/setup-python@v5
|
|
57
|
+
with:
|
|
58
|
+
python-version: 3.x
|
|
59
|
+
- name: Install mkdocs
|
|
60
|
+
run: pip install mkdocs mkdocs-material markdown-include
|
|
61
|
+
- name: Deploy documentation
|
|
62
|
+
run: mkdocs gh-deploy --force
|
|
63
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Basic CI setup: Lint format with ruff
|
|
2
|
+
name: Format-check
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
pull_request:
|
|
6
|
+
types: [ opened, synchronize, reopened, ready_for_review, labeled, unlabeled ]
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
lint-format:
|
|
10
|
+
name: Ruff includes and format
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
- name: Ruff check import sorting
|
|
16
|
+
uses: astral-sh/ruff-action@v3
|
|
17
|
+
with:
|
|
18
|
+
version: "latest"
|
|
19
|
+
args: "check --select I ."
|
|
20
|
+
|
|
21
|
+
- name: Ruff format diff
|
|
22
|
+
uses: astral-sh/ruff-action@v3
|
|
23
|
+
with:
|
|
24
|
+
version: "latest"
|
|
25
|
+
args: "format --diff ."
|
|
26
|
+
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: "Changelog Reminder"
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled]
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
# Enforces the update of a changelog file on every pull request
|
|
8
|
+
changelog:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v4
|
|
12
|
+
- uses: dangoslen/changelog-enforcer@v3
|
|
13
|
+
with:
|
|
14
|
+
changeLogPath: 'CHANGELOG.md'
|
|
15
|
+
skipLabels: 'Skip-Changelog'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Basic CI setup: Lint with ruff
|
|
2
|
+
name: Lint
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
pull_request:
|
|
6
|
+
types: [ opened, synchronize, reopened, ready_for_review, labeled, unlabeled ]
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
lint:
|
|
10
|
+
name: Lint
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
- name: Ruff lint
|
|
16
|
+
uses: astral-sh/ruff-action@v3
|
|
17
|
+
with:
|
|
18
|
+
version: "latest"
|
|
19
|
+
args: "check ."
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
#push:
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
run-tests:
|
|
9
|
+
timeout-minutes: 30
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- name: Checkout Repository
|
|
13
|
+
uses: actions/checkout@v4
|
|
14
|
+
with:
|
|
15
|
+
ref: "${{github.event.inputs.branch_name}}"
|
|
16
|
+
fetch-depth: 0
|
|
17
|
+
|
|
18
|
+
- name: Run Tests
|
|
19
|
+
run: |
|
|
20
|
+
make test
|
|
21
|
+
|
|
22
|
+
- name: Run Packaging Test
|
|
23
|
+
run: |
|
|
24
|
+
make test_dist
|
genmod-3.10/.gitignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.13
|
genmod-3.10/.travis.yml
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# config file for automatic testing at travis-ci.org
|
|
2
|
+
language: python
|
|
3
|
+
|
|
4
|
+
python:
|
|
5
|
+
- "2.7"
|
|
6
|
+
|
|
7
|
+
install:
|
|
8
|
+
# install test dependencies and package
|
|
9
|
+
- pip install pytest
|
|
10
|
+
- pip install .
|
|
11
|
+
|
|
12
|
+
script:
|
|
13
|
+
- py.test
|
|
14
|
+
|
|
15
|
+
notifications:
|
|
16
|
+
email: no
|
genmod-3.10/CHANGELOG.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
All notable changes to this project will be documented in this file.
|
|
3
|
+
This project adheres to [Semantic Versioning](http://semver.org/).
|
|
4
|
+
|
|
5
|
+
About changelog [here](https://keepachangelog.com/en/1.0.0/)
|
|
6
|
+
|
|
7
|
+
Please add a new candidate release at the top after changing the latest one. Feel free to copy paste from the "squash and commit" box that gets generated when creating PRs
|
|
8
|
+
|
|
9
|
+
Try to use the following format:
|
|
10
|
+
|
|
11
|
+
## [3.10]
|
|
12
|
+
### Changed
|
|
13
|
+
- Use `uv` with `hatchling` to build and publish ([#104](https://github.com/Clinical-Genomics/genmod/issues/143))
|
|
14
|
+
- Automation for Docker publish and mkdocs githubio ([#161](https://github.com/Clinical-Genomics/genmod/issues/161))
|
|
15
|
+
### Fixed
|
|
16
|
+
- The optional fields Source and Version are allowed in the VCF header([#106](https://github.com/Clinical-Genomics/genmod/pull/106))
|
|
17
|
+
- Released the constraint on Python 3.8 (collections, pkg_resources to importlib, tests) ([#142](https://github.com/Clinical-Genomics/genmod/pull/142))
|
|
18
|
+
- Update annotation examples ([#144](https://github.com/Clinical-Genomics/genmod/pull/144))
|
|
19
|
+
- Updated documentation with warning about compounds only being scored within the first family in the VCF ([#151](https://github.com/Clinical-Genomics/genmod/pull/151))
|
|
20
|
+
- Fixed sorting of variants ([#152](https://github.com/Clinical-Genomics/genmod/pull/152))
|
|
21
|
+
- genmod annotate for mitochondrial variants when using the `chrM` notation ([#157](https://github.com/Clinical-Genomics/genmod/pull/157))
|
|
22
|
+
- Fix linting issues ([#154](https://github.com/Clinical-Genomics/genmod/issues/154))
|
|
23
|
+
- genmod models adds headers to VCF even if it contains no variants ([#160](https://github.com/Clinical-Genomics/genmod/pull/160))
|
|
24
|
+
|
|
25
|
+
## [3.9]
|
|
26
|
+
- Fixed wrong models when chromosome X was named `chrX` and not `X` ([#135](https://github.com/Clinical-Genomics/genmod/pull/135))
|
|
27
|
+
- Added GitHub Actions workflows for automatic publishing to PyPI on release, and keep a changelog reminder ([#136](https://github.com/Clinical-Genomics/genmod/pull/136))
|
|
28
|
+
- Optional user defined threshold and penalty for compound scoring ([#138](https://github.com/Clinical-Genomics/genmod/pull/138))
|
|
29
|
+
- Update README with current github.io docs page ([#140](https://github.com/Clinical-Genomics/genmod/pull/140))
|
|
30
|
+
|
|
31
|
+
## [3.8.3]
|
|
32
|
+
- Fixed unstable compounds order in models output ([#134](https://github.com/Clinical-Genomics/genmod/pull/134))
|
|
33
|
+
- Added `six` to requirements.txt and setup.py ([#134](https://github.com/Clinical-Genomics/genmod/pull/134))
|
|
34
|
+
|
|
35
|
+
## [3.8.0]
|
|
36
|
+
- Rank score normalisation
|
|
37
|
+
|
|
38
|
+
## [3.7.4]
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
- OSError crashes due to socket address conflicts when using containers
|
|
42
|
+
|
|
43
|
+
## [x.x.x]
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
- Adds support for escaped characters in FORMAT description header strings
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
- Documentation about cli options `strict` and `phased`
|
genmod-3.10/CITATION.cff
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
message: If you use this software, please cite it using these metadata.
|
|
3
|
+
title: genmod
|
|
4
|
+
abstract: Tool for annotating patterns of genetic inheritance in Variant Call Format (VCF) files.
|
|
5
|
+
authors:
|
|
6
|
+
- family-names: Magnusson
|
|
7
|
+
given-names: Måns
|
|
8
|
+
orcid: "https:// https://orcid.org/0000-0002-0001-1047"
|
|
9
|
+
version: 3.7.3
|
|
10
|
+
date-released: "2018-11-15"
|
|
11
|
+
identifiers:
|
|
12
|
+
- description: Updates click dependency
|
|
13
|
+
type: doi
|
|
14
|
+
value: "10.5281/zenodo.3841142"
|
|
15
|
+
license: MIT Licence
|
|
16
|
+
repository-code: "https://github.com/Clinical-Genomics/genmod"
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Developing
|
|
2
|
+
|
|
3
|
+
## Host Requirements
|
|
4
|
+
* Docker
|
|
5
|
+
* package "build-essentials" for running Makefile
|
|
6
|
+
|
|
7
|
+
## Run pytest
|
|
8
|
+
There's support for pytest via Docker.
|
|
9
|
+
|
|
10
|
+
Run the following to run pytest:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
make test
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Running Genmod CLI
|
|
17
|
+
```
|
|
18
|
+
python3 -m genmod.commands.base
|
|
19
|
+
```
|
genmod-3.10/Dockerfile
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
###############################################
|
|
2
|
+
# Dockerfile to build GeMod container image
|
|
3
|
+
###############################################
|
|
4
|
+
FROM ghcr.io/astral-sh/uv:python3.13-alpine
|
|
5
|
+
|
|
6
|
+
RUN apk update & apk add build-base zlib-dev
|
|
7
|
+
# Copy the project into the image
|
|
8
|
+
ADD . /app
|
|
9
|
+
|
|
10
|
+
# Sync the project into a new virtual environment, using the frozen lockfile
|
|
11
|
+
WORKDIR /app
|
|
12
|
+
RUN uv sync --frozen
|
|
13
|
+
|
|
14
|
+
# Add the project venv to PATH to be able to run genmod without changing to the environment
|
|
15
|
+
ENV PATH="/app/.venv/bin:$PATH"
|
|
16
|
+
|
|
17
|
+
ENTRYPOINT ["genmod"]
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
include CHANGELOG.md
|
|
2
|
+
include LICENSE.txt
|
|
3
|
+
include README.md
|
|
4
|
+
|
|
1
5
|
recursive-include examples *.ped *.vcf *.gz *.tbi
|
|
2
6
|
recursive-include genmod/annotations *.gz
|
|
3
7
|
recursive-include genmod/configs *.ini
|
|
4
8
|
recursive-exclude * __pycache__
|
|
5
|
-
recursive-exclude * *.py[co]
|
|
9
|
+
recursive-exclude * *.py[co]
|
genmod-3.10/Makefile
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
.PHONY: *
|
|
2
|
+
|
|
3
|
+
DOCKER=DOCKER_BUILDKIT=1 docker
|
|
4
|
+
|
|
5
|
+
all:
|
|
6
|
+
# Nothing to be built
|
|
7
|
+
|
|
8
|
+
docker-build:
|
|
9
|
+
$(DOCKER) build -t genmod/test --force-rm=true --rm=true -f Dockerfile.pytest .
|
|
10
|
+
|
|
11
|
+
test: docker-build
|
|
12
|
+
$(DOCKER) run -i -l genmod-test genmod/test -v
|
|
13
|
+
|
|
14
|
+
test_%: docker-build
|
|
15
|
+
$(DOCKER) run -i -l genmod-test genmod/test -v -k $@
|
|
16
|
+
|
|
17
|
+
test_dist: docker-build
|
|
18
|
+
$(DOCKER) run -i -l genmod-test --entrypoint=bash genmod/test -c \
|
|
19
|
+
"uv build && \
|
|
20
|
+
pip3 install dist/genmod*.tar.gz && \
|
|
21
|
+
uv run genmod -v annotate --annotate-regions --genome-build 37 examples/test_vcf.vcf"
|
|
22
|
+
|
|
23
|
+
docker-clean-images:
|
|
24
|
+
docker system prune
|
|
@@ -1,9 +1,43 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: genmod
|
|
3
|
+
Version: 3.10
|
|
4
|
+
Summary: Annotate genetic inheritance models in Variant Call Format (VCF) files
|
|
5
|
+
Project-URL: Repository, http://github.com/Clinical-Genomics/genmod
|
|
6
|
+
Project-URL: Changelog, https://github.com/Clinical-Genomics/genmod/blob/main/CHANGELOG.md
|
|
7
|
+
Project-URL: Bug Tracker, https://github.com/Clinical-Genomics/genmod/issues
|
|
8
|
+
Author-email: Mans Magnuson <mans.magnusson@scilifelab.se>, Tor Björgen <tor.bjorgen@scilifelab.se>, Felix Lenner <felix.lenner@scilifelab.se>, Anders Jemt <anders.jemt@scilifelab.se>, Daniel Nilsson <daniel.nilsson@ki.se>
|
|
9
|
+
License: MIT License
|
|
10
|
+
License-File: LICENSE.txt
|
|
11
|
+
Keywords: inheritance,variants,vcf
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
16
|
+
Classifier: Operating System :: Unix
|
|
17
|
+
Classifier: Programming Language :: Python
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
21
|
+
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
|
|
22
|
+
Requires-Python: >=3.7
|
|
23
|
+
Requires-Dist: click
|
|
24
|
+
Requires-Dist: configobj
|
|
25
|
+
Requires-Dist: extract-vcf
|
|
26
|
+
Requires-Dist: importlib-resources
|
|
27
|
+
Requires-Dist: interval-tree>=0.3.4
|
|
28
|
+
Requires-Dist: intervaltree>=3.1.0
|
|
29
|
+
Requires-Dist: ped-parser
|
|
30
|
+
Requires-Dist: pytabix
|
|
31
|
+
Requires-Dist: six
|
|
32
|
+
Requires-Dist: vcftoolbox
|
|
33
|
+
Description-Content-Type: text/markdown
|
|
34
|
+
|
|
1
35
|
# GENMOD #
|
|
2
36
|
|
|
3
37
|
|
|
4
38
|
|
|
5
39
|
[](https://doi.org/10.5281/zenodo.3841142)
|
|
6
|
-
|
|
40
|
+
![Build Status - GitHub][actions-build-status]
|
|
7
41
|
|
|
8
42
|
|
|
9
43
|
**GENMOD** is a simple to use command line tool for annotating and analyzing genomic variations in the [VCF](http://samtools.github.io/hts-specs/VCFv4.1.pdf) file format.
|
|
@@ -17,7 +51,7 @@ The tools in the genmod suite are:
|
|
|
17
51
|
- **genmod score**, Score the variants of a vcf based on their annotation
|
|
18
52
|
- **genmod filter**, Filter the variants of a vcf based on their annotation
|
|
19
53
|
|
|
20
|
-
##Installation
|
|
54
|
+
## Installation
|
|
21
55
|
|
|
22
56
|
**GENMOD**
|
|
23
57
|
|
|
@@ -25,18 +59,17 @@ The tools in the genmod suite are:
|
|
|
25
59
|
|
|
26
60
|
or
|
|
27
61
|
|
|
28
|
-
git clone https://github.com/
|
|
62
|
+
git clone https://github.com/Clinical-Genomics/genmod.git
|
|
29
63
|
cd genmod
|
|
30
|
-
|
|
31
|
-
|
|
64
|
+
uv install genmod
|
|
65
|
+
uv run genmod
|
|
32
66
|
|
|
33
|
-
## USAGE: ##
|
|
34
67
|
|
|
35
|
-
|
|
36
|
-
*This is an overview, for more in depth documentation see [documentation](http://moonso.github.io/genmod/)*
|
|
68
|
+
## Usage
|
|
37
69
|
|
|
70
|
+
*This is an overview, for more in depth documentation see [documentation](https://Clinical-Genomics.github.io/genmod)*
|
|
38
71
|
|
|
39
|
-
### Example
|
|
72
|
+
### Example
|
|
40
73
|
|
|
41
74
|
|
|
42
75
|
The following command should work when installed successfully. The files are distributed with the package.
|
|
@@ -139,17 +172,18 @@ $genmod models <vcf_file> -f/--family_file <family.ped>
|
|
|
139
172
|
|
|
140
173
|
```
|
|
141
174
|
|
|
142
|
-
|
|
143
|
-
|
|
175
|
+
#### genmod annotate
|
|
144
176
|
|
|
177
|
+
```
|
|
145
178
|
genmod annotate variant_file.vcf
|
|
179
|
+
```
|
|
146
180
|
|
|
147
181
|
This will print a new vcf to standard out with all variants annotated according to the statements below.
|
|
148
182
|
All individuals described in the [ped](http://pngu.mgh.harvard.edu/~purcell/plink/data.shtml#ped) file must be present in the vcf file
|
|
149
183
|
|
|
150
184
|
See examples in the folder ```genmod/examples```.
|
|
151
185
|
|
|
152
|
-
**From version 1.9 genmod can split multiallelic calls in
|
|
186
|
+
**From version 1.9 genmod can split multiallelic calls in VCFs: use flag `-split/--split_variants`.**
|
|
153
187
|
|
|
154
188
|
To get an example of how splitting variants work, run genmod on the file ```examples/multi_allele_example.vcf``` with the dominant trio.
|
|
155
189
|
That is:
|
|
@@ -157,12 +191,6 @@ That is:
|
|
|
157
191
|
|
|
158
192
|
Compare the result when not using the ```-split``` flag.
|
|
159
193
|
|
|
160
|
-
Genmod is distributed with a annotation database that is built from the refGene data.
|
|
161
|
-
If the user wants to build a new annotation set use the command below:
|
|
162
|
-
|
|
163
|
-
genmod build_annotation [--type] annotation_file
|
|
164
|
-
|
|
165
|
-
|
|
166
194
|
Each variant in the VCF-file will be annotated with which genetic models that are followed in the family if a family file
|
|
167
195
|
(ped file) is provided.
|
|
168
196
|
|
|
@@ -184,7 +212,7 @@ It is possible to run without a family file, in this case all variants will be a
|
|
|
184
212
|
|
|
185
213
|
[Variant Effect Predictor](http://www.ensembl.org/info/docs/tools/vep/index.html)(vep) annotations are supported, use the ```--vep```-flag if variants are already annotated with vep.
|
|
186
214
|
|
|
187
|
-
**GENMOD** will add
|
|
215
|
+
**GENMOD** will add entries to the INFO column for the given VCF file depending on what information is given.
|
|
188
216
|
|
|
189
217
|
If ```--vep``` is NOT provided:
|
|
190
218
|
|
|
@@ -202,7 +230,6 @@ Also a line for logging is added in the vcf header with the id **genmod**, here
|
|
|
202
230
|
|
|
203
231
|
- Compound heterozygote inheritance pattern will be checked if two variants are exonic (or in canonical splice sites) and if they reside in the same gene.
|
|
204
232
|
|
|
205
|
-
- If compounds should be checked in the whole gene (including introns) use ```--whole_gene```
|
|
206
233
|
- GENMOD supports phased data, use the ```-phased``` flag. Data should follow the [GATK way](http://gatkforums.broadinstitute.org/discussion/45/read-backed-phasing) of phasing.
|
|
207
234
|
|
|
208
235
|
All annotations will be present only if they have a value.
|
|
@@ -218,40 +245,10 @@ All annotations will be present only if they have a value.
|
|
|
218
245
|
- By default the relative cadd scores is annotated with 'CADD=score', there is also an alternative to annotate with the raw cadd scores using the `--cadd_raw` flag. In this case a info field 'CADD_raw=score'.
|
|
219
246
|
- If your VCF is already annotated with VEP, use `-vep/--vep`
|
|
220
247
|
- If data is phased use `-phased/--phased`
|
|
221
|
-
- If you want to allow compound pairs in intronic regions to use `-gene/--whole_gene`
|
|
222
248
|
- If you want canonical splice site region to be bigger than 2 base pairs on each side of the exons, use `-splice/--splice_padding <integer>`
|
|
223
249
|
- The `-strict/--strict` flag tells **genmod** to only annotate genetic models if they are proved by the data. If a variant is not called in a family member it will not be annotated.
|
|
224
250
|
|
|
225
|
-
|
|
226
|
-
###genmod build_annotation###
|
|
227
|
-
|
|
228
|
-
genmod build_annotation [--type] [-o/--outdir] annotation_file
|
|
229
|
-
|
|
230
|
-
The following file formats are supported for building new annotations:
|
|
231
|
-
|
|
232
|
-
- bed
|
|
233
|
-
- ccds
|
|
234
|
-
- gtf
|
|
235
|
-
- gene_pred
|
|
236
|
-
|
|
237
|
-
The user can also specify the amount of positions around exon boundaries that should be considered as splice sites. Use
|
|
238
|
-
|
|
239
|
-
```--splice_padding INTEGER```
|
|
240
|
-
|
|
241
|
-
###genmod analyze###
|
|
242
|
-
|
|
243
|
-
From version 1.6 there is also a tool for analyzing the variants annotated by **genmod**. This tool will look at all variants in a vcf and do an analysis based on which inheritance patterns they follow. The variants are then ranked based on the cadd scores, the highest ranked variants for each category is printed to screen and the full list for each category is printed to new vcf files.
|
|
244
|
-
Run with:
|
|
245
|
-
|
|
246
|
-
genmod analyze path/to/file.vcf
|
|
247
|
-
|
|
248
|
-
For more information do
|
|
249
|
-
|
|
250
|
-
genmod analyze --help
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
### genmod sort ###
|
|
254
|
-
|
|
251
|
+
#### genmod sort
|
|
255
252
|
|
|
256
253
|
Sort a VCF file based on Rank Score.
|
|
257
254
|
|
|
@@ -269,18 +266,9 @@ Options:
|
|
|
269
266
|
--help Show this message and exit.
|
|
270
267
|
```
|
|
271
268
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
Tool to get basic statistics of the annotated in a vcf file.
|
|
275
|
-
Run
|
|
276
|
-
|
|
277
|
-
genmod summarize --help
|
|
269
|
+
## Conditions for Genetic Models
|
|
278
270
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
## Conditions for Genetic Models ##
|
|
282
|
-
|
|
283
|
-
### Short explanation of genotype calls in VCF format:###
|
|
271
|
+
### Short explanation of genotype calls in VCF format
|
|
284
272
|
|
|
285
273
|
Since we only look at humans, that are diploid, the genotypes represent what we see on both alleles in a single position.
|
|
286
274
|
0 represents the reference sequence, 1 is the first of the alternative alleles, 2 second alternative and so on.
|
|
@@ -290,8 +278,7 @@ Some chromosomes are only present in one copy in humans, here it is allowed to o
|
|
|
290
278
|
|
|
291
279
|
If phasing has been done the pairs are not unordered anymore and the delimiter is then changed to '|', so one can be heterozygote in two ways; 0|1 or 1|0.
|
|
292
280
|
|
|
293
|
-
|
|
294
|
-
### Autosomal Recessive ###
|
|
281
|
+
### Autosomal Recessive
|
|
295
282
|
|
|
296
283
|
For this model individuals can be carriers so healthy individuals can be heterozygous. Both alleles need to have the variant for an individual to be sick so a healthy individual can not be homozygous alternative and a sick individual *has* to be homozygous alternative.
|
|
297
284
|
|
|
@@ -300,19 +287,15 @@ For this model individuals can be carriers so healthy individuals can be heteroz
|
|
|
300
287
|
* Variant is considered _de novo_ if both parents are genotyped and do not carry the variant
|
|
301
288
|
|
|
302
289
|
|
|
303
|
-
### Autosomal Dominant
|
|
290
|
+
### Autosomal Dominant
|
|
304
291
|
|
|
305
292
|
* Affected individuals have to be heterozygous (het.)
|
|
306
293
|
* Healthy individuals cannot have the alternative variant
|
|
307
294
|
* Variant is considered _de novo_ if both parents are genotyped and do not carry the variant
|
|
308
295
|
|
|
309
|
-
|
|
310
|
-
### Autosomal Compound Heterozygote ###
|
|
296
|
+
### Autosomal Compound Heterozygote
|
|
311
297
|
|
|
312
298
|
This model includes pairs of exonic variants that are present within the same gene.
|
|
313
|
-
**The default behaviour of GENMOD is to look for compounds only in exonic/canonical splice sites**.
|
|
314
|
-
The reason for this is that since some genes have huge intronic regions the data will be drowned in compound pairs.
|
|
315
|
-
If the user wants all variants in genes checked use the flag -gene/--whole_gene.
|
|
316
299
|
|
|
317
300
|
1. Non-phased data:
|
|
318
301
|
* Affected individuals have to be het. for both variants
|
|
@@ -326,7 +309,7 @@ If the user wants all variants in genes checked use the flag -gene/--whole_gene.
|
|
|
326
309
|
* If only one or no variant is found in parents it is considered _de novo_
|
|
327
310
|
|
|
328
311
|
|
|
329
|
-
### X-Linked Dominant
|
|
312
|
+
### X-Linked Dominant
|
|
330
313
|
|
|
331
314
|
These traits are inherited on the x-chromosome, of which men have one allele and women have two.
|
|
332
315
|
|
|
@@ -338,7 +321,7 @@ These traits are inherited on the x-chromosome, of which men have one allele and
|
|
|
338
321
|
* If sex is female variant is considered _de novo_ if none of the parents carry the variant
|
|
339
322
|
|
|
340
323
|
|
|
341
|
-
### X Linked Recessive
|
|
324
|
+
### X Linked Recessive
|
|
342
325
|
|
|
343
326
|
* Variant has to be on chromosome X
|
|
344
327
|
* Affected males have to be het. or hom. alt. (het is theoretically not possible in males, but can occur due to Pseudo Autosomal Regions).
|
|
@@ -347,4 +330,7 @@ These traits are inherited on the x-chromosome, of which men have one allele and
|
|
|
347
330
|
* Healthy males cannot carry the variant
|
|
348
331
|
* If sex is male the variant is considered _de novo_ if mother is genotyped and does not carry the variant
|
|
349
332
|
* If sex is female variant is considered _de novo_ if not both parents carry the variant
|
|
350
|
-
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
[actions-build-status]: https://github.com/Clinical-Genomics/genmod/actions/workflows/build_and_publish.yml/badge.svg
|