ssi-analysis-result-parsers 0.0.10__tar.gz → 0.0.12__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 (63) hide show
  1. {ssi_analysis_result_parsers-0.0.10/ssi_analysis_result_parsers.egg-info → ssi_analysis_result_parsers-0.0.12}/PKG-INFO +3 -3
  2. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/settings.ini +5 -3
  3. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers/Legionella_parser.py +3 -1
  4. ssi_analysis_result_parsers-0.0.12/ssi_analysis_result_parsers/Nmeningitidis_parser.py +183 -0
  5. ssi_analysis_result_parsers-0.0.12/ssi_analysis_result_parsers/__init__.py +1 -0
  6. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers/_modidx.py +22 -0
  7. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12/ssi_analysis_result_parsers.egg-info}/PKG-INFO +3 -3
  8. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers.egg-info/SOURCES.txt +7 -0
  9. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers.egg-info/entry_points.txt +2 -0
  10. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers.egg-info/top_level.txt +1 -0
  11. ssi_analysis_result_parsers-0.0.12/test_input/Legionella/test.tsv +2 -0
  12. ssi_analysis_result_parsers-0.0.12/test_input/Nmeningitidis/batch_parser_file_paths.tsv +6 -0
  13. ssi_analysis_result_parsers-0.0.12/test_input/Nmeningitidis/meningotype/meningotype1.tsv +2 -0
  14. ssi_analysis_result_parsers-0.0.12/test_input/Nmeningitidis/meningotype/meningotype2.tsv +2 -0
  15. ssi_analysis_result_parsers-0.0.12/test_input/Nmeningitidis/meningotype/meningotype3.tsv +2 -0
  16. ssi_analysis_result_parsers-0.0.12/test_input/Nmeningitidis/neisseria_mlst_scheme.tsv +18415 -0
  17. ssi_analysis_result_parsers-0.0.10/ssi_analysis_result_parsers/__init__.py +0 -1
  18. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/LICENSE +0 -0
  19. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/MANIFEST.in +0 -0
  20. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/README.md +0 -0
  21. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/pyproject.toml +0 -0
  22. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/setup.cfg +0 -0
  23. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/setup.py +0 -0
  24. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers/Ecoli_parser.py +0 -0
  25. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers/Spyogenes_parser.py +0 -0
  26. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers/blast_parser.py +0 -0
  27. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers/config/config.default.env +0 -0
  28. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers/config/config.default.yaml +0 -0
  29. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers/core.py +0 -0
  30. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers/hello_world.py +0 -0
  31. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers/some_string.py +0 -0
  32. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers.egg-info/dependency_links.txt +0 -0
  33. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers.egg-info/not-zip-safe +0 -0
  34. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/ssi_analysis_result_parsers.egg-info/requires.txt +2 -2
  35. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/.DS_Store +0 -0
  36. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Ecoli/ERR14229029.res +0 -0
  37. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Ecoli/ERR3528110.res +0 -0
  38. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Ecoli/samplesheet.tsv +0 -0
  39. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Legionella/batch_parser_file_paths.tsv +0 -0
  40. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Legionella/lag-1_blast.tsv +0 -0
  41. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Legionella/lag-1_blast_2.tsv +0 -0
  42. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Legionella/test.sbt.tsv +0 -0
  43. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Legionella/test2.sbt.tsv +0 -0
  44. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Spyogenes/batch_parser_file_paths.tsv +0 -0
  45. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Spyogenes/emm_typing/Mga.fasta +0 -0
  46. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Spyogenes/emm_typing/emm_clusters.txt +0 -0
  47. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Spyogenes/emm_typing/test1.emm.blast.tsv +0 -0
  48. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Spyogenes/emm_typing/test1.mga.blast.tsv +0 -0
  49. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Spyogenes/emm_typing/test2.emm.blast.tsv +0 -0
  50. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Spyogenes/emm_typing/test2.mga.blast.tsv +0 -0
  51. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Spyogenes/emm_typing/test3.emm.blast.tsv +0 -0
  52. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Spyogenes/emm_typing/test4.emm.blast.tsv +0 -0
  53. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Spyogenes/emm_typing/test5.emm.blast.tsv +0 -0
  54. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Spyogenes/emm_typing/test6.emm.blast.tsv +0 -0
  55. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/Spyogenes/emm_typing/test7.emm.blast.tsv +0 -0
  56. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/blast_parser/allele_matches_test.tsv +0 -0
  57. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/blast_parser/empty_gene_presence_absense_test.tsv +0 -0
  58. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/blast_parser/gene_presence_absence_test.tsv +0 -0
  59. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_input/empty_file.txt +0 -0
  60. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_output/Ecoli/KMA_cases_parser.tsv +0 -0
  61. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_output/output_with_sample_name.tsv +0 -0
  62. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_output/test.tsv +0 -0
  63. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.12}/test_output/test_batch_output.tsv +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ssi_analysis_result_parsers
