I am new to rosetta. I am studying the Rosetta tutorials and I am there is a problem with output path control. I followed the tutorial 4 (controlling input and output) and type the following command in the section "Setting output paths" of this tutorial into my CentOS 7 linux shell:
$> $ROSETTA3/bin/score_jd2.default.linuxgccrelease -in:file:s input_files/1qys.pdb -out:pdb -out:path output_files
After the common is excuted there is no result file generated in the target directory (output_files). The last few lines in the log are: protocols.jd2.PDBJobInputter: Instantiate PDBJobInputter protocols.jd2.PDBJobInputter: PDBJobInputter::fill_jobs protocols.jd2.PDBJobInputter: pushed input_files/1qys.pdb nstruct index 1 protocols.evaluation.ChiWellRmsdEvaluatorCreator: Evaluation Creator active ... protocols.jd2.JobDistributor: no more batches to process... protocols.jd2.JobDistributor: 1 jobs considered, 0 jobs attempted in 0 seconds protocols.jd2.JobDistributor: no jobs were attempted, did you forget to pass -overwrite?
I cannot understand the last line. How to pass -overwrite? If I just add " -overwrite" to the above command:
$> $ROSETTA3/bin/score_jd2.default.linuxgccrelease -in:file:s input_files/1qys.pdb -out:pdb -out:path output_files -overwrite
A error message is given:
[ERROR] EXCN_utility_exit has been thrown from: src/protocols/jd2/wwPDBJobOutputter.cc line: 89 ERROR: Unable to open file: 1qys_0001.pdb
But if I carryout the command with root previlege:
sudo $ROSETTA3/bin/score_jd2.default.linuxgccrelease -in:file:s input_files/1qys.pdb -out:pdb -out:path output_files
The result files "1qys_0001.pdb" and "score.sc" appear in the currect working directory (/home/sunyp/app/rosetta_src_2017.08.59291_bundle/demos/tutorials/input_and_output_learning) rather than the target directory "output_files".
I feel this is very strange and don't know how to sovle it. Could anyone help me? I very appreciate any help and advise.
Thank you in advance.
"1 jobs considered, 0 jobs attempted in 0 seconds protocols.jd2.JobDistributor: no jobs were attempted, did you forget to pass -overwrite?"
This means that the job you asked it to run was already present on disk. In other words 1qys_0001.pdb was already present in your target directory.
"But if I carryout the command with root previlege:"
Let me encourage you to never do that. Rosetta NEVER requires root privileges. If giving it root changes the results, it means something is wrong in the environment. The mostly likely issue here is probably that you do not have write access to the directory you are trying to write to.
As to why the files don't go where you want: does the target directory exist, and do you have write permission for it? I'd suggest NOT doing any of this inside your Rosetta install - make a copy of the tutorial elsewhere and work in that. That way if something goes wrong you don't have to reinstall Rosetta.
Thank you for your reply. I copied the tutorial directory to the portable hard disk and ran the follow command there:
Strangely, the result files were still generated in the current working directory (/run/media/sunyp/Seagate Backup Plus Drive/Rosetta_tutorial/input_and_output) rather than the target directory (/run/media/sunyp/Seagate Backup Plus Drive/Rosetta_tutorial/input_and_output/ output_files). The output_files directory does exit and I am sure I have write permission for it because I can create files and directories without root priviledge. If I run the above command again, I get the follow log message:
protocols.jd2.JobDistributor: 1 jobs considered, 0 jobs attempted in 0 seconds
protocols.jd2.JobDistributor: no jobs were attempted, did you forget to pass -overwrite?
According to you, this means that the result file was already present in the target directory, but why I cannot see it? I am also sure that it is not a hidden file because I've checked the box "Show hidden and backup files" for the directory and "ls -a" also conforms the the result files aren't present in the output_files directory. What on earth causes this problem?
For standard (JD2) PDB output, you can specify where the PDB files will go with -out:path:all or -out:path:pdb (as indicated by the text around that example line in the input and output tutorial).
Unfortunately, there's a typo in the example command itself - thanks for bringing it to out attention - I'll correct that for furture releases of the tutorials.