Skip to content

Commit 217e1ce

Browse files
committed
mixed-line-ending -f lf mspredict.py
1 parent c2aa8e9 commit 217e1ce

1 file changed

Lines changed: 81 additions & 81 deletions

File tree

‎modelseedpy/core/mspredict.py‎

Lines changed: 81 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,81 @@
1-
# -*- coding: utf-8 -*-
2-
import logging
3-
from typing import Tuple
4-
from enum import Enum
5-
from modelseedpy.helpers import get_template, get_classifier
6-
from modelseedpy.core.mstemplate import MSTemplateBuilder, MSTemplate
7-
from modelseedpy.core.msgenome import MSGenome
8-
9-
logger = logging.getLogger(__name__)
10-
11-
12-
class MSGenomeClass(Enum):
13-
P = "Gram Positive"
14-
N = "Gram Negative"
15-
C = "Cyano"
16-
A = "Archaea"
17-
18-
19-
class MSPredict:
20-
def __init__(self, classifier="knn_ACNP_RAST_filter_01_17_2023"):
21-
logger.debug(f"Initializing MSPredict with classifier: {classifier}")
22-
self.genome_classifier = get_classifier(classifier)
23-
24-
def predict(self, genome: MSGenome) -> MSGenomeClass:
25-
"""
26-
:param genome: MSGenome - The genome to predict the class for.
27-
:return: MSGenomeClass - The genome class for the given genome.
28-
Predicts the genome class for a given genome.
29-
"""
30-
logger.debug(f"Predicting genome class:")
31-
32-
genome_class_str = self.genome_classifier.classify(genome)
33-
34-
# Map the classifier result to the appropriate enum
35-
if genome_class_str == "P":
36-
return MSGenomeClass.P
37-
elif genome_class_str == "N":
38-
return MSGenomeClass.N
39-
elif genome_class_str == "C":
40-
return MSGenomeClass.C
41-
elif genome_class_str == "A":
42-
return MSGenomeClass.A
43-
else:
44-
raise ValueError(f"Unknown genome class: {genome_class_str}")
45-
46-
def auto_select_template(
47-
self, genome_class: MSGenomeClass
48-
) -> Tuple[MSTemplate, MSTemplate]:
49-
"""
50-
:param genome_class: MSGenomeClass - The genome class to select the template for.
51-
:return: Tuple[MSTemplate, MSTemplate] - The template for the genome class.
52-
Auto-selects the template for a given genome class.
53-
"""
54-
template_genome_scale_map = {
55-
MSGenomeClass.N: "template_gram_neg",
56-
MSGenomeClass.C: "template_gram_neg",
57-
MSGenomeClass.A: "template_gram_neg",
58-
MSGenomeClass.P: "template_gram_pos",
59-
}
60-
template_core_map = {
61-
MSGenomeClass.A: "template_core",
62-
MSGenomeClass.C: "template_core",
63-
MSGenomeClass.N: "template_core",
64-
MSGenomeClass.P: "template_core",
65-
}
66-
67-
if (
68-
genome_class in template_genome_scale_map
69-
and genome_class in template_core_map
70-
):
71-
d_template_core = get_template(template_core_map[genome_class])
72-
d_template_genome_scale = get_template(
73-
template_genome_scale_map[genome_class]
74-
)
75-
template_core = MSTemplateBuilder.from_dict(d_template_core).build()
76-
template_genome_scale = MSTemplateBuilder.from_dict(
77-
d_template_genome_scale
78-
).build()
79-
return template_core, template_genome_scale
80-
else:
81-
raise ValueError(f"Unknown genome class: {genome_class}")
1+
# -*- coding: utf-8 -*-
2+
import logging
3+
from typing import Tuple
4+
from enum import Enum
5+
from modelseedpy.helpers import get_template, get_classifier
6+
from modelseedpy.core.mstemplate import MSTemplateBuilder, MSTemplate
7+
from modelseedpy.core.msgenome import MSGenome
8+
9+
logger = logging.getLogger(__name__)
10+
11+
12+
class MSGenomeClass(Enum):
13+
P = "Gram Positive"
14+
N = "Gram Negative"
15+
C = "Cyano"
16+
A = "Archaea"
17+
18+
19+
class MSPredict:
20+
def __init__(self, classifier="knn_ACNP_RAST_filter_01_17_2023"):
21+
logger.debug(f"Initializing MSPredict with classifier: {classifier}")
22+
self.genome_classifier = get_classifier(classifier)
23+
24+
def predict(self, genome: MSGenome) -> MSGenomeClass:
25+
"""
26+
:param genome: MSGenome - The genome to predict the class for.
27+
:return: MSGenomeClass - The genome class for the given genome.
28+
Predicts the genome class for a given genome.
29+
"""
30+
logger.debug(f"Predicting genome class:")
31+
32+
genome_class_str = self.genome_classifier.classify(genome)
33+
34+
# Map the classifier result to the appropriate enum
35+
if genome_class_str == "P":
36+
return MSGenomeClass.P
37+
elif genome_class_str == "N":
38+
return MSGenomeClass.N
39+
elif genome_class_str == "C":
40+
return MSGenomeClass.C
41+
elif genome_class_str == "A":
42+
return MSGenomeClass.A
43+
else:
44+
raise ValueError(f"Unknown genome class: {genome_class_str}")
45+
46+
def auto_select_template(
47+
self, genome_class: MSGenomeClass
48+
) -> Tuple[MSTemplate, MSTemplate]:
49+
"""
50+
:param genome_class: MSGenomeClass - The genome class to select the template for.
51+
:return: Tuple[MSTemplate, MSTemplate] - The template for the genome class.
52+
Auto-selects the template for a given genome class.
53+
"""
54+
template_genome_scale_map = {
55+
MSGenomeClass.N: "template_gram_neg",
56+
MSGenomeClass.C: "template_gram_neg",
57+
MSGenomeClass.A: "template_gram_neg",
58+
MSGenomeClass.P: "template_gram_pos",
59+
}
60+
template_core_map = {
61+
MSGenomeClass.A: "template_core",
62+
MSGenomeClass.C: "template_core",
63+
MSGenomeClass.N: "template_core",
64+
MSGenomeClass.P: "template_core",
65+
}
66+
67+
if (
68+
genome_class in template_genome_scale_map
69+
and genome_class in template_core_map
70+
):
71+
d_template_core = get_template(template_core_map[genome_class])
72+
d_template_genome_scale = get_template(
73+
template_genome_scale_map[genome_class]
74+
)
75+
template_core = MSTemplateBuilder.from_dict(d_template_core).build()
76+
template_genome_scale = MSTemplateBuilder.from_dict(
77+
d_template_genome_scale
78+
).build()
79+
return template_core, template_genome_scale
80+
else:
81+
raise ValueError(f"Unknown genome class: {genome_class}")

0 commit comments

Comments
 (0)