3
- Version: 0.0.10
3
+ Version: 0.0.12
4
4
  Summary: TODO
5
5
  Home-page: https://github.com/thej-ssi/ssi_analysis_result_parsers
6
6
  Author: Thor Bech Johannesen
@@ -19,9 +19,9 @@ Requires-Python: >=3.9
19
19
  Description-Content-Type: text/markdown
20
20
  License-File: LICENSE
21
21
  Requires-Dist: fastcore
22
- Requires-Dist: python_dotenv
23
- Requires-Dist: envyaml
24
22
  Requires-Dist: pandas
23
+ Requires-Dist: envyaml
24
+ Requires-Dist: python_dotenv
25
25
  Requires-Dist: black
26
26
  Provides-Extra: dev
27
27
  Dynamic: author
@@ -5,7 +5,7 @@
5
5
  ### Python library ###
6
6
  repo = ssi_analysis_result_parsers
7
7
  lib_name = %(repo)s
8
- version = 0.0.10
8
+ version = 0.0.12
9
9
  min_python = 3.9
10
10
  license = MIT
11
11
  black_formatting = True
@@ -44,8 +44,8 @@ user = thej-ssi
44
44
  # console_scripts =
45
45
  # conda_user =
46
46
  # package_data =
47
- requirements = fastcore
48
- pip_requirements = python_dotenv envyaml pandas black
47
+ requirements = fastcore pandas envyaml
48
+ pip_requirements = python_dotenv black
49
49
  console_scripts =
50
50
  blast_parser_presence_absence=ssi_analysis_result_parsers.blast_parser:presence_absence
51
51
  blast_parser_allele_matches=ssi_analysis_result_parsers.blast_parser:allele_matches
@@ -54,3 +54,5 @@ console_scripts =
54
54
  get_ecoli_results=ssi_analysis_result_parsers.Ecoli_parser:ecoli_parser
55
55
  get_Spyogenes_results=ssi_analysis_result_parsers.Spyogenes_parser:Spyogenes_parser
56
56
  get_Spyogenes_results_batch=ssi_analysis_result_parsers.Spyogenes_parser:Spyogenes_batch_parser
