AdvancedAnalysisFileParser 0.1.4__cp39-cp39-win_amd64.whl

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 (56) hide show
  1. AdvancedAnalysisFileParser/AdvancedAnalysisConstants.cp39-win_amd64.pyd +0 -0
  2. AdvancedAnalysisFileParser/AdvancedAnalysisConstants.pyi +13 -0
  3. AdvancedAnalysisFileParser/AdvancedAnalysisParser.cp39-win_amd64.pyd +0 -0
  4. AdvancedAnalysisFileParser/AdvancedAnalysisParser.pyi +95 -0
  5. AdvancedAnalysisFileParser/HG002.paraphase.json +128289 -0
  6. AdvancedAnalysisFileParser/Models/ConditionOperator.cp39-win_amd64.pyd +0 -0
  7. AdvancedAnalysisFileParser/Models/ConditionOperator.pyi +14 -0
  8. AdvancedAnalysisFileParser/Models/FieldCondition.cp39-win_amd64.pyd +0 -0
  9. AdvancedAnalysisFileParser/Models/FieldCondition.pyi +30 -0
  10. AdvancedAnalysisFileParser/Models/FieldWarningConfig.cp39-win_amd64.pyd +0 -0
  11. AdvancedAnalysisFileParser/Models/FieldWarningConfig.pyi +9 -0
  12. AdvancedAnalysisFileParser/Models/JsonDict.cp39-win_amd64.pyd +0 -0
  13. AdvancedAnalysisFileParser/Models/JsonDict.pyi +6 -0
  14. AdvancedAnalysisFileParser/Models/SectionConfig.cp39-win_amd64.pyd +0 -0
  15. AdvancedAnalysisFileParser/Models/SectionConfig.pyi +12 -0
  16. AdvancedAnalysisFileParser/Models/__init__.py +13 -0
  17. AdvancedAnalysisFileParser/Parsers/AdvancedAnalysisFileParserFactory.cp39-win_amd64.pyd +0 -0
  18. AdvancedAnalysisFileParser/Parsers/AdvancedAnalysisFileParserFactory.pyi +15 -0
  19. AdvancedAnalysisFileParser/Parsers/DragenTruSightOncology500TSVParser.cp39-win_amd64.pyd +0 -0
  20. AdvancedAnalysisFileParser/Parsers/DragenTruSightOncology500TSVParser.pyi +17 -0
  21. AdvancedAnalysisFileParser/Parsers/IAdvancedAnalysisFileParser.cp39-win_amd64.pyd +0 -0
  22. AdvancedAnalysisFileParser/Parsers/IAdvancedAnalysisFileParser.pyi +45 -0
  23. AdvancedAnalysisFileParser/Parsers/JsonSectionParser.cp39-win_amd64.pyd +0 -0
  24. AdvancedAnalysisFileParser/Parsers/JsonSectionParser.pyi +14 -0
  25. AdvancedAnalysisFileParser/Parsers/OneLineTsvParser.cp39-win_amd64.pyd +0 -0
  26. AdvancedAnalysisFileParser/Parsers/OneLineTsvParser.pyi +12 -0
  27. AdvancedAnalysisFileParser/Parsers/__init__.py +7 -0
  28. AdvancedAnalysisFileParser/README.md +572 -0
  29. AdvancedAnalysisFileParser/Warnings/CarrierPositiveWarning.cp39-win_amd64.pyd +0 -0
  30. AdvancedAnalysisFileParser/Warnings/CarrierPositiveWarning.pyi +19 -0
  31. AdvancedAnalysisFileParser/Warnings/ConditionWarning.cp39-win_amd64.pyd +0 -0
  32. AdvancedAnalysisFileParser/Warnings/ConditionWarning.pyi +28 -0
  33. AdvancedAnalysisFileParser/Warnings/GbaWarning.cp39-win_amd64.pyd +0 -0
  34. AdvancedAnalysisFileParser/Warnings/GbaWarning.pyi +19 -0
  35. AdvancedAnalysisFileParser/Warnings/GenotypeWarning.cp39-win_amd64.pyd +0 -0
  36. AdvancedAnalysisFileParser/Warnings/GenotypeWarning.pyi +19 -0
  37. AdvancedAnalysisFileParser/Warnings/IWarning.cp39-win_amd64.pyd +0 -0
  38. AdvancedAnalysisFileParser/Warnings/IWarning.pyi +10 -0
  39. AdvancedAnalysisFileParser/Warnings/SmnWarning.cp39-win_amd64.pyd +0 -0
  40. AdvancedAnalysisFileParser/Warnings/SmnWarning.pyi +19 -0
  41. AdvancedAnalysisFileParser/Warnings/WarningFactory.cp39-win_amd64.pyd +0 -0
  42. AdvancedAnalysisFileParser/Warnings/WarningFactory.pyi +16 -0
  43. AdvancedAnalysisFileParser/Warnings/__init__.py +7 -0
  44. AdvancedAnalysisFileParser/__init__.py +18 -0
  45. AdvancedAnalysisFileParser/dragen_500_tsv_config.json +53 -0
  46. AdvancedAnalysisFileParser/dragen_targeted_config.json +96 -0
  47. AdvancedAnalysisFileParser/gba_tsv_config.json +23 -0
  48. AdvancedAnalysisFileParser/pacbio_paraphase_config.json +176 -0
  49. AdvancedAnalysisFileParser/py.typed +0 -0
  50. AdvancedAnalysisFileParser/smn_tsv_config.json +23 -0
  51. advancedanalysisfileparser-0.1.4.dist-info/METADATA +158 -0
  52. advancedanalysisfileparser-0.1.4.dist-info/RECORD +56 -0
  53. advancedanalysisfileparser-0.1.4.dist-info/WHEEL +5 -0
  54. advancedanalysisfileparser-0.1.4.dist-info/entry_points.txt +3 -0
  55. advancedanalysisfileparser-0.1.4.dist-info/licenses/LICENSE +9 -0
  56. advancedanalysisfileparser-0.1.4.dist-info/top_level.txt +1 -0
