diff --git a/backend/.gitignore b/backend/.gitignore index 9a88b5bc..83e1dfb2 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -3,4 +3,5 @@ __pycache__/ .foldseek_cache/ foldseek/bin/foldseek foldseek/README.md -foldseek-linux-sse2.tar.gz \ No newline at end of file +foldseek-linux-sse2.tar.gz +pdb* \ No newline at end of file diff --git a/backend/src/api/similar.py b/backend/src/api/similar.py index 0208be47..d4985c58 100644 --- a/backend/src/api/similar.py +++ b/backend/src/api/similar.py @@ -4,18 +4,17 @@ pdb_file_name, revert_pdb_filename, ) -from ..foldseek import easy_search +from ..foldseek import easy_search, create_db router = APIRouter() @router.get("/similar-pdb/{protein_name:str}", response_model=list[SimilarProtein]) def get_pdb_proteins(protein_name: str): - # query_name = pdb_file_name(protein_name) - # target_folder = "src/data/pdbAlphaFold/" - # similar = easy_search(query_name, target_folder, out_format=["target", "prob"]) - pass - # return [SimilarProtein(name=revert_pdb_filename(s[0]), prob=s[1]) for s in similar] + query_name = pdb_file_name(protein_name) + PDB = create_db("PDB", "pdb") + similar = easy_search(query_name, PDB, out_format=["target", "prob"]) + return [SimilarProtein(name=s[0].split(".")[0], prob=s[1]) for s in similar] @router.get("/similar-venome/{protein_name:str}", response_model=list[SimilarProtein]) diff --git a/backend/src/foldseek.py b/backend/src/foldseek.py index cd0a4aad..d2e53a89 100644 --- a/backend/src/foldseek.py +++ b/backend/src/foldseek.py @@ -80,14 +80,10 @@ def easy_search( def create_db( dir: str, db_name: str, - foldseek_executable="foldseek", + foldseek_executable="foldseek/bin/foldseek", print_stdout=False, temp_dir=".foldseek_cache", ): - # don't continue unless they actually have foldseek installed - if bash_cmd(f"which {foldseek_executable}") == "": - raise Exception("foldseek not found in PATH") - # check that our dir exists try: bash_cmd(f"ls {dir}")