ssi-analysis-result-parsers 0.0.8__py3-none-any.whl → 0.0.9__py3-none-any.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.
@@ -56,7 +56,14 @@ def extract_emm_type(emm_blast_tsv: Path):
56
56
  """
57
57
 
58
58
  emm_types_in_emm_plus_mrp_operons = [] ### to update
59
- mrp_types_in_emm_plus_mrp_operons = ["156"] ### to update
59
+ mrp_types_in_emm_plus_mrp_operons = [
60
+ "134",
61
+ "156",
62
+ "159",
63
+ "164",
64
+ "174",
65
+ "205",
66
+ ] ### to update
60
67
  emm_blast_tsv = Path(emm_blast_tsv)
61
68
  emm_typing_results = {"EMM_type": "-", "ENN_type": "-", "MRP_type": "-"}
62
69
  if not emm_blast_tsv.exists():
@@ -85,87 +92,119 @@ def extract_emm_type(emm_blast_tsv: Path):
85
92
  .groupby("extended_sstart")
86
93
  .first()
87
94
  )
88
- print(blast_df_unique)
89
- if blast_df_unique.shape[0] == 1:
90
- emm_typing_results["EMM_type"] = blast_df_unique.iloc[0]["qseqid"][3:]
91
- if (
92
- blast_df_unique.iloc[0]["length"] < 180
93
- or blast_df_unique.iloc[0]["pident"] < 100
94
- ):
95
- emm_typing_results["EMM_type"] += "*"
96
- notes.append(
97
- f"EMM{blast_df_unique.iloc[0]['qseqid'][3:]} with {round(blast_df_unique.iloc[0]['pident'],2)} and length {blast_df_unique.iloc[0]['length']}/{blast_df_unique.iloc[0]['qlen']}"
98
- )
99
- else:
100
- if blast_df_unique.iloc[0]["sstart"] < blast_df_unique.iloc[0]["send"]:
101
- blast_df_unique = blast_df_unique.sort_values(by=["sstart"], ascending=True)
102
- else:
103
- blast_df_unique = blast_df_unique.sort_values(
104
- by=["sstart"], ascending=False
95
+
96
+ if blast_df_unique.shape[0] == 0:
97
+ notes.append("No blast hits found for EMM genes")
98
+ elif len(set(blast_df_unique["sseqid"])) == 1:
99
+ if blast_df_unique.shape[0] == 1:
100
+ emm_typing_results["EMM_type"] = (
101
+ "EMM" + blast_df_unique.iloc[0]["qseqid"][3:]
105
102
  )
106
- if blast_df_unique.shape[0] == 2:
107
- emm_typing_results["EMM_type"] = blast_df_unique.iloc[0]["qseqid"][3:]
108
103
  if (
109
- blast_df_unique.iloc[0]["length"] < 180
104
+ blast_df_unique.iloc[0]["length"] < blast_df_unique.iloc[0]["qlen"]
110
105
  or blast_df_unique.iloc[0]["pident"] < 100
111
106
  ):
112
107
  emm_typing_results["EMM_type"] += "*"
113
108
  notes.append(
114
- f"EMM{blast_df_unique.iloc[0]['qseqid'][3:]} with pident {round(blast_df_unique.iloc[0]['pident'],2)} and length {blast_df_unique.iloc[0]['length']}/{blast_df_unique.iloc[0]['qlen']}"
109
+ f"EMM{blast_df_unique.iloc[0]['qseqid'][3:]} with {round(blast_df_unique.iloc[0]['pident'],2)} and length {blast_df_unique.iloc[0]['length']}/{blast_df_unique.iloc[0]['qlen']}"
110
+ )
111
+ else:
112
+ if blast_df_unique.iloc[0]["sstart"] < blast_df_unique.iloc[0]["send"]:
113
+ blast_df_unique = blast_df_unique.sort_values(
114
+ by=["sstart"], ascending=True
115
+ )
116
+ else:
117
+ blast_df_unique = blast_df_unique.sort_values(
118
+ by=["sstart"], ascending=False
115
119
  )
120
+ if blast_df_unique.shape[0] == 2:
121
+ emm_typing_results["EMM_type"] = (
122
+ "EMM" + blast_df_unique.iloc[0]["qseqid"][3:]
123
+ )
124
+ if (
125
+ blast_df_unique.iloc[0]["length"] < blast_df_unique.iloc[0]["qlen"]
126
+ or blast_df_unique.iloc[0]["pident"] < 100
127
+ ):
128
+ emm_typing_results["EMM_type"] += "*"
129
+ notes.append(
130
+ f"EMM{blast_df_unique.iloc[0]['qseqid'][3:]} with pident {round(blast_df_unique.iloc[0]['pident'],2)} and length {blast_df_unique.iloc[0]['length']}/{blast_df_unique.iloc[0]['qlen']}"
131
+ )
116
132
 
117
- emm_typing_results["ENN_type"] = blast_df_unique.iloc[1]["qseqid"][3:]
118
- if (
119
- blast_df_unique.iloc[1]["length"] < 180
120
- or blast_df_unique.iloc[1]["pident"] < 100
121
- ):
122
- emm_typing_results["ENN_type"] += "*"
123
- notes.append(
124
- f"ENN{blast_df_unique.iloc[1]['qseqid'][3:]} with pident {round(blast_df_unique.iloc[1]['pident'],2)} and length {blast_df_unique.iloc[1]['length']}/{blast_df_unique.iloc[1]['qlen']}"
133
+ emm_typing_results["ENN_type"] = (
134
+ "ENN" + blast_df_unique.iloc[1]["qseqid"][3:]
125
135
  )
126
- emm_maintype = blast_df_unique.iloc[0]["qseqid"][3:].split(".")[0]
127
- mrp_maintype = blast_df_unique.iloc[1]["qseqid"][3:].split(".")[0]
128
- if (
129
- mrp_maintype in emm_types_in_emm_plus_mrp_operons
130
- or emm_maintype in mrp_types_in_emm_plus_mrp_operons
131
- ):
132
- emm_typing_results["MRP_type"] = emm_typing_results["EMM_type"]
133
- emm_typing_results["EMM_type"] = emm_typing_results["ENN_type"]
134
- emm_typing_results["ENN_type"] = "-"
135
- notes.append(f"EMM redesignated due to known MRP+EMM operon")
136
+ if (
137
+ blast_df_unique.iloc[1]["length"] < blast_df_unique.iloc[1]["qlen"]
138
+ or blast_df_unique.iloc[1]["pident"] < 100
139
+ ):
140
+ emm_typing_results["ENN_type"] += "*"
141
+ notes.append(
142
+ f"ENN{blast_df_unique.iloc[1]['qseqid'][3:]} with pident {round(blast_df_unique.iloc[1]['pident'],2)} and length {blast_df_unique.iloc[1]['length']}/{blast_df_unique.iloc[1]['qlen']}"
143
+ )
144
+ emm_maintype = blast_df_unique.iloc[0]["qseqid"][3:].split(".")[0]
145
+ mrp_maintype = blast_df_unique.iloc[1]["qseqid"][3:].split(".")[0]
146
+ if (
147
+ mrp_maintype in emm_types_in_emm_plus_mrp_operons
148
+ or emm_maintype in mrp_types_in_emm_plus_mrp_operons
149
+ ):
150
+ emm_typing_results["MRP_type"] = (
151
+ "MRP" + emm_typing_results["EMM_type"][3:]
152
+ )
153
+ emm_typing_results["EMM_type"] = (
154
+ "EMM" + emm_typing_results["ENN_type"][3:]
155
+ )
156
+ emm_typing_results["ENN_type"] = "-"
157
+ notes.append(f"EMM redesignated due to known MRP+EMM operon")
136
158
 
137
- elif blast_df_unique.shape[0] == 3:
138
- emm_typing_results["MRP_type"] = blast_df_unique.iloc[0]["qseqid"][3:]
139
- if (
140
- blast_df_unique.iloc[0]["length"] < 180
141
- or blast_df_unique.iloc[0]["pident"] < 100
142
- ):
143
- emm_typing_results["MRP_type"] += "*"
144
- notes.append(
145
- f"MRP{blast_df_unique.iloc[0]['qseqid'][3:]} with pident {round(blast_df_unique.iloc[0]['pident'],2)} and length {blast_df_unique.iloc[0]['length']}/{blast_df_unique.iloc[0]['qlen']}"
159
+ elif blast_df_unique.shape[0] == 3:
160
+ emm_typing_results["MRP_type"] = (
161
+ "MRP" + blast_df_unique.iloc[0]["qseqid"][3:]
146
162
  )
163
+ if (
164
+ blast_df_unique.iloc[0]["length"] < blast_df_unique.iloc[0]["qlen"]
165
+ or blast_df_unique.iloc[0]["pident"] < 100
166
+ ):
167
+ emm_typing_results["MRP_type"] += "*"
168
+ notes.append(
169
+ f"MRP{blast_df_unique.iloc[0]['qseqid'][3:]} with pident {round(blast_df_unique.iloc[0]['pident'],2)} and length {blast_df_unique.iloc[0]['length']}/{blast_df_unique.iloc[0]['qlen']}"
170
+ )
147
171
 
148
- emm_typing_results["EMM_type"] = blast_df_unique.iloc[1]["qseqid"][3:]
149
- if (
150
- blast_df_unique.iloc[1]["length"] < 180
151
- or blast_df_unique.iloc[1]["pident"] < 100
152
- ):
153
- emm_typing_results["EMM_type"] += "*"
154
- notes.append(
155
- f"EMM{blast_df_unique.iloc[1]['qseqid'][3:]} with pident {round(blast_df_unique.iloc[1]['pident'],2)} and length {blast_df_unique.iloc[1]['length']}/{blast_df_unique.iloc[1]['qlen']}"
172
+ emm_typing_results["EMM_type"] = (
173
+ "EMM" + blast_df_unique.iloc[1]["qseqid"][3:]
156
174
  )
175
+ if (
176
+ blast_df_unique.iloc[1]["length"] < blast_df_unique.iloc[1]["qlen"]
177
+ or blast_df_unique.iloc[1]["pident"] < 100
178
+ ):
179
+ emm_typing_results["EMM_type"] += "*"
180
+ notes.append(
181
+ f"EMM{blast_df_unique.iloc[1]['qseqid'][3:]} with pident {round(blast_df_unique.iloc[1]['pident'],2)} and length {blast_df_unique.iloc[1]['length']}/{blast_df_unique.iloc[1]['qlen']}"
182
+ )
157
183
 
158
- emm_typing_results["ENN_type"] = blast_df_unique.iloc[2]["qseqid"][3:]
159
- if (
160
- blast_df_unique.iloc[2]["length"] < 180
161
- or blast_df_unique.iloc[2]["pident"] < 100
162
- ):
163
- emm_typing_results["ENN_type"] += "*"
164
- notes.append(
165
- f"ENN{blast_df_unique.iloc[2]['qseqid'][3:]} with pident {round(blast_df_unique.iloc[2]['pident'],2)} and length {blast_df_unique.iloc[2]['length']}/{blast_df_unique.iloc[2]['qlen']}"
184
+ emm_typing_results["ENN_type"] = (
185
+ "ENN" + blast_df_unique.iloc[2]["qseqid"][3:]
166
186
  )
167
- elif blast_df_unique.shape[0] == 0:
168
- notes.append("No blast hits found for EMM genes")
187
+ if (
188
+ blast_df_unique.iloc[2]["length"] < blast_df_unique.iloc[2]["qlen"]
189
+ or blast_df_unique.iloc[2]["pident"] < 100
190
+ ):
191
+ emm_typing_results["ENN_type"] += "*"
192
+ notes.append(
193
+ f"ENN{blast_df_unique.iloc[2]['qseqid'][3:]} with pident {round(blast_df_unique.iloc[2]['pident'],2)} and length {blast_df_unique.iloc[2]['length']}/{blast_df_unique.iloc[2]['qlen']}"
194
+ )
195
+ else:
196
+ note_to_add = "EMM and EMM-like genes found on multiple contigs"
197
+ emm_genes = []
198
+ for index, row in blast_df_unique.iterrows():
199
+ if row["length"] < row["qlen"] or row["pident"] < 100:
200
+ emm_genes.append(row["qseqid"][3:] + "*")
201
+ else:
202
+ emm_genes.append(row["qseqid"][3:])
203
+ notes.append(
204
+ "EMM and EMM-like genes found on multiple contigs. Alleles found: "
205
+ + "/".join(emm_genes)
206
+ )
207
+
169
208
  emm_typing_results["emm_typing_notes"] = ", ".join(notes)
170
209
  return emm_typing_results
171
210
 
@@ -1 +1 @@
1
- __version__ = "0.0.7"
1
+ __version__ = "0.0.9"
@@ -74,8 +74,8 @@ def extract_presence_absence(
74
74
  except pandas.errors.EmptyDataError:
75
75
  blast_dict = {}
76
76
  print(f"Blast output file {blast_output_tsv} empty. Assuming 0 blast hits.")
77
- except Exception as e:
78
- print(f"Error parsing blast: e")
77
+ # except Exception as e:
78
+ # print(f"Error parsing blast: e")
79
79
  if hits_as_string:
80
80
 
81
81
  results = []
@@ -105,6 +105,7 @@ def extract_presence_absence(
105
105
 
106
106
  else:
107
107
  print(f"No blast output found at {blast_output_tsv}", file=sys.stderr)
108
+ return None
108
109
 
109
110
 
110
111
  def extract_allele_matches(
@@ -122,21 +123,38 @@ def extract_allele_matches(
122
123
  allele_dict = {}
123
124
  detailed_dict = {}
124
125
  if os.path.exists(blast_output_tsv):
125
- blast_df = pandas.read_csv(blast_output_tsv, sep="\t", header=None)
126
- blast_df.columns = tsv_header.split(" ")
127
- blast_df.set_index("qseqid", drop=False)
128
- blast_df["plen"] = blast_df["length"] / blast_df["qlen"] * 100
129
- blast_df[["gene", "allele"]] = blast_df["qseqid"].str.split("_", expand=True)
130
- blast_df_unique = (
131
- blast_df.sort_values(by=["bitscore"], ascending=False)
132
- .groupby("gene")
133
- .first()
134
- )
135
- for gene, d in blast_df_unique.to_dict(orient="index").items():
136
- allele_dict[gene] = d["allele"]
137
- detailed_dict[gene] = f"{d['allele']}__{d['pident']}__{d['plen']}"
126
+ try:
127
+ blast_df = pandas.read_csv(blast_output_tsv, sep="\t", header=None)
128
+ header_list = tsv_header.split(" ")
129
+ if len(header_list) == len(blast_df.columns):
130
+ blast_df.columns = tsv_header.split(" ")
131
+ blast_df.set_index("qseqid", drop=False)
132
+ blast_df["plen"] = blast_df["length"] / blast_df["qlen"] * 100
133
+ blast_df[["gene", "allele"]] = blast_df["qseqid"].str.split(
134
+ "_", expand=True
135
+ )
136
+ blast_df_unique = (
137
+ blast_df.sort_values(by=["bitscore"], ascending=False)
138
+ .groupby("gene")
139
+ .first()
140
+ )
141
+ for gene, d in blast_df_unique.to_dict(orient="index").items():
142
+ allele_dict[gene] = d["allele"]
143
+ detailed_dict[gene] = f"{d['allele']}__{d['pident']}__{d['plen']}"
144
+ else:
145
+ print(
146
+ f"Failed to parse {blast_output_tsv}. Number of columns do not match length of provided header string",
147
+ file=sys.stderr,
148
+ )
149
+ return None
150
+
151
+ except pandas.errors.EmptyDataError:
152
+ detailed_dict = {}
153
+ allele_dict = {}
154
+ print(f"Blast output file {blast_output_tsv} empty. Assuming 0 blast hits.")
138
155
  else:
139
156
  print(f"No blast output found at {blast_output_tsv}", file=sys.stderr)
157
+ return None
140
158
 
141
159
  if include_match_stats:
142
160
  return detailed_dict
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ssi_analysis_result_parsers
3
- Version: 0.0.8
3
+ Version: 0.0.9
4
4
  Summary: TODO
5
5
  Home-page: https://github.com/thej-ssi/ssi_analysis_result_parsers
6
6
  Author: Thor Bech Johannesen
@@ -1,14 +1,14 @@
1
1
  ssi_analysis_result_parsers/Legionella_parser.py,sha256=nBOPrelzCMh8IMEDje6jtU9sz92sEyuxddBe0MntTfo,6879
2
- ssi_analysis_result_parsers/Spyogenes_parser.py,sha256=fTud7InvlPPPH1YHt5wcK1sGPZQlgNvIyN28qhcJLi8,11295
3
- ssi_analysis_result_parsers/__init__.py,sha256=R9xOYoYrWKcfO5zvTeGC3m_eDNOvxMd8CocQs2tLufo,22
2
+ ssi_analysis_result_parsers/Spyogenes_parser.py,sha256=AaA-63AWbRdjkqdZQahGktwDObsSS9KxDwroftzoDiw,12804
3
+ ssi_analysis_result_parsers/__init__.py,sha256=46Yjk3fz9o8aTN8E95McnzpJcjGzVJmHmQqUZ5mXzfc,22
4
4
  ssi_analysis_result_parsers/_modidx.py,sha256=kz1oGnDbstzvo_tNuFiX5wkhfhNmiqSiCkwBnzplRU0,14895
5
- ssi_analysis_result_parsers/blast_parser.py,sha256=EBqWlx8bDlaSzqAZomiUGnT2DGaaA-L7ukny7SEJbpk,7915
5
+ ssi_analysis_result_parsers/blast_parser.py,sha256=pIzMGk5-VyTy8uzFncTiIsy80wQxl9NbNiGI_K7XMaM,8658
6
6
  ssi_analysis_result_parsers/core.py,sha256=8CzFMDrGJ24D9aoIebLsG8tx-OxvYJod1cxBITqNfaY,12258
7
7
  ssi_analysis_result_parsers/hello_world.py,sha256=jpN94sqYuNHqUbUZMCJ35qGY5iLPB_emucgnDGDUk_U,1895
8
8
  ssi_analysis_result_parsers/some_string.py,sha256=JwmAXKbX_JgY8UGh4FAu5-7ZjezcAEhq4Q2B73pWp2M,923
9
9
  ssi_analysis_result_parsers/config/config.default.env,sha256=Zt6bfPbVV3rYCksoebX1ruAdFgeD9wqAnKDtswhtJJM,1390
10
10
  ssi_analysis_result_parsers/config/config.default.yaml,sha256=3qgUrUtQpxrzYv7WQaHsvz9dQB0RALKNU0idxv7oRqM,460
11
- ssi_analysis_result_parsers-0.0.8.dist-info/licenses/LICENSE,sha256=p6aTb6QIfqyZ2Uux2VjV4F2zthdUSHZOjB4mfwGc7fo,1094
11
+ ssi_analysis_result_parsers-0.0.9.dist-info/licenses/LICENSE,sha256=p6aTb6QIfqyZ2Uux2VjV4F2zthdUSHZOjB4mfwGc7fo,1094
12
12
  test_input/.DS_Store,sha256=sdTEvl9DTKPHNPYYjMqDepX7q7ZETlonk21tGEuWLao,6148
13
13
  test_input/empty_file.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  test_input/Legionella/batch_parser_file_paths.tsv,sha256=AikBS_Ez1xO3UrEQ19AY3z6drBDdMAiSGK66NLeyYj4,356
@@ -16,7 +16,7 @@ test_input/Legionella/lag-1_blast.tsv,sha256=MN5QL_iBn9gQ8VTYEcTnT0JwKgpkD8G15-Q
16
16
  test_input/Legionella/lag-1_blast_2.tsv,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  test_input/Legionella/test.sbt.tsv,sha256=ibhaH3is2dxHaABPvR2QM2HAq9bKOs1AwOTmrwSrcd8,168
18
18
  test_input/Legionella/test2.sbt.tsv,sha256=uJyVGHKXPmnvaXSt_84_buATOyl79H6vZjkWRitca9k,170
19
- test_input/Spyogenes/batch_parser_file_paths.tsv,sha256=PzJO_X6jUdVz4Z6BU2NI_7H1oclIDXkfLPhR9Mj1X8E,231
19
+ test_input/Spyogenes/batch_parser_file_paths.tsv,sha256=Va9rulA_fbK6k9IkIa0Lr2z5qG-spquc056_gL5bG1I,547
20
20
  test_input/Spyogenes/emm_typing/Mga.fasta,sha256=WvDUm_tiUfAfcBAh9fwOHc8F0WkvjaxNErzUsMNV1w4,1630
21
21
  test_input/Spyogenes/emm_typing/emm_clusters.txt,sha256=ggYNeQjAIIokLHX6vXc7ER6PIIwbhQR5OahD3cxu88c,3479
22
22
  test_input/Spyogenes/emm_typing/test1.emm.blast.tsv,sha256=Xncpf4b0WEtbxBNKYaA84yPxwzyWG8S8QIJ7ifP-lIk,10759
@@ -27,14 +27,15 @@ test_input/Spyogenes/emm_typing/test3.emm.blast.tsv,sha256=Z5MV_PMF6GjQokkxP4w30
27
27
  test_input/Spyogenes/emm_typing/test4.emm.blast.tsv,sha256=tM9-iXa3STGyR0_DpIYfgETZBirxz4-uX5f0rq4Ni-A,4989
28
28
  test_input/Spyogenes/emm_typing/test5.emm.blast.tsv,sha256=gNAtzRdO1nBUwCH4Az57-_-s4aXoWgjZW14iA3Tjp-4,8347
29
29
  test_input/Spyogenes/emm_typing/test6.emm.blast.tsv,sha256=mSySwORBVGGXVoSGECoYVw9OVDcUVaExMXVtb5DAwqE,11698
30
+ test_input/Spyogenes/emm_typing/test7.emm.blast.tsv,sha256=ff308ZD95mQZu3K2OXUKEldL5uRwE_rxVF-Gb8VDv8A,10376
30
31
  test_input/blast_parser/allele_matches_test.tsv,sha256=7vfQAOxz3fKc84HtxN9eoCyQoF9G8MFd-GKH3Krw_Cs,233035
31
32
  test_input/blast_parser/empty_gene_presence_absense_test.tsv,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
33
  test_input/blast_parser/gene_presence_absence_test.tsv,sha256=qCvMkBC-1GuXx83RDhnGAuuBXAlIq4e_IW0rrNVn2yA,1447
33
34
  test_output/output_with_sample_name.tsv,sha256=NQG7WaxczuWCCsX2a9MUxCCYpbuAirz9gw08OLdEdUo,41
34
35
  test_output/test.tsv,sha256=6DGzarXMkUP03Z58vZimc-gu1K2k84zxZLWWF2HROCg,277
35
36
  test_output/test_batch_output.tsv,sha256=6DGzarXMkUP03Z58vZimc-gu1K2k84zxZLWWF2HROCg,277
36
- ssi_analysis_result_parsers-0.0.8.dist-info/METADATA,sha256=6TO2iB06jnXSGOlf5Jpd4gnNrNdmSekVYeirLnUTNSs,2765
37
- ssi_analysis_result_parsers-0.0.8.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
38
- ssi_analysis_result_parsers-0.0.8.dist-info/entry_points.txt,sha256=noBLlB4hLmYcqns7KdQPVURO27kZ_zWMsPHYkRlBGEE,631
39
- ssi_analysis_result_parsers-0.0.8.dist-info/top_level.txt,sha256=3q56bBc2Wv2a6ZQ1l_9m66vot2-Qu6tM9tDr3QQ8auM,81
40
- ssi_analysis_result_parsers-0.0.8.dist-info/RECORD,,
37
+ ssi_analysis_result_parsers-0.0.9.dist-info/METADATA,sha256=gpcbUHkicHpg_derxQTQetNGZOoj5X5mPbcxI_lElm0,2765
38
+ ssi_analysis_result_parsers-0.0.9.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
39
+ ssi_analysis_result_parsers-0.0.9.dist-info/entry_points.txt,sha256=noBLlB4hLmYcqns7KdQPVURO27kZ_zWMsPHYkRlBGEE,631
40
+ ssi_analysis_result_parsers-0.0.9.dist-info/top_level.txt,sha256=3q56bBc2Wv2a6ZQ1l_9m66vot2-Qu6tM9tDr3QQ8auM,81
41
+ ssi_analysis_result_parsers-0.0.9.dist-info/RECORD,,
@@ -1,5 +1,10 @@
1
1
  sample_name emm_results
2
2
  sample_1 test_input/Spyogenes/emm_typing/test1.emm.blast.tsv
3
3
  sample_2 test_input/Spyogenes/emm_typing/test2.emm.blast.tsv
4
- sample_3 test_input/files_that_does_not_exist.tsv
5
- sample_4 test_input/empty_file.txt
4
+ sample_3 test_input/Spyogenes/emm_typing/test3.emm.blast.tsv
5
+ sample_4 test_input/Spyogenes/emm_typing/test4.emm.blast.tsv
6
+ sample_5 test_input/Spyogenes/emm_typing/test5.emm.blast.tsv
7
+ sample_6 test_input/Spyogenes/emm_typing/test6.emm.blast.tsv
8
+ sample_7 test_input/Spyogenes/emm_typing/test7.emm.blast.tsv
9
+ sample_empty test_input/empty_file.txt
10
+ sample_nonexist test_input/files_that_does_not_exist.tsv
@@ -0,0 +1,40 @@
1
+ EMM203.3 GAS-2025-0367_5_42.2241 96.111 180 180 1 180 55602 55781 GGTTTTGCAAACCAAACGGAAGTAAGAGCTGAAGGGGTAAACCCGACTACGAACTTGCCAGAGAAGGCTAAATATGCCGCAGTGAAAGATGAGAATACTGGTTTACGTGGTGATCAGAAAAAATTAGTAAAAAAACTTGAAGAAGAACAAGAGAAGAGCAAAAATCTAGAAAAGCAAAAA 5.51e-81 294
2
+ EMM203.4 GAS-2025-0367_5_42.2241 96.667 180 180 1 180 55602 55781 GGTTTTGCAAACCAAACGGAAGTAAGAGCTGAAGGGGTAAACCCGACTACGAACTTGCCAGAGAAGGCTAAATATGCCGCAGTGAAAGATGAGAATACTGGTTTACGTGGTGATCAGAAAAAATTAGTAAAAAAACTTGAAGAAGAACAAGAGAAGAGCAAAAATCTAGAAAAGCAAAAA 1.18e-82 300
3
+ EMM203.5 GAS-2025-0367_5_42.2241 93.333 180 180 1 180 55602 55781 GGTTTTGCAAACCAAACGGAAGTAAGAGCTGAAGGGGTAAACCCGACTACGAACTTGCCAGAGAAGGCTAAATATGCCGCAGTGAAAGATGAGAATACTGGTTTACGTGGTGATCAGAAAAAATTAGTAAAAAAACTTGAAGAAGAACAAGAGAAGAGCAAAAATCTAGAAAAGCAAAAA 1.20e-72 267
4
+ EMM236.0 GAS-2025-0367_5_42.2241 93.333 180 180 1 180 55602 55781 GGTTTTGCAAACCAAACGGAAGTAAGAGCTGAAGGGGTAAACCCGACTACGAACTTGCCAGAGAAGGCTAAATATGCCGCAGTGAAAGATGAGAATACTGGTTTACGTGGTGATCAGAAAAAATTAGTAAAAAAACTTGAAGAAGAACAAGAGAAGAGCAAAAATCTAGAAAAGCAAAAA 1.20e-72 267
5
+ EMM236.1 GAS-2025-0367_5_42.2241 93.889 180 180 1 180 55602 55781 GGTTTTGCAAACCAAACGGAAGTAAGAGCTGAAGGGGTAAACCCGACTACGAACTTGCCAGAGAAGGCTAAATATGCCGCAGTGAAAGATGAGAATACTGGTTTACGTGGTGATCAGAAAAAATTAGTAAAAAAACTTGAAGAAGAACAAGAGAAGAGCAAAAATCTAGAAAAGCAAAAA 2.58e-74 272
6
+ EMM236.3 GAS-2025-0367_5_42.2241 93.889 180 180 1 180 55602 55781 GGTTTTGCAAACCAAACGGAAGTAAGAGCTGAAGGGGTAAACCCGACTACGAACTTGCCAGAGAAGGCTAAATATGCCGCAGTGAAAGATGAGAATACTGGTTTACGTGGTGATCAGAAAAAATTAGTAAAAAAACTTGAAGAAGAACAAGAGAAGAGCAAAAATCTAGAAAAGCAAAAA 2.58e-74 272
7
+ EMM28.0 GAS-2025-0367_2_61.3538 100.000 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 1.17e-92 333
8
+ EMM28.1 GAS-2025-0367_2_61.3538 98.788 165 180 1 165 202215 202379 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAA 5.51e-81 294
9
+ EMM28.10 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
10
+ EMM28.11 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
11
+ EMM28.12 GAS-2025-0367_2_61.3538 98.333 180 180 1 180 202215 202391 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTA---AAGAAGAAGAACCTAGGTATAAA 1.52e-86 313
12
+ EMM28.13 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
13
+ EMM28.14 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
14
+ EMM28.15 GAS-2025-0367_2_61.3538 98.333 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 1.18e-87 316
15
+ EMM28.16 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
16
+ EMM28.17 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
17
+ EMM28.18 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
18
+ EMM28.19 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
19
+ EMM28.2 GAS-2025-0367_2_61.3538 99.390 164 180 1 164 202215 202378 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGA 4.26e-82 298
20
+ EMM28.20 GAS-2025-0367_2_61.3538 98.889 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 2.53e-89 322
21
+ EMM28.21 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
22
+ EMM28.22 GAS-2025-0367_2_61.3538 98.765 162 180 1 162 202215 202376 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAA 2.56e-79 289
23
+ EMM28.23 GAS-2025-0367_2_61.3538 98.889 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 2.53e-89 322
24
+ EMM28.24 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
25
+ EMM28.25 GAS-2025-0367_2_61.3538 100.000 175 180 1 175 202215 202389 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATA 7.02e-90 324
26
+ EMM28.26 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
27
+ EMM28.27 GAS-2025-0367_2_61.3538 98.889 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 2.53e-89 322
28
+ EMM28.28 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
29
+ EMM28.29 GAS-2025-0367_2_61.3538 98.361 183 180 1 180 202215 202397 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCATTG 3.27e-88 318
30
+ EMM28.3 GAS-2025-0367_2_61.3538 99.394 165 180 1 165 202215 202379 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAA 1.18e-82 300
31
+ EMM28.30 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
32
+ EMM28.31 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
33
+ EMM28.32 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
34
+ EMM28.33 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
35
+ EMM28.4 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
36
+ EMM28.5 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
37
+ EMM28.6 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
38
+ EMM28.7 GAS-2025-0367_2_61.3538 99.383 162 180 1 162 202215 202376 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAA 5.51e-81 294
39
+ EMM28.8 GAS-2025-0367_2_61.3538 99.444 180 180 1 180 202215 202394 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCTAAAGAAGAAGAACCTAGGTATAAAGCA 5.43e-91 327
40
+ EMM28.9 GAS-2025-0367_2_61.3538 98.333 180 180 1 180 202215 202391 GGCTTTGCAAACCAAACAGAAGTTAAGGCTGCGGAGTCTCCAAAAAGTACTGAGACTTCTGCTAATGGAGCTGATAAATTAGCTGATGCATACAACACATTGCTTACTGAACATGAGAAACTCAGAGATGAGTATTATACATTAATTGATGCT---AAAGAAGAAGAACCTAGGTATAAA 1.52e-86 313