genmod 3.9__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.
Files changed (215) hide show
  1. genmod-3.10/.github/workflows/build_and_publish.yml +63 -0
  2. genmod-3.10/.github/workflows/check_format.yml +26 -0
  3. genmod-3.10/.github/workflows/keep_a_changelog.yml +15 -0
  4. genmod-3.10/.github/workflows/lint.yml +19 -0
  5. genmod-3.10/.github/workflows/test.yml +24 -0
  6. genmod-3.10/.gitignore +20 -0
  7. genmod-3.10/.python-version +1 -0
  8. genmod-3.10/.travis.yml +16 -0
  9. genmod-3.10/CHANGELOG.md +49 -0
  10. genmod-3.10/CITATION.cff +16 -0
  11. genmod-3.10/DEVELOPING.md +19 -0
  12. genmod-3.10/Dockerfile +17 -0
  13. genmod-3.10/Dockerfile.pytest +9 -0
  14. {genmod-3.9 → genmod-3.10}/MANIFEST.in +5 -1
  15. genmod-3.10/Makefile +24 -0
  16. genmod-3.10/PKG-INFO +336 -0
  17. {genmod-3.9 → genmod-3.10}/README.md +2 -6
  18. genmod-3.10/artwork/tree_man.JPG +0 -0
  19. genmod-3.10/docs/commands/annotate-models.md +110 -0
  20. genmod-3.10/docs/commands/annotate-variants.md +44 -0
  21. genmod-3.10/docs/commands/build-annotation.md +28 -0
  22. genmod-3.10/docs/commands/filter-variants.md +43 -0
  23. genmod-3.10/docs/commands/score-compounds.md +23 -0
  24. genmod-3.10/docs/commands/score-variants.md +19 -0
  25. genmod-3.10/docs/genetic-models.md +75 -0
  26. genmod-3.10/docs/index.md +137 -0
  27. genmod-3.10/examples/readme.md +57 -0
  28. genmod-3.10/examples/score_test.ini +155 -0
  29. genmod-3.10/examples/small_1000G_CADD.tsv +23 -0
  30. genmod-3.10/examples/small_CADD.tsv +2185 -0
  31. genmod-3.10/examples/small_dbNSFP.txt +317 -0
  32. genmod-3.10/examples/small_geneset.gtf +106 -0
  33. genmod-3.10/examples/test_vcf.vcf +20 -0
  34. genmod-3.10/genmod/__init__.py +10 -0
  35. genmod-3.10/genmod/annotate_models/__init__.py +1 -0
  36. {genmod-3.9 → genmod-3.10}/genmod/annotate_models/fix_variant.py +35 -49
  37. {genmod-3.9 → genmod-3.10}/genmod/annotate_models/genetic_models.py +202 -227
  38. genmod-3.10/genmod/annotate_models/make_haploblocks.py +119 -0
  39. {genmod-3.9 → genmod-3.10}/genmod/annotate_models/model_score.py +22 -20
  40. genmod-3.10/genmod/annotate_models/models/__init__.py +15 -0
  41. {genmod-3.9 → genmod-3.10}/genmod/annotate_models/models/compound_model.py +54 -55
  42. {genmod-3.9 → genmod-3.10}/genmod/annotate_models/models/dominant_model.py +20 -20
  43. {genmod-3.9 → genmod-3.10}/genmod/annotate_models/models/recessive_model.py +14 -18
  44. {genmod-3.9 → genmod-3.10}/genmod/annotate_models/models/x_models.py +33 -30
  45. {genmod-3.9 → genmod-3.10}/genmod/annotate_models/variant_annotator.py +66 -62
  46. genmod-3.10/genmod/annotate_regions/__init__.py +0 -0
  47. {genmod-3.9 → genmod-3.10}/genmod/annotate_regions/get_features.py +3 -2
  48. {genmod-3.9 → genmod-3.10}/genmod/annotate_regions/parse_annotations.py +42 -44
  49. genmod-3.10/genmod/annotate_variants/__init__.py +10 -0
  50. genmod-3.10/genmod/annotate_variants/add_annotations.py +131 -0
  51. genmod-3.10/genmod/annotate_variants/annotate.py +87 -0
  52. {genmod-3.9 → genmod-3.10}/genmod/annotate_variants/read_tabix_files.py +47 -47
  53. genmod-3.10/genmod/annotations/__init__.py +7 -0
  54. {genmod-3.9 → genmod-3.10}/genmod/commands/__init__.py +13 -4
  55. genmod-3.10/genmod/commands/analyze.py +611 -0
  56. {genmod-3.9 → genmod-3.10}/genmod/commands/annotate_models.py +188 -187
  57. genmod-3.10/genmod/commands/annotate_variant.py +230 -0
  58. {genmod-3.9 → genmod-3.10}/genmod/commands/base.py +34 -30
  59. {genmod-3.9 → genmod-3.10}/genmod/commands/filter_variants.py +56 -61
  60. {genmod-3.9 → genmod-3.10}/genmod/commands/genmod_sort.py +42 -72
  61. {genmod-3.9 → genmod-3.10}/genmod/commands/score_compounds.py +70 -77
  62. {genmod-3.9 → genmod-3.10}/genmod/commands/score_variants.py +114 -100
  63. {genmod-3.9 → genmod-3.10}/genmod/commands/summarize_variants.py +81 -77
  64. genmod-3.10/genmod/commands/utils.py +53 -0
  65. genmod-3.10/genmod/errors/__init__.py +4 -0
  66. {genmod-3.9 → genmod-3.10}/genmod/errors/warning.py +6 -5
  67. {genmod-3.9 → genmod-3.10}/genmod/log.py +8 -8
  68. genmod-3.10/genmod/score_variants/__init__.py +19 -0
  69. {genmod-3.9 → genmod-3.10}/genmod/score_variants/cap_rank_score_to_min_bound.py +6 -6
  70. {genmod-3.9 → genmod-3.10}/genmod/score_variants/check_plugins.py +21 -18
  71. {genmod-3.9 → genmod-3.10}/genmod/score_variants/compound_scorer.py +147 -107
  72. {genmod-3.9 → genmod-3.10}/genmod/score_variants/config_parser.py +166 -190
  73. genmod-3.10/genmod/score_variants/rank_score_variant_definitions.py +8 -0
  74. {genmod-3.9 → genmod-3.10}/genmod/score_variants/score_function.py +77 -73
  75. {genmod-3.9 → genmod-3.10}/genmod/score_variants/score_variant.py +70 -60
  76. genmod-3.10/genmod/utils/__init__.py +44 -0
  77. {genmod-3.9 → genmod-3.10}/genmod/utils/check_individuals.py +8 -7
  78. {genmod-3.9 → genmod-3.10}/genmod/utils/get_batches.py +54 -52
  79. {genmod-3.9 → genmod-3.10}/genmod/utils/get_features.py +57 -27
  80. {genmod-3.9 → genmod-3.10}/genmod/utils/get_priority.py +36 -34
  81. {genmod-3.9 → genmod-3.10}/genmod/utils/is_number.py +3 -3
  82. {genmod-3.9 → genmod-3.10}/genmod/utils/pair_generator.py +17 -15
  83. {genmod-3.9 → genmod-3.10}/genmod/utils/variant_printer.py +37 -36
  84. genmod-3.10/genmod/vcf_tools/__init__.py +45 -0
  85. {genmod-3.9 → genmod-3.10}/genmod/vcf_tools/add_metadata.py +59 -56
  86. {genmod-3.9 → genmod-3.10}/genmod/vcf_tools/add_variant_information.py +46 -44
  87. {genmod-3.9 → genmod-3.10}/genmod/vcf_tools/check_info_header.py +6 -5
  88. {genmod-3.9 → genmod-3.10}/genmod/vcf_tools/genotype.py +33 -36
  89. genmod-3.10/genmod/vcf_tools/get_genotypes.py +29 -0
  90. {genmod-3.9 → genmod-3.10}/genmod/vcf_tools/header_parser.py +145 -154
  91. genmod-3.10/genmod/vcf_tools/parse_variant.py +97 -0
  92. {genmod-3.9 → genmod-3.10}/genmod/vcf_tools/print_headers.py +5 -6
  93. {genmod-3.9 → genmod-3.10}/genmod/vcf_tools/print_variants.py +45 -42
  94. {genmod-3.9 → genmod-3.10}/genmod/vcf_tools/sort_variants.py +21 -26
  95. genmod-3.10/mkdocs.yml +20 -0
  96. genmod-3.10/pyproject.toml +73 -0
  97. genmod-3.10/pytest.ini +5 -0
  98. genmod-3.10/setup.cfg +13 -0
  99. genmod-3.10/tests/__init__.py +0 -0
  100. genmod-3.10/tests/annotate_regions/test_bed_parser.py +35 -0
  101. genmod-3.10/tests/annotate_regions/test_build_region_trees.py +53 -0
  102. genmod-3.10/tests/annotate_regions/test_get_interval.py +17 -0
  103. genmod-3.10/tests/annotate_variants/test_add_annotations.py +101 -0
  104. genmod-3.10/tests/conftest.py +78 -0
  105. genmod-3.10/tests/fixtures/annotate_models/one_ind.ped +2 -0
  106. genmod-3.10/tests/fixtures/annotate_variant/small_1000G.vcf.gz +0 -0
  107. genmod-3.10/tests/fixtures/annotate_variant/small_1000G.vcf.gz.tbi +0 -0
  108. genmod-3.10/tests/fixtures/annotate_variant/small_1000G_CADD.tsv.gz +0 -0
  109. genmod-3.10/tests/fixtures/annotate_variant/small_1000G_CADD.tsv.gz.tbi +0 -0
  110. genmod-3.10/tests/fixtures/annotate_variant/small_1000G_chr.vcf.gz +0 -0
  111. genmod-3.10/tests/fixtures/annotate_variant/small_1000G_chr.vcf.gz.tbi +0 -0
  112. genmod-3.10/tests/fixtures/annotate_variant/small_1000G_maxAF.vcf +316 -0
  113. genmod-3.10/tests/fixtures/annotate_variant/small_1000G_maxAF.vcf.gz +0 -0
  114. genmod-3.10/tests/fixtures/annotate_variant/small_1000G_maxAF.vcf.gz.tbi +0 -0
  115. genmod-3.10/tests/fixtures/annotate_variant/small_CADD.tsv.gz +0 -0
  116. genmod-3.10/tests/fixtures/annotate_variant/small_CADD.tsv.gz.tbi +0 -0
  117. genmod-3.10/tests/fixtures/comp_check.vcf +17 -0
  118. genmod-3.10/tests/fixtures/duo.ped +3 -0
  119. genmod-3.10/tests/fixtures/empty.vcf +5 -0
  120. genmod-3.10/tests/fixtures/one_ind.ped +2 -0
  121. genmod-3.10/tests/fixtures/recessive_trio.ped +4 -0
  122. genmod-3.10/tests/fixtures/reduced_penetrance.tsv +2 -0
  123. genmod-3.10/tests/fixtures/resources/small_spidex.tsv +1540 -0
  124. genmod-3.10/tests/fixtures/resources/small_spidex.tsv.gz +0 -0
  125. genmod-3.10/tests/fixtures/resources/small_spidex.tsv.gz.tbi +0 -0
  126. genmod-3.10/tests/fixtures/score_variants/genmod_example.ini +180 -0
  127. {genmod-3.9/examples → genmod-3.10/tests/fixtures}/test_vcf.vcf +2 -2
  128. genmod-3.10/tests/fixtures/test_vcf_annotated.vcf +27 -0
  129. genmod-3.10/tests/fixtures/test_vcf_annotated_empty.vcf +12 -0
  130. genmod-3.10/tests/fixtures/test_vcf_annotated_scored.vcf +27 -0
  131. genmod-3.10/tests/fixtures/test_vcf_regions.vcf +21 -0
  132. genmod-3.10/tests/fixtures/test_vcf_regions_with_chr.vcf +21 -0
  133. genmod-3.10/tests/functionality/test_annotate_models.py +97 -0
  134. genmod-3.10/tests/functionality/test_annotate_variant.py +62 -0
  135. genmod-3.10/tests/functionality/test_filter_variants.py +16 -0
  136. genmod-3.10/tests/functionality/test_score_variants.py +62 -0
  137. genmod-3.10/tests/functionality/test_score_variants_ranks_score_is_float.py +98 -0
  138. genmod-3.10/tests/functionality/test_sort_variants.py +98 -0
  139. genmod-3.10/tests/functionality/test_utils.py +40 -0
  140. genmod-3.10/tests/genetic_models/test_dominant_model.py +138 -0
  141. genmod-3.10/tests/genetic_models/test_x_dominant.py +251 -0
  142. genmod-3.10/tests/genetic_models/test_x_recessive.py +187 -0
  143. genmod-3.10/tests/score_variants/test_category_score.py +294 -0
  144. genmod-3.10/tests/score_variants/test_config_parser.py +91 -0
  145. genmod-3.10/tests/score_variants/test_rankscore_capping.py +41 -0
  146. genmod-3.10/tests/score_variants/test_score_function.py +136 -0
  147. genmod-3.10/tests/utils/test_check_individuals.py +23 -0
  148. genmod-3.10/tests/utils/test_check_vep_annotation.py +27 -0
  149. genmod-3.10/tests/utils/test_generate_pairs.py +43 -0
  150. genmod-3.10/tests/utils/test_get_annotation.py +59 -0
  151. genmod-3.10/tests/utils/test_get_batches.py +215 -0
  152. genmod-3.10/tests/utils/test_get_priority.py +41 -0
  153. genmod-3.10/tests/utils/test_get_rank_score.py +75 -0
  154. genmod-3.10/tests/utils/test_is_number.py +31 -0
  155. genmod-3.10/tests/utils/test_variant_printer.py +78 -0
  156. genmod-3.10/tests/variant_annotation/test_get_frequencies.py +29 -0
  157. genmod-3.10/tests/variant_annotation/test_get_haploblocks.py +104 -0
  158. genmod-3.10/tests/variant_annotation/test_get_tabix_records.py +31 -0
  159. genmod-3.10/tests/vcf_tools/test_genotype.py +190 -0
  160. genmod-3.10/tests/vcf_tools/test_header_parser.py +94 -0
  161. genmod-3.10/tests/vcf_tools/test_parse_variant.py +19 -0
  162. genmod-3.10/tests/vcf_tools/test_sorting.py +55 -0
  163. genmod-3.10/uv.lock +1045 -0
  164. genmod-3.9/PKG-INFO +0 -19
  165. genmod-3.9/genmod/__init__.py +0 -14
  166. genmod-3.9/genmod/annotate_models/__init__.py +0 -7
  167. genmod-3.9/genmod/annotate_models/make_haploblocks.py +0 -126
  168. genmod-3.9/genmod/annotate_models/models/__init__.py +0 -7
  169. genmod-3.9/genmod/annotate_variants/__init__.py +0 -4
  170. genmod-3.9/genmod/annotate_variants/add_annotations.py +0 -122
  171. genmod-3.9/genmod/annotate_variants/annotate.py +0 -82
  172. genmod-3.9/genmod/annotations/__init__.py +0 -7
  173. genmod-3.9/genmod/commands/analyze.py +0 -628
  174. genmod-3.9/genmod/commands/annotate_variant.py +0 -212
  175. genmod-3.9/genmod/commands/utils.py +0 -53
  176. genmod-3.9/genmod/errors/__init__.py +0 -2
  177. genmod-3.9/genmod/score_variants/__init__.py +0 -8
  178. genmod-3.9/genmod/score_variants/rank_score_variant_definitions.py +0 -8
  179. genmod-3.9/genmod/utils/__init__.py +0 -67
  180. genmod-3.9/genmod/vcf_tools/__init__.py +0 -16
  181. genmod-3.9/genmod/vcf_tools/get_genotypes.py +0 -29
  182. genmod-3.9/genmod/vcf_tools/parse_variant.py +0 -93
  183. genmod-3.9/genmod.egg-info/PKG-INFO +0 -19
  184. genmod-3.9/genmod.egg-info/SOURCES.txt +0 -96
  185. genmod-3.9/genmod.egg-info/dependency_links.txt +0 -1
  186. genmod-3.9/genmod.egg-info/entry_points.txt +0 -3
  187. genmod-3.9/genmod.egg-info/requires.txt +0 -10
  188. genmod-3.9/genmod.egg-info/top_level.txt +0 -1
  189. genmod-3.9/setup.cfg +0 -14
  190. genmod-3.9/setup.py +0 -64
  191. {genmod-3.9 → genmod-3.10}/LICENSE.txt +0 -0
  192. /genmod-3.9/genmod/annotate_regions/__init__.py → /genmod-3.10/docs/commands/sort-variants.md +0 -0
  193. {genmod-3.9 → genmod-3.10}/examples/dominant_trio.ped +0 -0
  194. {genmod-3.9 → genmod-3.10}/examples/multi_allele_example.vcf +0 -0
  195. {genmod-3.9 → genmod-3.10}/examples/multi_family.ped +0 -0
  196. {genmod-3.9 → genmod-3.10}/examples/recessive_trio.ped +0 -0
  197. {genmod-3.9 → genmod-3.10}/examples/small_1000G.vcf +0 -0
  198. {genmod-3.9 → genmod-3.10}/examples/small_1000G.vcf.gz +0 -0
  199. {genmod-3.9 → genmod-3.10}/examples/small_1000G.vcf.gz.tbi +0 -0
  200. {genmod-3.9 → genmod-3.10}/examples/small_1000G_CADD.tsv.gz +0 -0
  201. {genmod-3.9 → genmod-3.10}/examples/small_1000G_CADD.tsv.gz.tbi +0 -0
  202. {genmod-3.9 → genmod-3.10}/examples/small_CADD.tsv.gz +0 -0
  203. {genmod-3.9 → genmod-3.10}/examples/small_CADD.tsv.gz.tbi +0 -0
  204. {genmod-3.9 → genmod-3.10}/examples/small_dbNSFP.txt.gz +0 -0
  205. {genmod-3.9 → genmod-3.10}/examples/small_dbNSFP.txt.gz.tbi +0 -0
  206. {genmod-3.9 → genmod-3.10}/examples/small_vep.vcf +0 -0
  207. {genmod-3.9 → genmod-3.10}/examples/test_phased_compounds.vcf +0 -0
  208. {genmod-3.9 → genmod-3.10}/examples/test_vcf_regions.vcf +0 -0
  209. {genmod-3.9 → genmod-3.10}/examples/test_vcf_regions_models.vcf +0 -0
  210. {genmod-3.9 → genmod-3.10}/examples/test_vcf_regions_models_scored.vcf +0 -0
  211. {genmod-3.9 → genmod-3.10}/genmod/annotations/ensembl_genes_37.txt.gz +0 -0
  212. {genmod-3.9 → genmod-3.10}/genmod/annotations/ensembl_genes_38.txt.gz +0 -0
  213. {genmod-3.9 → genmod-3.10}/genmod/configs/genmod_test.v1.5.ini +0 -0
  214. {genmod-3.9 → genmod-3.10}/genmod/configs/rank_model_cmms_v1.7.ini +0 -0
  215. {genmod-3.9 → 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,20 @@
1
+ /data
2
+ /res
3
+ /doc
4
+ /dist
5
+ /build
6
+ /pickles
7
+ /local
8
+ /publication
9
+ /things
10
+ /venv
11
+ /.idea
12
+ *.pyc
13
+ .DS_Store
14
+ *.egg-info
15
+ *.tmproj
16
+ *.ipynb
17
+ *.tmp
18
+ *.temp
19
+ *.bak
20
+ notes.mdsite/
@@ -0,0 +1 @@
1
+ 3.13
@@ -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
@@ -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`
@@ -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"]
@@ -0,0 +1,9 @@
1
+ # Dockerfile to run genmod pytest suite
2
+ FROM ghcr.io/astral-sh/uv:python3.13-bookworm
3
+
4
+ ADD . /app
5
+
6
+ WORKDIR /app
7
+ RUN uv sync --all-extras --dev
8
+
9
+ ENTRYPOINT ["uv", "run", "pytest"]
@@ -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