ssi-analysis-result-parsers 0.0.10__tar.gz → 0.0.11__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 (62) hide show
  1. {ssi_analysis_result_parsers-0.0.10/ssi_analysis_result_parsers.egg-info → ssi_analysis_result_parsers-0.0.11}/PKG-INFO +1 -1
  2. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/settings.ini +3 -1
  3. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers/Legionella_parser.py +3 -1
  4. ssi_analysis_result_parsers-0.0.11/ssi_analysis_result_parsers/Nmeningitidis_parser.py +178 -0
  5. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers/_modidx.py +22 -0
  6. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11/ssi_analysis_result_parsers.egg-info}/PKG-INFO +1 -1
  7. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers.egg-info/SOURCES.txt +7 -0
  8. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers.egg-info/entry_points.txt +2 -0
  9. ssi_analysis_result_parsers-0.0.11/test_input/Legionella/test.tsv +2 -0
  10. ssi_analysis_result_parsers-0.0.11/test_input/Nmeningitidis/batch_parser_file_paths.tsv +6 -0
  11. ssi_analysis_result_parsers-0.0.11/test_input/Nmeningitidis/meningotype/meningotype1.tsv +2 -0
  12. ssi_analysis_result_parsers-0.0.11/test_input/Nmeningitidis/meningotype/meningotype2.tsv +2 -0
  13. ssi_analysis_result_parsers-0.0.11/test_input/Nmeningitidis/meningotype/meningotype3.tsv +2 -0
  14. ssi_analysis_result_parsers-0.0.11/test_input/Nmeningitidis/neisseria_mlst_scheme.tsv +18415 -0
  15. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/LICENSE +0 -0
  16. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/MANIFEST.in +0 -0
  17. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/README.md +0 -0
  18. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/pyproject.toml +0 -0
  19. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/setup.cfg +0 -0
  20. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/setup.py +0 -0
  21. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers/Ecoli_parser.py +0 -0
  22. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers/Spyogenes_parser.py +0 -0
  23. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers/__init__.py +0 -0
  24. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers/blast_parser.py +0 -0
  25. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers/config/config.default.env +0 -0
  26. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers/config/config.default.yaml +0 -0
  27. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers/core.py +0 -0
  28. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers/hello_world.py +0 -0
  29. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers/some_string.py +0 -0
  30. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers.egg-info/dependency_links.txt +0 -0
  31. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers.egg-info/not-zip-safe +0 -0
  32. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers.egg-info/requires.txt +0 -0
  33. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/ssi_analysis_result_parsers.egg-info/top_level.txt +0 -0
  34. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/.DS_Store +0 -0
  35. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Ecoli/ERR14229029.res +0 -0
  36. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Ecoli/ERR3528110.res +0 -0
  37. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Ecoli/samplesheet.tsv +0 -0
  38. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Legionella/batch_parser_file_paths.tsv +0 -0
  39. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Legionella/lag-1_blast.tsv +0 -0
  40. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Legionella/lag-1_blast_2.tsv +0 -0
  41. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Legionella/test.sbt.tsv +0 -0
  42. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Legionella/test2.sbt.tsv +0 -0
  43. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Spyogenes/batch_parser_file_paths.tsv +0 -0
  44. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Spyogenes/emm_typing/Mga.fasta +0 -0
  45. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Spyogenes/emm_typing/emm_clusters.txt +0 -0
  46. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Spyogenes/emm_typing/test1.emm.blast.tsv +0 -0
  47. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Spyogenes/emm_typing/test1.mga.blast.tsv +0 -0
  48. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Spyogenes/emm_typing/test2.emm.blast.tsv +0 -0
  49. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Spyogenes/emm_typing/test2.mga.blast.tsv +0 -0
  50. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Spyogenes/emm_typing/test3.emm.blast.tsv +0 -0
  51. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Spyogenes/emm_typing/test4.emm.blast.tsv +0 -0
  52. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Spyogenes/emm_typing/test5.emm.blast.tsv +0 -0
  53. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Spyogenes/emm_typing/test6.emm.blast.tsv +0 -0
  54. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/Spyogenes/emm_typing/test7.emm.blast.tsv +0 -0
  55. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/blast_parser/allele_matches_test.tsv +0 -0
  56. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/blast_parser/empty_gene_presence_absense_test.tsv +0 -0
  57. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/blast_parser/gene_presence_absence_test.tsv +0 -0
  58. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_input/empty_file.txt +0 -0
  59. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_output/Ecoli/KMA_cases_parser.tsv +0 -0
  60. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_output/output_with_sample_name.tsv +0 -0
  61. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/test_output/test.tsv +0 -0
  62. {ssi_analysis_result_parsers-0.0.10 → ssi_analysis_result_parsers-0.0.11}/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.11