@@ -0,0 +1,19 @@
1
+ # Generated by tools/generate_stubs.py - do not edit.
2
+ # The implementation ships compiled; this file is the published surface.
3
+
4
+ from .IWarning import IWarning
5
+ from ..Models import JsonDict
6
+
7
+
8
+ class SmnWarning(IWarning):
9
+ def format(self, config: JsonDict, data: JsonDict) -> str:
10
+ """Generate a warning message for SMN gene copy number analysis.
11
+
12
+ Args:
13
+ config (JsonDict): Configuration dict with keys like 'caller_name', 'disease_name'.
14
+ data (JsonDict): Data dict with keys like 'smn1CopyNumber', 'variants'.
15
+
16
+ Returns:
17
+ str: Warning message if a relevant condition is met, else empty string.
18
+ """
19
+ ...
@@ -0,0 +1,16 @@
1
+ # Generated by tools/generate_stubs.py - do not edit.
2
+ # The implementation ships compiled; this file is the published surface.
3
+
4
+ from typing import Dict, Optional
5
+ from .IWarning import IWarning
6
+ from .CarrierPositiveWarning import CarrierPositiveWarning
7
+ from .GenotypeWarning import GenotypeWarning
8
+ from .ConditionWarning import ConditionWarning
9
+ from .SmnWarning import SmnWarning
10
+ from .GbaWarning import GbaWarning
11
+
12
+
13
+ class WarningFactory:
14
+ @staticmethod
15
+ def get_formatter(wtype: Optional[Dict]) -> IWarning:
16
+ ...
@@ -0,0 +1,7 @@
1
+ from .IWarning import IWarning
2
+ from .WarningFactory import WarningFactory
3
+
4
+ __all__ = [
5
+ "IWarning",
6
+ "WarningFactory",
7
+ ]
@@ -0,0 +1,18 @@
1
+ from .AdvancedAnalysisParser import AdvancedAnalysisParser
2
+ from .Models import JsonDict, FieldCondition, ConditionOperator, FieldWarningConfig, SectionConfig
3
+ from .Warnings import IWarning, WarningFactory
4
+ from .Parsers import IAdvancedAnalysisFileParser, AdvancedAnalysisFileParserFactory
5
+ from .AdvancedAnalysisConstants import AdvancedAnalysisConstants
6
+ __all__ = [
7
+ "AdvancedAnalysisParser",
8
+ "JsonDict",
9
+ "FieldCondition",
10
+ "ConditionOperator",
11
+ "FieldWarningConfig",
12
+ "SectionConfig",
13
+ "IWarning",
14
+ "WarningFactory",
15
+ "IAdvancedAnalysisFileParser",
16
+ "AdvancedAnalysisFileParserFactory",
17
+ "AdvancedAnalysisConstants"
18
+ ]
@@ -0,0 +1,53 @@
1
+ {
2
+ "MSI": {
3
+ "caller_name": "Percent Unstable MSI Sites",
4
+ "fields":{
5
+ "Usable MSI Sites":{
6
+ "Warning":{
7
+ "type": "condition",
8
+ "conditions":[
9
+ {
10
+ "operator": "GT",
11
+ "value": 10,
12
+ "message": "MSI>10 detected in this sample"
13
+ }
14
+ ]
15
+ }
16
+ }
17
+ }
18
+ },
19
+ "TMB": {
20
+ "caller_name": "Total TMB",
21
+ "fields":{
22
+ "Total TMB":{
23
+ "Warning":{
24
+ "type": "condition",
25
+ "conditions":[
26
+ {
27
+ "operator": "GT",
28
+ "value": 10,
29
+ "message": "TMB>10 detected in this sample"
30
+ }
31
+ ]
32
+ }
33
+ }
34
+ }
35
+ },
36
+ "GIS": {
37
+ "caller_name": "Genomic Instability Score",
38
+ "fields":{
39
+ "Genomic Instability Score":{
40
+ "Warning": {
41
+ "type": "condition",
42
+ "conditions": [
43
+ {
44
+ "operator": "GT",
45
+ "value": 42,
46
+ "message": "GIS>42 detected in this sample"
47
+ }
48
+ ]
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "LPA": {
3
+ "Warning": null
4
+ },
5
+ "SMN": {
6
+ "Warning": {
7
+ "type": "smn",
8
+ "caller_name": "SMN Caller",
9
+ "disease_name": "Spinal Muscular Atrophy",
10
+ "silent_carrier_variant": "NM_000344.4:c.*3+80T>G",
11
+ "silent_carrier_min_allele_copy": 1
12
+ }
13
+ },
14
+ "HBA": {
15
+ "Warning": {
16
+ "type": "genotype",
17
+ "caller_name": "HBA Special Caller",
18
+ "genotype_data_key": "genotype",
19
+ "phenotypeGenotypeMapping": {
20
+ "normal": ["aa/aa"],
21
+ "carrier": [
22
+ "--/aaa3.7",
23
+ "--/aaa4.2",
24
+ "-a3.7/-a3.7",
25
+ "-a4.2/-a4.2",
26
+ "-a3.7/-a4.2",
27
+ "--/aa",
28
+ "-a20.5/-a20.5",
29
+ "-a20.5/-a3.7",
30
+ "-a20.5/-a4.2",
31
+ "--/aaa20.5"
32
+ ],
33
+ "silent carrier": [
34
+ "-a3.7/aa",
35
+ "-a4.2/aa",
36
+ "-a20.5/aa"
37
+ ],
38
+ "positive for hemoglobin Bart's hydrops fetalis disease": ["--/--"],
39
+ "positive for hemoglobin H disease": [
40
+ "--/-a3.7",
41
+ "--/-a4.2",
42
+ "--/-a20.5"
43
+ ]
44
+ },
45
+ "genotypeReference": [
46
+ "aaa3.7/aa",
47
+ "aaa4.2/aa",
48
+ "aaa20.5/aa",
49
+ "aaa20.5/aaa3.7",
50
+ "aaa20.5/aaa4.2",
51
+ "aaa20.5/aaa20.5",
52
+ "aa/aa",
53
+ "-a3.7/aa",
54
+ "-a4.2/aa",
55
+ "-a20.5/aa",
56
+ "--/aaa3.7",
57
+ "--/aaa4.2",
58
+ "--/aaa20.5",
59
+ "-a3.7/aaa20.5",
60
+ "-a4.2/aaa20.5",
61
+ "-a20.5/aaa3.7",
62
+ "-a20.5/aaa4.2",
63
+ "-a3.7/-a3.7",
64
+ "-a4.2/-a4.2",
65
+ "-a20.5/-a20.5",
66
+ "-a3.7/-a4.2",
67
+ "-a20.5/-a3.7",
68
+ "-a20.5/-a4.2",
69
+ "--/aa",
70
+ "--/-a3.7",
71
+ "--/-a4.2",
72
+ "--/-a20.5",
73
+ "--/--"
74
+ ]
75
+ }
76
+ },
77
+ "RH": {
78
+ "Warning": null
79
+ },
80
+ "CYP2D6": {
81
+ "Warning": null
82
+ },
83
+ "CYP2B6": {
84
+ "Warning": null
85
+ },
86
+ "CYP21A2": {
87
+ "Warning": null
88
+ },
89
+ "GBA": {
90
+ "Warning": {
91
+ "type": "gba",
92
+ "caller_name": "GBA Caller",
93
+ "disease_name": "Gaucher disease"
94
+ }
95
+ }
96
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "GBA": {
3
+ "caller_name": "GBA Special Caller",
4
+ "Warning": {
5
+ "type": "condition",
6
+ "disease_name": "Gaucher disease",
7
+ "conditions": [
8
+ {
9
+ "field": "is_carrier",
10
+ "value": true,
11
+ "operator": "EQ",
12
+ "message": "Based on the GBA Caller, this sample is positive for Gaucher disease"
13
+ },
14
+ {
15
+ "field": "is_biallelic",
16
+ "value": true,
17
+ "operator": "EQ",
18
+ "message": "Based on the GBA Caller, this sample is positive for Gaucher disease"
19
+ }
20
+ ]
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,176 @@
1
+ {
2
+ "GBA": {
3
+ "json_key": "GBA",
4
+ "caller_name": "PacBio Paraphase GBA Caller",
5
+ "include_paths": [
6
+ "total_cn",
7
+ "alleles_final",
8
+ "fusions_called",
9
+ "region_depth.median"
10
+ ],
11
+ "exclude_paths": [
12
+ "fusions_called.*.sequence"
13
+ ],
14
+ "Warning": null
15
+ },
16
+ "HBA": {
17
+ "json_key": "hba",
18
+ "caller_name": "PacBio Paraphase HBA Caller",
19
+ "include_paths": [
20
+ "total_cn",
21
+ "genotype",
22
+ "sv_called",
23
+ "alleles_final",
24
+ "surrounding_region_depth"
25
+ ],
26
+ "Warning": {
27
+ "type": "genotype",
28
+ "caller_name": "HBA caller",
29
+ "genotype_data_key": "genotype",
30
+ "message_template": "Based on the {name}, this sample is {phenotype}",
31
+ "phenotypeGenotypeMapping": {
32
+ "positive for hemoglobin Bart's hydrops fetalis disease": [
33
+ "--/--"
34
+ ],
35
+ "positive for hemoglobin H disease": [
36
+ "--/-a"
37
+ ],
38
+ "carrier": [
39
+ "--/aa",
40
+ "-a/-a",
41
+ "--/aaa"
42
+ ],
43
+ "silent carrier": [
44
+ "-a/aa"
45
+ ]
46
+ }
47
+ }
48
+ },
49
+ "SMN": {
50
+ "json_key": "smn1",
51
+ "caller_name": "PacBio Paraphase SMN Caller",
52
+ "include_paths": [
53
+ "smn1_cn",
54
+ "smn2_cn",
55
+ "smn_del78_cn",
56
+ "highest_total_cn",
57
+ "smn1_read_number",
58
+ "smn2_read_number",
59
+ "smn_del78_read_number",
60
+ "smn1_cn",
61
+ "haplotype_details.*.haplogroup"
62
+ ],
63
+ "Warning": {
64
+ "type": "smn",
65
+ "caller_name": "SMN caller",
66
+ "disease_name": "Spinal Muscular Atrophy",
67
+ "strict_silent_carrier_haplogroup_rule": true,
68
+ "smn1_copy_number_keys": [
69
+ "smn1_cn",
70
+ "smn1CopyNumber"
71
+ ],
72
+ "haplogroup_path": "haplotype_details",
73
+ "silent_carrier_required_haplogroups": [
74
+ "S1-8",
75
+ "S1-9d"
76
+ ]
77
+ }
78
+ },
79
+ "RCCX": {
80
+ "json_key": "rccx",
81
+ "caller_name": "PacBio Paraphase RCCX Caller",
82
+ "include_paths": [
83
+ "phasing_success",
84
+ "annotated_alleles",
85
+ "deletion_hap",
86
+ "fusions_called",
87
+ "region_depth.median"
88
+ ],
89
+ "exclude_paths": [
90
+ "fusions_called.*.sequence"
91
+ ],
92
+ "Warning": null
93
+ },
94
+ "STRC": {
95
+ "json_key": "strc",
96
+ "caller_name": "PacBio Paraphase STRC Caller",
97
+ "include_paths": [
98
+ "gene_cn",
99
+ "alleles_final",
100
+ "fusions_called",
101
+ "region_depth.median"
102
+ ],
103
+ "exclude_paths": [
104
+ "fusions_called.*.sequence"
105
+ ],
106
+ "Warning": null
107
+ },
108
+ "PMS2": {
109
+ "json_key": "pms2",
110
+ "caller_name": "PacBio Paraphase PMS2 Caller",
111
+ "include_paths": [
112
+ "gene_cn",
113
+ "alleles_final",
114
+ "fusions_called",
115
+ "region_depth.median"
116
+ ],
117
+ "exclude_paths": [
118
+ "fusions_called.*.sequence"
119
+ ],
120
+ "Warning": null
121
+ },
122
+ "NCF1": {
123
+ "json_key": "ncf1",
124
+ "caller_name": "PacBio Paraphase NCF1 Caller",
125
+ "include_paths": [
126
+ "gene_cn",
127
+ "gene_reads",
128
+ "pseudo_reads",
129
+ "region_depth.median"
130
+ ],
131
+ "Warning": null
132
+ },
133
+ "F8": {
134
+ "json_key": "f8",
135
+ "caller_name": "PacBio Paraphase F8 Caller",
136
+ "include_paths": [
137
+ "sv_called",
138
+ "exon1_to_exon22_depth",
139
+ "region_depth.median"
140
+ ],
141
+ "Warning": null
142
+ },
143
+ "CFH": {
144
+ "json_key": "CFHclust",
145
+ "caller_name": "PacBio Paraphase CFH Gene Cluster Caller",
146
+ "include_paths": [
147
+ "fusions_called"
148
+ ],
149
+ "exclude_paths": [
150
+ "fusions_called.*.sequence"
151
+ ],
152
+ "Warning": null
153
+ },
154
+ "IKBKG": {
155
+ "json_key": "ikbkg",
156
+ "caller_name": "PacBio Paraphase IKBKG Caller",
157
+ "include_paths": [
158
+ "deletion_haplotypes",
159
+ "del_read_number",
160
+ "alleles_final",
161
+ "region_depth.median"
162
+ ],
163
+ "Warning": null
164
+ },
165
+ "OPN1": {
166
+ "json_key": "opn1lw",
167
+ "caller_name": "PacBio Paraphase OPN1LW / OPN1MW Caller",
168
+ "include_paths": [
169
+ "opn1lw_cn",
170
+ "opn1mw_cn",
171
+ "phasing_success",
172
+ "annotated_alleles"
173
+ ],
174
+ "Warning": null
175
+ }
176
+ }
File without changes
@@ -0,0 +1,23 @@
1
+ {
2
+ "SMN1": {
3
+ "caller_name": "SMN Special Caller",
4
+ "Warning": {
5
+ "type": "condition",
6
+ "disease_name": "Spinal Muscular Atrophy",
7
+ "conditions": [
8
+ {
9
+ "field": "isSMA",
10
+ "value": true,
11
+ "operator": "EQ",
12
+ "message": "Based on the SMN Caller, this sample is positive for Spinal Muscular Atrophy"
13
+ },
14
+ {
15
+ "field": "isCarrier",
16
+ "value": true,
17
+ "operator": "EQ",
18
+ "message": "Based on the SMN Caller, this sample is positive for Spinal Muscular Atrophy"
19
+ }
20
+ ]
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,158 @@
1
+ Metadata-Version: 2.4
2
+ Name: AdvancedAnalysisFileParser
3
+ Version: 0.1.4
4
+ Summary: Parse Illumina-DRAGEN TSV/JSON outputs to unified geneyx JSON with warnings.
5
+ Author: Bar Cohen
6
+ Author-email: Bar Cohen <bar@geneyx.com>
7
+ License: MIT License
8
+
9
+ Copyright (c) 2026 Geneyx
10
+
11
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ Project-URL: homepage, https://github.com/geneyx/AdvancedAnalysisFileParser
17
+ Project-URL: repository, https://github.com/geneyx/AdvancedAnalysisFileParser
18
+ Project-URL: documentation, https://geneyx.com/docs
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: License :: OSI Approved :: MIT License
21
+ Classifier: Operating System :: OS Independent
22
+ Requires-Python: <3.15,>=3.9
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Dynamic: license-file
26
+
27
+
28
+
29
+ # AdvancedAnalysisFileParser
30
+
31
+ ![PyPI version](https://img.shields.io/pypi/v/AdvancedAnalysisFileParser.svg?label=PyPI%20version)
32
+
33
+ A Python package to parse Illumina-DRAGEN "special caller" outputs (TSV/JSON) into a unified JSON format, with automatic warnings based on user-defined or default conditions. Supports oncology, GBA, SMN, HBA, and more.
34
+
35
+ ---
36
+
37
+ ## Features
38
+
39
+ - Unified JSON output for multiple DRAGEN caller types (TSV/JSON)
40
+ - Automatic warnings for each file type, based on config or defaults
41
+ - Pluggable parser architecture for new file types
42
+ - CLI and Python API usage
43
+ - Example configs and test data included
44
+
45
+ ---
46
+
47
+ ## Installation
48
+
49
+ Install from PyPI (recommended):
50
+
51
+ ```bash
52
+ pip install AdvancedAnalysisFileParser
53
+ ```
54
+
55
+ Or from source:
56
+
57
+ ```bash
58
+ git clone https://github.com/geneyx/geneyx.analysis.api.git
59
+ cd geneyx.analysis.api/scripts/AdvancedAnalysisFileParser
60
+ pip install -e .
61
+ ```
62
+
63
+ ---
64
+
65
+ ## Quickstart
66
+
67
+ ### Python API Usage
68
+
69
+ ```python
70
+ from AdvancedAnalysisFileParser.AdvancedAnalysisParser import AdvancedAnalysisParser
71
+
72
+ request = {
73
+ "input_dir": "./Test",
74
+ "output_dir": "./Test",
75
+ "output_json": "adv_output.json",
76
+ # Optionally, you can specify input_files or map_files for custom configs
77
+ }
78
+ parser = AdvancedAnalysisParser(request)
79
+ parser.run() # writes output to adv_output.json
80
+
81
+ # Or get result as dict:
82
+ result = parser.run(return_dict=True)
83
+ print(result)
84
+ ```
85
+
86
+ ### Command-Line Usage
87
+
88
+ Create a config file (e.g. `config.json`):
89
+
90
+ ```json
91
+ {
92
+ "input_dir": "./Test",
93
+ "output_dir": "./Test",
94
+ "output_json": "adv_output.json"
95
+ }
96
+ ```
97
+
98
+ Then run:
99
+
100
+ ```bash
101
+ python -m AdvancedAnalysisFileParser.AdvancedAnalysisParser -c config.json
102
+ ```
103
+
104
+ ---
105
+
106
+ ## Configuration
107
+
108
+ The parser uses config files (JSON) to define how to parse and warn for each file type. Default configs are provided for:
109
+
110
+ - GBA: `gba_tsv_config.json`
111
+ - SMN: `smn_tsv_config.json`
112
+ - Oncology: `dragen_500_tsv_config.json`
113
+ - JSON: `dragen_targeted_config.json`
114
+
115
+ You can override or extend these by providing your own config in the `map_files` key of the request.
116
+
117
+ ### Example request/config structure
118
+
119
+ | Key | Type | Description |
120
+ | ------------- | ------ | --------------------------------------------------------------------- |
121
+ | `output_json` | string | Filename for the generated JSON (default: `adv_analysis_output.json`) |
122
+ | `input_dir` | string | Directory containing all input files |
123
+ | `input_files` | list | (Optional) List of files to parse |
124
+ | `map_files` | object | (Optional) Mapping of filenames → caller definitions |
125
+
126
+ ---
127
+
128
+ ## Warnings
129
+
130
+ Warnings are generated automatically for each caller/file type, based on the config. Each config defines conditions for warnings (see `*_config.json` files for examples). You can customize these for your use case.
131
+
132
+ ---
133
+
134
+ ## Testing
135
+
136
+ Run the test suite to validate all parsing and warning logic:
137
+
138
+ ```bash
139
+ pytest AdvancedAnalysisFileParser/Test_AdvancedAnalysisParser.py
140
+ ```
141
+
142
+ Or run the test script:
143
+
144
+ ```bash
145
+ python AdvancedAnalysisFileParser/run_test_parser.py
146
+ ```
147
+
148
+ ---
149
+
150
+ ## Example Data
151
+
152
+ See the `Test/` folder for example input files (TSV/JSON) and expected outputs.
153
+
154
+ ---
155
+
156
+ ## License
157
+
158
+ MIT
@@ -0,0 +1,56 @@
1
+ AdvancedAnalysisFileParser/AdvancedAnalysisConstants.cp39-win_amd64.pyd,sha256=N2M8dCV--5RyM_yO20q0X41Tl8x4YVXiYSO_7l0cAs8,19968
2
+ AdvancedAnalysisFileParser/AdvancedAnalysisConstants.pyi,sha256=cvqWRWynG4cxns9mCqiPvxLcfCrCD2cE3Lgr3SfabdI,364
3
+ AdvancedAnalysisFileParser/AdvancedAnalysisParser.cp39-win_amd64.pyd,sha256=jMhMa9VLwgCTGXq6oQERXvur-qqya6qFCgxH4cA1zUo,93184
4
+ AdvancedAnalysisFileParser/AdvancedAnalysisParser.pyi,sha256=PsnisQoZ-FUVTFcvVurV4MxKHKWcVYeP60ymgYl79DQ,3214
5
+ AdvancedAnalysisFileParser/HG002.paraphase.json,sha256=DVH4zEt2EUDmcb5NtsWwYw8po5WBGYJv8nN_TaHJWxc,7364227
6
+ AdvancedAnalysisFileParser/README.md,sha256=6qUicBl4LOWrhTKUFv_Ek1XMsaUP9HpWOgIrVpIDEQw,16524
7
+ AdvancedAnalysisFileParser/__init__.py,sha256=68ww04Zr4g0BteDhrRVYWotycXrNvQLKy6kzBwNR3jE,670
8
+ AdvancedAnalysisFileParser/dragen_500_tsv_config.json,sha256=GqVZQXgeo-Ci2wmfxm1314Y9nCT9lX0rMfITcnjugpA,1554
9
+ AdvancedAnalysisFileParser/dragen_targeted_config.json,sha256=4cItIJ1ss3ZvGUgbDTIpTX75XDx2TLXpSxSld-El6kk,2737
10
+ AdvancedAnalysisFileParser/gba_tsv_config.json,sha256=_rpGY4456Q0yWJBPPepFoae5xhgvL61i8Bbksp6G8Pw,753
11
+ AdvancedAnalysisFileParser/pacbio_paraphase_config.json,sha256=L2bhcueiyIbtLZ4xWiyw-Qb1Cgst6WVMpLZmCMkPxis,4987
12
+ AdvancedAnalysisFileParser/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ AdvancedAnalysisFileParser/smn_tsv_config.json,sha256=62KXHZFBj1k3P2nloPw9nsPbIUClAUbXFDfyde7RIXQ,770
14
+ AdvancedAnalysisFileParser/Models/ConditionOperator.cp39-win_amd64.pyd,sha256=LVMz6biTbTUYBQr3Z3ou1y_WLT5qRsiyBwpTTOh0rHQ,23040
15
+ AdvancedAnalysisFileParser/Models/ConditionOperator.pyi,sha256=MjWqMIgu5NQnCFMzqDi8ZVzsqdsCrTuizD-F8rNHlHo,287
16
+ AdvancedAnalysisFileParser/Models/FieldCondition.cp39-win_amd64.pyd,sha256=tfKLsjIxLOei5QcpCQC7rIxXLki0UyvjYR1kP64BD7M,60416
17
+ AdvancedAnalysisFileParser/Models/FieldCondition.pyi,sha256=9sXdRWZK3aNSF4YD30998GT24B32slHpBnNhDLj5P0Y,1165
18
+ AdvancedAnalysisFileParser/Models/FieldWarningConfig.cp39-win_amd64.pyd,sha256=oJl5wRGLot6mBj-HFzr3cgKy1dbi-VS4gL3wGO63GVA,19968
19
+ AdvancedAnalysisFileParser/Models/FieldWarningConfig.pyi,sha256=xgYttpjZhivcqgE69DjBI9duoH7dBy4H0s1XjbQB7Sg,274
20
+ AdvancedAnalysisFileParser/Models/JsonDict.cp39-win_amd64.pyd,sha256=H0jAyCz1BIkHmHVZsS4HOAoLAc_G5hhtpQSHoJQvIVA,22528
21
+ AdvancedAnalysisFileParser/Models/JsonDict.pyi,sha256=UIutQdMuWLQGCKJ318McKOxSY7M7vGaM2IJ0KWoRnCc,178
22
+ AdvancedAnalysisFileParser/Models/SectionConfig.cp39-win_amd64.pyd,sha256=Jye6ggBV-J9JYlZCayMuxDYlWp1EPF8q0Ew0SiyUOuY,22528
23
+ AdvancedAnalysisFileParser/Models/SectionConfig.pyi,sha256=qgcj4Y0BQjwWPPTPMMC6Nv_eD9mlZaGPWODzl3flGek,362
24
+ AdvancedAnalysisFileParser/Models/__init__.py,sha256=IdrSXbygXosup7Kjo6OfzF0msJQTCEtTZhRATZTxRbU,350
25
+ AdvancedAnalysisFileParser/Parsers/AdvancedAnalysisFileParserFactory.cp39-win_amd64.pyd,sha256=c0taV_Zb3qkugDDJoQ-PTGNSAN6FV-coDfv5YbecgJ8,56320
26
+ AdvancedAnalysisFileParser/Parsers/AdvancedAnalysisFileParserFactory.pyi,sha256=LaUoQ4J_id0o0lQkMVY7QxbJ_g7X6mMD2bJK_5fPuGk,634
27
+ AdvancedAnalysisFileParser/Parsers/DragenTruSightOncology500TSVParser.cp39-win_amd64.pyd,sha256=8M4AS4E2GciGg6k_7lfkkv-H7Ky7MnTsBmb7a1Ampps,87552
28
+ AdvancedAnalysisFileParser/Parsers/DragenTruSightOncology500TSVParser.pyi,sha256=5whA69h-NQGsdZJjPAgdzZMqJPE0RKnwWEUo-DuYEWc,685
29
+ AdvancedAnalysisFileParser/Parsers/IAdvancedAnalysisFileParser.cp39-win_amd64.pyd,sha256=FkekPRCPmUj8RytAEZ4h2BfdSY4jpvFOK2hEucc9bLg,74240
30
+ AdvancedAnalysisFileParser/Parsers/IAdvancedAnalysisFileParser.pyi,sha256=Ace4aZ-DB3jmxZK9GNUpjvWJoXLD633FgsfwzZIaMCA,1564
31
+ AdvancedAnalysisFileParser/Parsers/JsonSectionParser.cp39-win_amd64.pyd,sha256=efSmwI4XyY6dIKHiO7oULCL_GlH5Zl3NNjIgSWQZg0Q,109056
32
+ AdvancedAnalysisFileParser/Parsers/JsonSectionParser.pyi,sha256=Ur6ds70Z5GfGMcmXpqMzuuuzMyPoWJ49ozSpAGxvgUk,511
33
+ AdvancedAnalysisFileParser/Parsers/OneLineTsvParser.cp39-win_amd64.pyd,sha256=CD-4hHRFKXhHqhBX_7b1sM2P1csjkIuNfEGkKGPRt8U,53248
34
+ AdvancedAnalysisFileParser/Parsers/OneLineTsvParser.pyi,sha256=kP3QQvFiw015rAljR3_at4NPw3s0oWAQf2brZc971pM,386
35
+ AdvancedAnalysisFileParser/Parsers/__init__.py,sha256=RTNz-xiDCJ0Hc5O4wh_WSJG_pjnBfGlqbDy91721Nos,246
36
+ AdvancedAnalysisFileParser/Warnings/CarrierPositiveWarning.cp39-win_amd64.pyd,sha256=-m8nfYgO4p5d8KNuLiCML8bWmmFjLF0FxSDkrTymKtw,50176
37
+ AdvancedAnalysisFileParser/Warnings/CarrierPositiveWarning.pyi,sha256=uW10ZLJvMdXq61LHbyQw-Mx-JHGnO-vmJnZ0kz-IfG4,678
38
+ AdvancedAnalysisFileParser/Warnings/ConditionWarning.cp39-win_amd64.pyd,sha256=Y6_HjSLaUXPfoAaJCOaK6GIEuHjJcHkFFTMx7jssT0k,48128
39
+ AdvancedAnalysisFileParser/Warnings/ConditionWarning.pyi,sha256=MSRwQguvJmt2yjTFU7bNs9B_4f6figPggHFsbOwyTsM,1266
40
+ AdvancedAnalysisFileParser/Warnings/GbaWarning.cp39-win_amd64.pyd,sha256=V6ZAwJGUlqLe7O2sqprdgh7EeSYA06ECHz6HdyU5N-I,68096
41
+ AdvancedAnalysisFileParser/Warnings/GbaWarning.pyi,sha256=1XB0ZfO3Z-2a6azVEmTNNFpJ9OlS5YIEVmP127DzHQ8,719
42
+ AdvancedAnalysisFileParser/Warnings/GenotypeWarning.cp39-win_amd64.pyd,sha256=hZwGb4jG5ZPP4D8eyg51XSbHwxtsx0gQlyNXf-iWmoU,76800
43
+ AdvancedAnalysisFileParser/Warnings/GenotypeWarning.pyi,sha256=g8oeEGETaI7TtFbqpb3tuqzCMAqszxvSHLCOrb2jga0,639
44
+ AdvancedAnalysisFileParser/Warnings/IWarning.cp39-win_amd64.pyd,sha256=de_iGvOKoys4DVo-ztAgxJ4GkdHg7k_SzzksJfUMsu0,39936
45
+ AdvancedAnalysisFileParser/Warnings/IWarning.pyi,sha256=4vmr6VHEtc-9G1uk6r_h5ALdd3Tzv7MFaJTFZD0yhOU,302
46
+ AdvancedAnalysisFileParser/Warnings/SmnWarning.cp39-win_amd64.pyd,sha256=q4_cVkwwYtmLnRmpxmHPuaZ_dxlu0D9EP1sWlNsQS2I,78336
47
+ AdvancedAnalysisFileParser/Warnings/SmnWarning.pyi,sha256=DBsegpF4vrzkxz2SmZBD2bkVo8ObYqI-R7k0BZ2STmA,695
48
+ AdvancedAnalysisFileParser/Warnings/WarningFactory.cp39-win_amd64.pyd,sha256=PLoZKs2t4tvw9OBxB6xGtUj3kjLgF2N4F9wvz1Pig0I,47616
49
+ AdvancedAnalysisFileParser/Warnings/WarningFactory.pyi,sha256=g1mf2T0I2K-MstXLP0cpL8J60lTF0njLeVirmDwOceA,542
50
+ AdvancedAnalysisFileParser/Warnings/__init__.py,sha256=SBus1Y4mE2HXMTRbE9ts-3e5ApdmaP2Ocz1c1y5torI,134
51
+ advancedanalysisfileparser-0.1.4.dist-info/licenses/LICENSE,sha256=WnaGOpmGaJD1TpZt1qUCUlNOITAknQzzW5_IdFbqtSY,1078
52
+ advancedanalysisfileparser-0.1.4.dist-info/METADATA,sha256=oArQNCNCsAFjqqUF3o85COgsgov_LxTb5jrjulrQ-No,5271
53
+ advancedanalysisfileparser-0.1.4.dist-info/WHEEL,sha256=zuNlb9Um05hyCt8XRmFaVi795Ee7Bc9lOiOIpwTM7Gs,99
54
+ advancedanalysisfileparser-0.1.4.dist-info/entry_points.txt,sha256=qWyot7L31WqH2O-F0ie0Negr-MbwANuF6vJ_4MVE_sk,175
55
+ advancedanalysisfileparser-0.1.4.dist-info/top_level.txt,sha256=qktb0ZKlTD_sOMGxTg44cJ3zwuHamcsYPVwXHBCSF5U,27
56
+ advancedanalysisfileparser-0.1.4.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: false
4
+ Tag: cp39-cp39-win_amd64
5
+
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ advanced-analysis = AdvancedAnalysisFileParser.AdvancedAnalysisParser:from_cli
3
+ function-data = AdvancedAnalysisFileParser.AdvancedAnalysisParser:parse_files