jfaustin's picture
add dockerfile and folding studio cli
44459bb
raw
history blame
3.03 kB
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
)