57
+ get_Nmeningitidis_results=ssi_analysis_result_parsers.Nmeningitidis_parser:Nmeningitidis_parser
58
+ get_Nmeningitidis_results_batch=ssi_analysis_result_parsers.Nmeningitidis_parser:Nmeningitidis_batch_parser
@@ -32,6 +32,7 @@ from ssi_analysis_result_parsers import (
32
32
  # Project specific libraries
33
33
  from pathlib import Path
34
34
  import pandas
35
+ import numpy
35
36
  import sys
36
37
 
37
38
  # %% ../nbs/39_Legionella_parser.ipynb 6
@@ -49,7 +50,7 @@ def extract_legionella_sbt(legionella_sbt_results_tsv: Path) -> dict:
49
50
  return d[fname]
50
51
  except pandas.errors.EmptyDataError:
51
52
  print(
52
- f"No Legionella SBT output empty at {legionella_sbt_results_tsv}",
53
+ f"Legionella SBT output empty at {legionella_sbt_results_tsv}",
53
54
  file=sys.stderr,
54
55
  )
55
56
  return None
@@ -98,6 +99,7 @@ class LegionellaResults(core.PipelineResults):
98
99
  Alternative constructor for initializing results for multiple samples,
99
100
  Initializes LegionellaResults instance by providing a DataFrame of paths to outputs from tools (legionella sbt and lag1 presence blast)
100
101
  """
102
+ file_paths_df.replace(numpy.nan, None, inplace=True)
101
103
  file_paths = file_paths_df.to_dict(orient="index")
102
104
  results_dict = {}
103
105
  for sample_name, path_dict in file_paths.items():
@@ -0,0 +1,183 @@
1
+ # AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/37_Nmeningitidis_parser.ipynb.
2
+
3
+ # %% auto 0
4
+ __all__ = ['extract_meningotype', 'extract_cc_from_mlst', 'NmeningitidisResults', 'Nmeningitidis_parser',
5
+ 'Nmeningitidis_batch_parser']
6
+
7
+ # %% ../nbs/37_Nmeningitidis_parser.ipynb 3
8
+ # standard libs
9
+ import os
10
+ import re
11
+
12
+ # Common to template
13
+ # add into settings.ini, requirements, package name is python-dotenv, for conda build ensure `conda config --add channels conda-forge`
14
+ import dotenv # for loading config from .env files, https://pypi.org/project/python-dotenv/
15
+ import envyaml # Allows to loads env vars into a yaml file, https://github.com/thesimj/envyaml
16
+ import fastcore # To add functionality related to nbdev development, https://github.com/fastai/fastcore/
17
+ from fastcore import (
18
+ test,
19
+ )
20
+ from fastcore.script import (
21
+ call_parse,
22
+ ) # for @call_parse, https://fastcore.fast.ai/script
23
+ import json # for nicely printing json and yaml
24
+
25
+ # import functions from core module (optional, but most likely needed).
26
+ from ssi_analysis_result_parsers import (
27
+ core,
28
+ blast_parser,
29
+ )
30
+
31
+ # from ssi_analysis_result_parsers.blast_parser import extract_presence_absence
32
+
33
+ # Project specific libraries
34
+ from pathlib import Path
35
+ import pandas
36
+ import numpy
37
+ import sys
38
+
39
+ # %% ../nbs/37_Nmeningitidis_parser.ipynb 6
40
+ def extract_meningotype(meningotype_tsv: Path):
41
+ if meningotype_tsv.exists():
42
+ try:
43
+ df = pandas.read_csv(meningotype_tsv, sep="\t")
44
+ PorA_split = df["PorA"][0].split(",")
45
+ VR1 = PorA_split[0]
46
+ try:
47
+ VR2 = PorA_split[1]
48
+ except:
49
+ VR2 = ""
50
+ return {
51
+ "SEROGROUP": df["SEROGROUP"][0],
52
+ "VR1": VR1,
53
+ "VR2": VR2,
54
+ "FetA": df["FetA"][0],
55
+ }
56
+ except pandas.errors.EmptyDataError:
57
+ print(
58
+ f"Meningotype output file empty at {meningotype_tsv}", file=sys.stderr
59
+ )
60
+ return None
61
+ else:
62
+ print(f"No meningotype output found at {meningotype_tsv}", file=sys.stderr)
63
+ return None
64
+
65
+ return None
66
+
67
+
68
+ def extract_cc_from_mlst(
69
+ MLST: str,
70
+ mlst_scheme_tsv: Path = "/users/data/Projects/MICROBIAL_SURVEILLANCE/Resources/Databases/mlst/neisseria/neisseria.txt",
71
+ ):
72
+ CC = {"CC": ""}
73
+ if mlst_scheme_tsv.exists():
74
+ try:
75
+ with open(mlst_scheme_tsv) as f:
76
+ for line in f:
77
+ line = line.strip("\n").split("\t")
78
+ if line[0] == MLST:
79
+ if line[8][:3] == "ST-":
80
+ CC["CC"] = line[8].split(" ")[0][3:]
81
+ return CC
82
+ except Exception as e:
83
+ CC["CC"] = f"Failed to load mlst scheme tsv: {e}"
84
+ else:
85
+ CC["CC"] = "Failed to load mlst scheme tsv, file not found"
86
+ return CC
87
+
88
+
89
+ class NmeningitidisResults(core.PipelineResults):
90
+
91
+ @classmethod
92
+ def from_tool_paths(
93
+ cls, meningotype_tsv: Path, MLST: str, mlst_scheme_tsv: Path, sample_name=None
94
+ ):
95
+ """
96
+ Alternative constructor for initializing results for single sample,
97
+ Initializes NmeningitidisResults instance provided paths to outputs from tools (legionella sbt and lag1 presence blast)
98
+ """
99
+ mgk_results = cls.summary(
100
+ meningotype_tsv=Path(meningotype_tsv),
101
+ MLST=MLST,
102
+ mlst_scheme_tsv=Path(mlst_scheme_tsv),
103
+ )
104
+ return cls({sample_name: mgk_results})
105
+
106
+ @classmethod
107
+ def from_tool_paths_dict(cls, file_paths: dict):
108
+ """
109
+ Alternative constructor for initializing results for multiple samples,
110
+ Initializes NmeningitidisResults instance by providing a dictionary of paths to outputs from tools (legionella sbt and lag1 presence blast)
111
+ """
112
+ results_dict = {}
113
+ for sample_name, path_dict in file_paths.items():
114
+ mgk_results = cls.summary(
115
+ meningotype_tsv=Path(path_dict["meningotype_results"]),
116
+ MLST=path_dict["MLST"],
117
+ mlst_scheme_tsv=path_dict["mlst_scheme_tsv"],
118
+ )
119
+ results_dict[sample_name] = mgk_results
120
+ return cls(results_dict)
121
+
122
+ @classmethod
123
+ def from_tool_paths_dataframe(cls, file_paths_df: pandas.DataFrame):
124
+ """
125
+ Alternative constructor for initializing results for multiple samples,
126
+ Initializes NmeningitidisResults instance by providing a DataFrame of paths to outputs from tools (legionella sbt and lag1 presence blast)
127
+ """
128
+ file_paths = file_paths_df.to_dict(orient="index")
129
+
130
+ return cls.from_tool_paths_dict(file_paths=file_paths)
131
+
132
+ @classmethod
133
+ def from_tool_paths_tsv(cls, tool_paths_tsv: Path):
134
+ """
135
+ Alternative constructor for initializing results for multiple samples,
136
+ Initializes NmeningitidisResults instance by providing a tsv-file with paths to outputs from tools (legionella sbt and lag1 presence blast)
137
+ """
138
+ file_paths_df = pandas.read_csv(tool_paths_tsv, sep="\t")
139
+ file_paths_df.set_index("sample_name", inplace=True, drop=True)
140
+ return cls.from_tool_paths_dataframe(file_paths_df)
141
+
142
+ @staticmethod
143
+ def summary(meningotype_tsv: Path, MLST: str, mlst_scheme_tsv: Path) -> dict:
144
+ meningotype_results = extract_meningotype(meningotype_tsv=Path(meningotype_tsv))
145
+ results_dict = meningotype_results
146
+ cc_dict = extract_cc_from_mlst(MLST=MLST, mlst_scheme_tsv=Path(mlst_scheme_tsv))
147
+ results_dict = core.update_results_dict(
148
+ results_dict, cc_dict, old_duplicate_key_prefix="Clonal_complex: "
149
+ )
150
+ if results_dict is None:
151
+ return {}
152
+ return results_dict
153
+
154
+ def __repr__(self):
155
+ return f"< Spyogenes analysis results object. {len(self.results_df)} samples with {len(self.results_df.columns)} result variables > "
156
+
157
+ # %% ../nbs/37_Nmeningitidis_parser.ipynb 9
158
+ @call_parse
159
+ def Nmeningitidis_parser(
160
+ meningotype_tsv: Path = None, # Blast output from blasting EMM and emm-like genes
161
+ MLST: str = None, # MLST to deduce Clonal complex from
162
+ mlst_scheme_tsv: Path = None, # Path to pubmlst scheme for neisseria for MLST: CC table
163
+ sample_name: str = None,
164
+ output_file: Path = None,
165
+ ) -> None:
166
+ """ """
167
+ results = NmeningitidisResults.from_tool_paths(
168
+ meningotype_tsv=meningotype_tsv,
169
+ MLST=MLST,
170
+ mlst_scheme_tsv=mlst_scheme_tsv,
171
+ sample_name=sample_name,
172
+ )
173
+ results.write_tsv(output_file=output_file)
174
+
175
+
176
+ @call_parse
177
+ def Nmeningitidis_batch_parser(
178
+ file_path_tsv: Path = None, # Path to tsv containing file paths to the outputs from tools to be parsed. Must contain headers "sample_name", "sbt_results", and "lag1_blast_results"
179
+ output_file: Path = None, # Path to output tsv
180
+ ) -> None:
181
+ """ """
182
+ results = NmeningitidisResults.from_tool_paths_tsv(tool_paths_tsv=file_path_tsv)
183
+ results.write_tsv(output_file)
@@ -0,0 +1 @@
1
+ __version__ = "0.0.11"
@@ -45,6 +45,28 @@ d = { 'settings': { 'branch': 'main',
45
45
  'ssi_analysis_result_parsers/Legionella_parser.py'),
46
46
  'ssi_analysis_result_parsers.Legionella_parser.legionella_parser': ( 'legionella_parser.html#legionella_parser',
47
47
  'ssi_analysis_result_parsers/Legionella_parser.py')},
48
+ 'ssi_analysis_result_parsers.Nmeningitidis_parser': { 'ssi_analysis_result_parsers.Nmeningitidis_parser.NmeningitidisResults': ( 'nmeningitidis_parser.html#nmeningitidisresults',
49
+ 'ssi_analysis_result_parsers/Nmeningitidis_parser.py'),
50
+ 'ssi_analysis_result_parsers.Nmeningitidis_parser.NmeningitidisResults.__repr__': ( 'nmeningitidis_parser.html#nmeningitidisresults.__repr__',
51
+ 'ssi_analysis_result_parsers/Nmeningitidis_parser.py'),
52
+ 'ssi_analysis_result_parsers.Nmeningitidis_parser.NmeningitidisResults.from_tool_paths': ( 'nmeningitidis_parser.html#nmeningitidisresults.from_tool_paths',
53
+ 'ssi_analysis_result_parsers/Nmeningitidis_parser.py'),
54
+ 'ssi_analysis_result_parsers.Nmeningitidis_parser.NmeningitidisResults.from_tool_paths_dataframe': ( 'nmeningitidis_parser.html#nmeningitidisresults.from_tool_paths_dataframe',
55
+ 'ssi_analysis_result_parsers/Nmeningitidis_parser.py'),
56
+ 'ssi_analysis_result_parsers.Nmeningitidis_parser.NmeningitidisResults.from_tool_paths_dict': ( 'nmeningitidis_parser.html#nmeningitidisresults.from_tool_paths_dict',
57
+ 'ssi_analysis_result_parsers/Nmeningitidis_parser.py'),
58
+ 'ssi_analysis_result_parsers.Nmeningitidis_parser.NmeningitidisResults.from_tool_paths_tsv': ( 'nmeningitidis_parser.html#nmeningitidisresults.from_tool_paths_tsv',
59
+ 'ssi_analysis_result_parsers/Nmeningitidis_parser.py'),
60
+ 'ssi_analysis_result_parsers.Nmeningitidis_parser.NmeningitidisResults.summary': ( 'nmeningitidis_parser.html#nmeningitidisresults.summary',
61
+ 'ssi_analysis_result_parsers/Nmeningitidis_parser.py'),
62
+ 'ssi_analysis_result_parsers.Nmeningitidis_parser.Nmeningitidis_batch_parser': ( 'nmeningitidis_parser.html#nmeningitidis_batch_parser',
63
+ 'ssi_analysis_result_parsers/Nmeningitidis_parser.py'),
64
+ 'ssi_analysis_result_parsers.Nmeningitidis_parser.Nmeningitidis_parser': ( 'nmeningitidis_parser.html#nmeningitidis_parser',
65
+ 'ssi_analysis_result_parsers/Nmeningitidis_parser.py'),
66
+ 'ssi_analysis_result_parsers.Nmeningitidis_parser.extract_cc_from_mlst': ( 'nmeningitidis_parser.html#extract_cc_from_mlst',
67
+ 'ssi_analysis_result_parsers/Nmeningitidis_parser.py'),
68
+ 'ssi_analysis_result_parsers.Nmeningitidis_parser.extract_meningotype': ( 'nmeningitidis_parser.html#extract_meningotype',
69
+ 'ssi_analysis_result_parsers/Nmeningitidis_parser.py')},
48
70
  'ssi_analysis_result_parsers.Spyogenes_parser': { 'ssi_analysis_result_parsers.Spyogenes_parser.SpyogenesResults': ( 'spyogenes_parser.html#spyogenesresults',
49
71
  'ssi_analysis_result_parsers/Spyogenes_parser.py'),
50
72
  'ssi_analysis_result_parsers.Spyogenes_parser.SpyogenesResults.__repr__': ( 'spyogenes_parser.html#spyogenesresults.__repr__',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ssi_analysis_result_parsers
3
- Version: 0.0.10
3
+ Version: 0.0.12
4
4
  Summary: TODO
5
5
  Home-page: https://github.com/thej-ssi/ssi_analysis_result_parsers
6
6
  Author: Thor Bech Johannesen
@@ -19,9 +19,9 @@ Requires-Python: >=3.9
19
19
  Description-Content-Type: text/markdown
20
20
  License-File: LICENSE
21
21
  Requires-Dist: fastcore
22
- Requires-Dist: python_dotenv
23
- Requires-Dist: envyaml
24
22
  Requires-Dist: pandas
23
+ Requires-Dist: envyaml
24
+ Requires-Dist: python_dotenv
25
25
  Requires-Dist: black
26
26
  Provides-Extra: dev
27
27
  Dynamic: author
@@ -6,6 +6,7 @@ settings.ini
6
6
  setup.py
7
7
  ssi_analysis_result_parsers/Ecoli_parser.py
8
8
  ssi_analysis_result_parsers/Legionella_parser.py
9
+ ssi_analysis_result_parsers/Nmeningitidis_parser.py
9
10
  ssi_analysis_result_parsers/Spyogenes_parser.py
10
11
  ssi_analysis_result_parsers/__init__.py
11
12
  ssi_analysis_result_parsers/_modidx.py
@@ -31,7 +32,13 @@ test_input/Legionella/batch_parser_file_paths.tsv
31
32
  test_input/Legionella/lag-1_blast.tsv
32
33
  test_input/Legionella/lag-1_blast_2.tsv
33
34
  test_input/Legionella/test.sbt.tsv
35
+ test_input/Legionella/test.tsv
34
36
  test_input/Legionella/test2.sbt.tsv
37
+ test_input/Nmeningitidis/batch_parser_file_paths.tsv
38
+ test_input/Nmeningitidis/neisseria_mlst_scheme.tsv
39
+ test_input/Nmeningitidis/meningotype/meningotype1.tsv
40
+ test_input/Nmeningitidis/meningotype/meningotype2.tsv
41
+ test_input/Nmeningitidis/meningotype/meningotype3.tsv
35
42
  test_input/Spyogenes/batch_parser_file_paths.tsv
36
43
  test_input/Spyogenes/emm_typing/Mga.fasta
37
44
  test_input/Spyogenes/emm_typing/emm_clusters.txt
@@ -1,6 +1,8 @@
1
1
  [console_scripts]
2
2
  blast_parser_allele_matches = ssi_analysis_result_parsers.blast_parser:allele_matches
3
3
  blast_parser_presence_absence = ssi_analysis_result_parsers.blast_parser:presence_absence
4
+ get_Nmeningitidis_results = ssi_analysis_result_parsers.Nmeningitidis_parser:Nmeningitidis_parser
5
+ get_Nmeningitidis_results_batch = ssi_analysis_result_parsers.Nmeningitidis_parser:Nmeningitidis_batch_parser
4
6
  get_Spyogenes_results = ssi_analysis_result_parsers.Spyogenes_parser:Spyogenes_parser
5
7
  get_Spyogenes_results_batch = ssi_analysis_result_parsers.Spyogenes_parser:Spyogenes_batch_parser
6
8
  get_ecoli_results = ssi_analysis_result_parsers.Ecoli_parser:ecoli_parser
@@ -0,0 +1,2 @@
1
+ sample_name ST flaA pilE asd mip mompS proA neuA notes lag-1
2
+ 23 2 3 9 10 2 1 6 Exact ST match, Heterozygous mompS alleles, High confidence mompS allele call 1
@@ -0,0 +1,6 @@
1
+ sample_name meningotype_results MLST mlst_scheme_tsv
2
+ sample_1 test_input/Nmeningitidis/meningotype/meningotype1.tsv 1466 test_input/Nmeningitidis/neisseria_mlst_scheme.tsv
3
+ sample_2 test_input/Nmeningitidis/meningotype/meningotype2.tsv 1157 test_input/Nmeningitidis/neisseria_mlst_scheme.tsv
4
+ sample_3 test_input/Nmeningitidis/meningotype/meningotype3.tsv - test_input/Nmeningitidis/neisseria_mlst_scheme.tsv
5
+ sample_4 test_input/Nmeningitidis/meningotype/meningotype4.tsv fdafd test_input/Nmeningitidis/neisseria_mlst_scheme.tsv
6
+ sample_5 test_input/empty_file.txt fdafd test_input/Nmeningitidis/neisseria_mlst_scheme.tsv
@@ -0,0 +1,2 @@
1
+ SAMPLE_ID SEROGROUP ctrA MLST PorA FetA PorB fHbp NHBA NadA BAST
2
+ /users/data/Projects/SB_surveillance/proj/Results/MGK/2025/250410_VL00760_37_N_WGS_915_AAGLJKNM5/MGK-2025-0011/meningotype/contigs.fasta Y ctrA 1466 21,16 F3-7 NEIS2020_44 21 6 new -
@@ -0,0 +1,2 @@
1
+ SAMPLE_ID SEROGROUP ctrA MLST PorA FetA PorB fHbp NHBA NadA BAST
2
+ MGK-2023-014_S39.fasta X ctrA 1157 5,2-67 F5-36 NEIS2020_43 13 114 new -
@@ -0,0 +1,2 @@
1
+ SAMPLE_ID SEROGROUP ctrA MLST PorA FetA PorB fHbp NHBA NadA BAST
2
+ MGK-2023-015_S51.fasta B ctrA - 18-1,30-4 F3-3 NEIS2020_27 0 29 1 -