kalininalab / alphafold_non_docker

AlphaFold2 non-docker setup
325 stars 119 forks source link

Too many command-line arguments. #64

Open kbrunnerLXG opened 11 months ago

kbrunnerLXG commented 11 months ago

So I was having issues with alphafold while builoding the docker image and decided to try this out i was able to follow all the steps but still can not run alphafold.

bash run_alphafold.sh -d /media/aditya/New\ Volume/protein_database/ -o ./dummy_test/ -f ./example/query.fasta -t 2020-05-14 Full AlphaFold protein structure prediction script. flags:

/home/aditya/alphafold-2.3.1/run_alphafold.py: --[no]benchmark: Run multiple JAX model evaluations to obtain a timing that excludes the compilation time, which should be more indicative of the time required for inferencing many proteins. (default: 'false') --bfd_database_path: Path to the BFD database for use by HHblits. --data_dir: Path to directory of supporting data. --db_preset: <full_dbs|reduced_dbs>: Choose preset MSA database configuration

Too many command-line arguments.

I have the alphafold database on a seperate NTSF formatted drive but i was in the past able to predict using this very same drive

Lili-irtyd commented 3 months ago

Hello, I also meet this question. I think the reason may be the space from the name of remote disk, like "New\ Volume",but I don't know how to solve it. If you know it already, please tell me.

nlbrown62 commented 2 months ago

It looks like in this case, the space in "New\ Volume" was causing argument splitting, which can be fixed by putting double quotes around the entire path (i.e. "/media/aditya/New\ Volume/protein_database/"). I also came across the same error for another reason though. In lines 176-180 in run_alphafold.sh, if the which command is set to an alias on the user's computer (sometimes this can happen by accident), it returns an incorrect or missing argument instead of a database path. command and type tend to be more portable across systems. I've found that the following works more consistently - maybe it could be used instead of 'which'?:

# Binary path (change me if required)
hhblits_binary_path=$(command -v hhblits)
hhsearch_binary_path=$(command -v hhsearch)
jackhmmer_binary_path=$(command -v jackhmmer)
kalign_binary_path=$(command -v kalign)