Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pyaptamer/utils/_rna.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ def rna2vec(

result = []
for sequence in sequence_list:
sequence = sequence.upper() # ensure case-insensitivity
# convert DNA to RNA only for RNA sequences
if sequence_type == "rna":
sequence = dna2rna(sequence)
Expand Down
19 changes: 19 additions & 0 deletions pyaptamer/utils/tests/test_rna2vec_robustness.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import numpy as np

from pyaptamer.utils import rna2vec


def test_rna2vec_case_insensitivity():
"""
Test that rna2vec handles secondary structures in a case-insensitive way.
Regression test for Issue where lowercase 'ss' inputs returned zero vectors.
"""
sequences_upper = ["SSHH"]
sequences_lower = ["sshh"]

result_upper = rna2vec(sequences_upper, sequence_type="ss", max_sequence_length=10)
result_lower = rna2vec(sequences_lower, sequence_type="ss", max_sequence_length=10)

# Both should be identical and non-zero
assert np.array_equal(result_upper, result_lower)
assert np.any(result_upper != 0)