I'm trying to use the Abinito application, and I keep getting a kill_hairpin error when I use the .psipred_ss2 file generated with fragments in robetta. Has anyone experienced this? I'm using rosetta3.3 (newest).
I'm also using the flag -psipred_ss2 with no errors...and...Both point to the same .psipred_ss2 file.
This is the error:
ERROR: [ERROR] Unknown file type for kill_hairpins file (need psipred_ss2 or kill)
ERROR:: Exit from: src/core/scoring/SS_Killhairpins_Info.cc line: 358
It could be that your header is wrong, it reads the first line of the file and looks for the string PSIPRED as the second column - do you have that header? If that doesn't work, try a psipred file instead of psipred_ss2. If THAT doesn't work we'll ask the author.
Looks like I didn't. The header was only in the .psipred file. Thanks for the help. Shouldn't Robetta output the correct file? Strange.
On another note, do you know why these output options -out:suffix -out:prefix arn't global for every application?
I'm trying to run abinitio on our cluster without going through the mpi route as I wanted to make my scripts as general as possible for those apps that don't have mpi yet, but because of the naming conventions for the output, it's harder then it should be. I have yet to modify any rosetta code, but I'm thinking about making sure those options are available to users of our cluster....
Rosetta3 got written in an order like so:
-some executables, doing their own job distribution
-first job distributor
-some more executables
-second job distributor
-some more executables
So, there are two major and some minor methods for doing job distribution, which is the layer that handles stuff like where to put and what to name the output file. Generally the older methods are never updated to the newer standards, because they aren't under active development. New development proceeds in new executables (thus enzyme design is its own thing, not a "mode" of loop modeling or fixbb or something else). This is why options that should be universal aren't. There are even a handful of executables that don't even obey the -s input flag.
Thanks for the input. Maybe some options should be required when doing different things, just like the coding guidelines/etc. Conventions and general requirements for input and output should absolutely be there, especially since rosetta seems to be growing even larger....
Rosetta 3.4 AbinitioRelax stops at the very beginning with the following error if the "-kill_hairpins" option is used.
ERROR: [ERROR] invalid header input for kill_hairpins file.
ERROR:: Exit from: src/core/scoring/SS_Killhairpins_Info.cc line: 375
The t000_.psipred_ss2 file generated by the rosetta fragment server does not contain the header line:
# PSIPRED VFORMAT (PSIPRED V2.6 by David Jones). But even if this line is added, the program still stops with the same error. This is different situation from Rosetta 3.2.1.
What "header input" AbinitioRelax 3.4 is expecting?
I'm not familiar with the kill_hairpins flag, but looking at the code, it appears to want a header line with two to four whitespace separated fields.
The second field should be one of "PSIPRED" or "KILL" (specifying the type of killfile format), and the optional third and fourth fields should be either or both of "ANTI" and "PARA" (specifying the type of hairpins to kill) - any other values will result in a program halt.
So something like (untested)
# PSIPRED ANTI PARA
will not result in a program halt upon file loading, but whether it'll do what you want is another issue.
Thank you for your suggestion. It does allow the program to run. But it is not a standard header line from PSIPRED file. What is the rule to add this phrase?
You can try digging around in src/core/scoring/SS_Killhairpins_Info.cc to figure out what the code is doing - we don't know. I've forwarded this to the person who originally wrote the code, but I think they left the project.
I talked with someone who has knowledge of kill_hairpins (a different person than Steven is talking about), and he mentioned that this is a result of a relatively recent change in the format of the kill_hairpins file. Best I can tell, it happened between 3.3 and 3.4. Unfortunately it wasn't done in such a way that the standard PSIPRED format was still supported.
As I indicated before the format is now with the ANTI/PARA:
# PSIPRED ANTI ANTI
1 P C 1.000 0.001 0.000
2 G C 0.827 0.018 0.002
3 I C 0.981 0.018 0.008
4 P C 0.814 0.124 0.007
You may also need to include:
From my reading of the code, as long as you remove anything that isn't ANTI or PARA from after the PSIPRED, and don't include PARA, things should work more or less as they did previously.
What is the difference between # PSIPRED ANTI ANTI and # PSIPRED ANTI PARA?
I has the same problem, and with the modification in the file itś running. but i wanna know the difference.
The # PSIPRED ANTI ANTI turns on just the "kill_antiparallel" setting. (Specifying the ANTI twice is somewhat redundant.)
# PSIPRED ANTI PARA turns on both the "kill_antiparallel" and "kill_parallel" settings.