Skip to content

Commit

Permalink
Improve style.
Browse files Browse the repository at this point in the history
  • Loading branch information
Adibvafa committed Oct 29, 2024
1 parent 1356ebb commit 7c20ff1
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 37 deletions.
22 changes: 13 additions & 9 deletions CodonTransformer/CodonData.py
Original file line number Diff line number Diff line change
Expand Up @@ -176,26 +176,30 @@ def preprocess_protein_sequence(protein: str) -> str:

# Handle ambiguous amino acids based on the specified behavior
config = ProteinConfig()
ambiguous_aminoacid_map_override = config.get('ambiguous_aminoacid_map_override')
ambiguous_aminoacid_behavior = config.get('ambiguous_aminoacid_behavior')
ambiguous_aminoacid_map_override = config.get("ambiguous_aminoacid_map_override")
ambiguous_aminoacid_behavior = config.get("ambiguous_aminoacid_behavior")
ambiguous_aminoacid_map = AMBIGUOUS_AMINOACID_MAP.copy()

for aminoacid, standard_aminoacids in ambiguous_aminoacid_map_override.items():
ambiguous_aminoacid_map[aminoacid] = standard_aminoacids

if ambiguous_aminoacid_behavior == 'raise_error':
if ambiguous_aminoacid_behavior == "raise_error":
if any(aminoacid in ambiguous_aminoacid_map for aminoacid in protein):
raise ValueError("Ambiguous amino acids found in protein sequence.")
elif ambiguous_aminoacid_behavior == 'standardize_deterministic':
elif ambiguous_aminoacid_behavior == "standardize_deterministic":
protein = "".join(
ambiguous_aminoacid_map.get(aminoacid, [aminoacid])[0] for aminoacid in protein
ambiguous_aminoacid_map.get(aminoacid, [aminoacid])[0]
for aminoacid in protein
)
elif ambiguous_aminoacid_behavior == 'standardize_random':
elif ambiguous_aminoacid_behavior == "standardize_random":
protein = "".join(
random.choice(ambiguous_aminoacid_map.get(aminoacid, [aminoacid])) for aminoacid in protein
random.choice(ambiguous_aminoacid_map.get(aminoacid, [aminoacid]))
for aminoacid in protein
)
else:
raise ValueError(f"Invalid ambiguous_aminoacid_behavior: {ambiguous_aminoacid_behavior}.")
raise ValueError(
f"Invalid ambiguous_aminoacid_behavior: {ambiguous_aminoacid_behavior}."
)

# Check for sequence validity
if any(aminoacid not in AMINO_ACIDS + STOP_SYMBOLS for aminoacid in protein):
Expand Down
3 changes: 2 additions & 1 deletion tests/test_CodonData.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@
build_amino2codon_skeleton,
get_amino_acid_sequence,
is_correct_seq,
read_fasta_file,
preprocess_protein_sequence,
read_fasta_file,
)
from CodonTransformer.CodonUtils import ProteinConfig


class TestCodonData(unittest.TestCase):
def test_preprocess_protein_sequence(self):
with ProteinConfig() as config:
Expand Down
40 changes: 13 additions & 27 deletions tests/test_CodonUtils.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,33 +18,23 @@
class TestCodonUtils(unittest.TestCase):
def test_config_manager(self):
with ProteinConfig() as config:
config.set(
"ambiguous_aminoacid_behavior",
"standardize_deterministic"
)
config.set("ambiguous_aminoacid_behavior", "standardize_deterministic")
self.assertEqual(
config.get("ambiguous_aminoacid_behavior"),
"standardize_deterministic"
)
config.set(
"ambiguous_aminoacid_map_override",
{"X": ["A", "G"]}
config.get("ambiguous_aminoacid_behavior"), "standardize_deterministic"
)
config.set("ambiguous_aminoacid_map_override", {"X": ["A", "G"]})
self.assertEqual(
config.get("ambiguous_aminoacid_map_override"),
{"X": ["A", "G"]}
config.get("ambiguous_aminoacid_map_override"), {"X": ["A", "G"]}
)
config.update({
"ambiguous_aminoacid_behavior": "raise_error",
"ambiguous_aminoacid_map_override": {"X": ["A", "G"]},
})
self.assertEqual(
config.get("ambiguous_aminoacid_behavior"),
"raise_error"
config.update(
{
"ambiguous_aminoacid_behavior": "raise_error",
"ambiguous_aminoacid_map_override": {"X": ["A", "G"]},
}
)
self.assertEqual(config.get("ambiguous_aminoacid_behavior"), "raise_error")
self.assertEqual(
config.get("ambiguous_aminoacid_map_override"),
{"X": ["A", "G"]}
config.get("ambiguous_aminoacid_map_override"), {"X": ["A", "G"]}
)
try:
config.set("invalid_key", "invalid_value")
Expand All @@ -53,13 +43,9 @@ def test_config_manager(self):
pass
with ProteinConfig() as config:
self.assertEqual(
config.get("ambiguous_aminoacid_behavior"),
"standardize_random"
)
self.assertEqual(
config.get("ambiguous_aminoacid_map_override"),
{}
config.get("ambiguous_aminoacid_behavior"), "standardize_random"
)
self.assertEqual(config.get("ambiguous_aminoacid_map_override"), {})

def test_load_python_object_from_disk(self):
test_obj = {"key1": "value1", "key2": 2}
Expand Down

0 comments on commit 7c20ff1

Please sign in to comment.