I am trying to recreate the protocol_capture demo of RosettaScripts/RosettaDNA, but am having some difficulties reading my pdb.
I outputted by starting pdb via PyMol, and on visual inspection of the file everything looks normal. However, when I replace the sample pdb in the RosettaScripts/RosettaDNA directory, I get the output:
There are 0 dna positions:
There are 0 dna positions:
So there appears to be a standard (non-PyMol?) pdb format for use with RosettaDNA? Does anyone have any experience with this?
Seems like a simple problem, but I'm totally stuck here.
PDB Attached (rename from .txt to .pdb - the uploader complained about the file extension).
The problem is your residue naming. The PDB format is column-based, so spacing can be important. Instead of "DA.", etc, (where the "." is a space), Rosetta expects "..A", etc. and it can also take ".DA", etc. Take a look at the "msoleft.pdb" file in the demo for examples.
Rosetta should normally complain that it doesn't recognize the "DA" residue, but if you're using the same flags file as the demo, that includes the -ignore_unrecognized_res flag, which tells Rosetta just to silently throw the residue out, leading to the missing DNA.
Thanks for the pointer! I converted my pdb and got it to read the DNA. But now something else is going on. It loads the PDB (and pairs the DNA), then I immediately get a Segmentation Fault 11.
I'm running it with the -out:level 500 flag, but this doesn't lend any information at all.
My flags are:
-unmute protocols.dna protocols.multistate_design protocols.genetic_algorithm apps protocols.loops core.io.pdb
There is obviously something still wrong with my PDB, but I can't for the life of me figure it what it is. It looks ok in PyMol, and 'appears' to be reading here correctly. However, the only PDB I can get to run correctly with RosettaDNA is the one provided in the demo.
Do you have any ideas how to debug an arbitrary 'Segmentation Fault 11'???
P.S. The attached pdb is renamed as a txt file because the uploader complained.
Yeah, segmentation faults are bad, and can be a pain to track down.
Increasing the output level sometimes helps, but not because it would give you an error message. (You get a segmentation fault because we missed an error check.) More so that the final few lines would possibly give an indication of where in the program it's encountering the fault. You'd want to be sure to remove the "-mute all" flag, though.
The first step in debugging would probably be to recompile Rosetta in debug mode. (Change mode=release to mode=debug in the scons command line. Both release and debug mode are able to coexist in the same directory.) The debug executable has extra error checking code. If you run the protocol in debug mode, you may get an indication of what's going wrong. If that doesn't work, getting a backtrace from the program would be the next step.
I think you've given me enough information to reproduce the error locally, though. It looks like the issue is the RestrictDesignToProteinDNAInterface task operation in the XML file. If you use it as-is from the demo, it will be using the "dna_defs=C.-10.GUA" option, which is a problem as there isn't a chain C position -10 in your PDB file. Trying to access a residue that doesn't exist causes the segmentation fault.
Perfect. All fixed now! Thanks!