File size: 3,026 Bytes
44459bb |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
import pytest
from folding_studio.query.soloseq import SoloSeqParameters, SoloSeqQuery
from folding_studio_data_models.exceptions import FastaValidationError
def test_soloseqquery_from_protein_sequence():
sequence = ">tag1|tag2\nABCDEGF"
query = SoloSeqQuery.from_protein_sequence(sequence)
assert query.fasta_files == {"tag1": ">tag1|tag2\nABCDEGF"}
assert query.query_name == "tag1"
assert query.parameters == SoloSeqParameters()
parameters = {"data_random_seed": 42, "skip_relaxation": False, "unsupported": 123}
query = SoloSeqQuery.from_protein_sequence(sequence, **parameters)
assert query.fasta_files == {"tag1": ">tag1|tag2\nABCDEGF"}
assert query.query_name == "tag1"
assert query.parameters == SoloSeqParameters(
data_random_seed=42, skip_relaxation=False
)
with pytest.raises(FastaValidationError):
multimer_sequence = ">tag1|tag2\nABCDEGF\n>tag3\nABCDEGF"
SoloSeqQuery.from_protein_sequence(multimer_sequence)
def test_soloseqquery_from_fasta_file(tmp_files):
with pytest.raises(ValueError, match="Unsupported suffix"):
SoloSeqQuery.from_file(tmp_files["invalid_source"])
with pytest.raises(FastaValidationError):
SoloSeqQuery.from_file(tmp_files["empty_fasta"])
with pytest.raises(FastaValidationError):
SoloSeqQuery.from_file(tmp_files["multimer_fasta"])
query = SoloSeqQuery.from_file(tmp_files["monomer_fasta"])
assert query.fasta_files == {"monomer": ">tag1|tag2\nABCDEGF"}
assert query.query_name == "monomer"
assert query.parameters == SoloSeqParameters()
parameters = {"data_random_seed": 42, "skip_relaxation": False, "unsupported": 123}
query = SoloSeqQuery.from_file(tmp_files["monomer_fasta"], **parameters)
assert query.fasta_files == {"monomer": ">tag1|tag2\nABCDEGF"}
assert query.query_name == "monomer"
assert query.parameters == SoloSeqParameters(
data_random_seed=42, skip_relaxation=False
)
def test_soloseqquery_from_directory(tmp_files):
with pytest.raises(ValueError, match="No FASTA files found in directory"):
SoloSeqQuery.from_directory(tmp_files["empty_dir"])
with pytest.raises(FastaValidationError):
SoloSeqQuery.from_directory(tmp_files["dir_with_multimer"])
query = SoloSeqQuery.from_directory(tmp_files["valid_dir"])
assert query.fasta_files == {
"monomer_1": ">tag1|tag2\nABCDEGF",
"monomer_2": ">tag1|tag2\nABCDEGF",
}
assert query.query_name == "valid_dir"
assert query.parameters == SoloSeqParameters()
parameters = {"data_random_seed": 42, "skip_relaxation": False, "unsupported": 123}
query = SoloSeqQuery.from_directory(tmp_files["valid_dir"], **parameters)
assert query.fasta_files == {
"monomer_1": ">tag1|tag2\nABCDEGF",
"monomer_2": ">tag1|tag2\nABCDEGF",
}
assert query.query_name == "valid_dir"
assert query.parameters == SoloSeqParameters(
data_random_seed=42, skip_relaxation=False
)
|