4
4
  Summary: TODO
5
5
  Home-page: https://github.com/thej-ssi/ssi_analysis_result_parsers
6
6
  Author: Thor Bech Johannesen
@@ -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.11
9
9
  min_python = 3.9
10
10
  license = MIT
11
11
  black_formatting = True
@@ -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,178 @@
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
+ return {
46
+ "SEROGROUP": df["SEROGROUP"][0],
47
+ "VR1": PorA_split[0],
48
+ "VR2": PorA_split[1],
49
+ "FetA": df["FetA"][0],
50
+ }
51
+ except pandas.errors.EmptyDataError:
52
+ print(
53
+ f"Meningotype output file empty at {meningotype_tsv}", file=sys.stderr
54
+ )
55
+ return None
56
+ else:
57
+ print(f"No meningotype output found at {meningotype_tsv}", file=sys.stderr)
58
+ return None
59
+
60
+ return None
61
+
62
+
63
+ def extract_cc_from_mlst(
64
+ MLST: str,
65
+ mlst_scheme_tsv: Path = "/users/data/Projects/MICROBIAL_SURVEILLANCE/Resources/Databases/mlst/neisseria/neisseria.txt",
66
+ ):
67
+ CC = {"CC": ""}
68
+ if mlst_scheme_tsv.exists():
69
+ try:
70
+ with open(mlst_scheme_tsv) as f:
71
+ for line in f:
72
+ line = line.strip("\n").split("\t")
73
+ if line[0] == MLST:
74
+ if line[8][:3] == "ST-":
75
+ CC["CC"] = line[8].split(" ")[0][3:]
76
+ return CC
77
+ except Exception as e:
78
+ CC["CC"] = f"Failed to load mlst scheme tsv: {e}"
79
+ else:
80
+ CC["CC"] = "Failed to load mlst scheme tsv, file not found"
81
+ return CC
82
+
83
+
84
+ class NmeningitidisResults(core.PipelineResults):
85
+
86
+ @classmethod
87
+ def from_tool_paths(
88
+ cls, meningotype_tsv: Path, MLST: str, mlst_scheme_tsv: Path, sample_name=None
89
+ ):
90
+ """
91
+ Alternative constructor for initializing results for single sample,
92
+ Initializes NmeningitidisResults instance provided paths to outputs from tools (legionella sbt and lag1 presence blast)
93
+ """
94
+ mgk_results = cls.summary(
95
+ meningotype_tsv=Path(meningotype_tsv),
96
+ MLST=MLST,
97
+ mlst_scheme_tsv=Path(mlst_scheme_tsv),
98
+ )
99
+ return cls({sample_name: mgk_results})
100
+
101
+ @classmethod
102
+ def from_tool_paths_dict(cls, file_paths: dict):
103
+ """
104
+ Alternative constructor for initializing results for multiple samples,
105
+ Initializes NmeningitidisResults instance by providing a dictionary of paths to outputs from tools (legionella sbt and lag1 presence blast)
106
+ """
107
+ results_dict = {}
108
+ for sample_name, path_dict in file_paths.items():
109
+ mgk_results = cls.summary(
110
+ meningotype_tsv=Path(path_dict["meningotype_results"]),
111
+ MLST=path_dict["MLST"],
112
+ mlst_scheme_tsv=path_dict["mlst_scheme_tsv"],
113
+ )
114
+ results_dict[sample_name] = mgk_results
115
+ return cls(results_dict)
116
+
117
+ @classmethod
118
+ def from_tool_paths_dataframe(cls, file_paths_df: pandas.DataFrame):
119
+ """
120
+ Alternative constructor for initializing results for multiple samples,
121
+ Initializes NmeningitidisResults instance by providing a DataFrame of paths to outputs from tools (legionella sbt and lag1 presence blast)
122
+ """
123
+ file_paths = file_paths_df.to_dict(orient="index")
124
+
125
+ return cls.from_tool_paths_dict(file_paths=file_paths)
126
+
127
+ @classmethod
128
+ def from_tool_paths_tsv(cls, tool_paths_tsv: Path):
129
+ """
130
+ Alternative constructor for initializing results for multiple samples,
131
+ Initializes NmeningitidisResults instance by providing a tsv-file with paths to outputs from tools (legionella sbt and lag1 presence blast)
132
+ """
133
+ file_paths_df = pandas.read_csv(tool_paths_tsv, sep="\t")
134
+ file_paths_df.set_index("sample_name", inplace=True, drop=True)
135
+ return cls.from_tool_paths_dataframe(file_paths_df)
136
+
137
+ @staticmethod
138
+ def summary(meningotype_tsv: Path, MLST: str, mlst_scheme_tsv: Path) -> dict:
139
+ meningotype_results = extract_meningotype(meningotype_tsv=Path(meningotype_tsv))
140
+ results_dict = meningotype_results
141
+ cc_dict = extract_cc_from_mlst(MLST=MLST, mlst_scheme_tsv=Path(mlst_scheme_tsv))
142
+ results_dict = core.update_results_dict(
143
+ results_dict, cc_dict, old_duplicate_key_prefix="Clonal_complex: "
144
+ )
145
+ if results_dict is None:
146
+ return {}
147
+ return results_dict
148
+
149
+ def __repr__(self):
150
+ return f"< Spyogenes analysis results object. {len(self.results_df)} samples with {len(self.results_df.columns)} result variables > "
151
+
152
+ # %% ../nbs/37_Nmeningitidis_parser.ipynb 9
153
+ @call_parse
154
+ def Nmeningitidis_parser(
155
+ meningotype_tsv: Path = None, # Blast output from blasting EMM and emm-like genes
156
+ MLST: str = None, # MLST to deduce Clonal complex from
157
+ mlst_scheme_tsv: Path = None, # Path to pubmlst scheme for neisseria for MLST: CC table
158
+ sample_name: str = None,
159
+ output_file: Path = None,
160
+ ) -> None:
161
+ """ """
162
+ results = NmeningitidisResults.from_tool_paths(
163
+ meningotype_tsv=meningotype_tsv,
164
+ MLST=MLST,
165
+ mlst_scheme_tsv=mlst_scheme_tsv,
166
+ sample_name=sample_name,
167
+ )
168
+ results.write_tsv(output_file=output_file)
169
+
170
+
171
+ @call_parse
172
+ def Nmeningitidis_batch_parser(
173
+ 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"
174
+ output_file: Path = None, # Path to output tsv
175
+ ) -> None:
176
+ """ """
177
+ results = NmeningitidisResults.from_tool_paths_tsv(tool_paths_tsv=file_path_tsv)
178
+ results.write_tsv(output_file)
@@ -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.11
4
4
  Summary: TODO
5
5
  Home-page: https://github.com/thej-ssi/ssi_analysis_result_parsers
6
6
  Author: Thor Bech Johannesen
@@ -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 -