You are here

Behavior of nstruct

4 posts / 0 new
Last post
Behavior of nstruct

Hi, I need your help on your experience of the number of structures generated from Rosetta by specifying nstruct:

Have you ever met a situation, for example, you specify nstruct = 100, and Rosetta generates less than 100 structures at the end of the run?

More information:

1)  I am using RosettaScripts to design a protein interface. I have specified a cutoff of SASA but I don't think it would affect the final number of structures.

2) I am using mpi version of Rosetta. I got output pdbs less than 100 and with skipping, that is:


3) For the log file, I got something like this (the order of lines is inverted, the top line here is from the last line in the actual log file)

core.pack.task: (6) Packer task: initialize from command line()
core.pack.task: (5) Packer task: initialize from command line()
protocols.docking.DockMCMCycle: (5) ////////////////////////////////////////////////////////////////////////////////
protocols.docking.DockMCMCycle: (5)
protocols.docking.DockMCMCycle: (5)
protocols.docking.DockMCMCycle: (5) FreeDOF_Options::show: free_side_chain_bonus: -0.5
protocols.docking.DockMCMCycle: (5) FreeDOF_Options::show: pack_phosphate_penalty: 0.25
protocols.docking.DockMCMCycle: (5) FreeDOF_Options::show: free_sugar_bonus: -1
protocols.docking.DockMCMCycle: (5) FreeDOF_Options::show: free_2HOprime_bonus: -0.5
protocols.docking.DockMCMCycle: (5) FreeDOF_Options::show: free_suite_bonus: -1
protocols.docking.DockMCMCycle: (5) RNA_EnergyMethodOptions::show: suiteness_bonus: Richardson
protocols.docking.DockMCMCycle: (5) RNA_EnergyMethodOptions::show: torsion_potential: ps_04282011
protocols.docking.DockMCMCycle: (5) RNA_EnergyMethodOptions::show: syn_G_potential_bonus: 0
protocols.docking.DockMCMCycle: (5) HBondOptions::show: water_hybrid_sf: false

Does anyone have any idea what is the cause of skipping pdb outputs, which the final number is less than the number specified by nstruct?

Thank you!

Post Situation: 
Wed, 2019-05-15 22:22

If the skipping is patterned and you are using MPI with -work_partition_job_distributor, it is possible some of your processes are not outputting.  I have no further explanation for why this would happen, but patterned skipping with that JD is suspicious.  (If you are not using that flag, you get the work pool JD that has no inherent patterning).


More likely you have a filter issue.  RosettaScripts is set up to "retry" jobs that fail a filter.  I think the flag is ntrials.  It will probably re-try the job ntrials times and then just give up if all of them failed, resulting in a "gap" in the residue number.  Poking through your log files for messages about failed filters may diagnose this better.   I'm sure there is a flag for "make filter failures fatal" or something as an alternate test.  (Retry indefinitely is probably not an option; intentionally writing flags for infinite loops seems bad).

Thu, 2019-05-16 17:08

No, this is expected behaviour.  The -nstruct flag is the number of jobs to attempt.  A job for which filters don't pass is marked as a failed job, and no final output structure is produced.  As Steven mentioned, -ntrials is the number of times to retry a failed job, but the default is one, so what's happening is that RosettaScripts is trying your protocol a hundred times, but sometimes the SASA filter fails and sometimes it succeeds.  In the example you're showing, it must have failed for jobs 2, 4, 5, 6, 8, and 9, and these produced no output; it passed for jobs 1, 3, 6, and 10, and these produced an output structure.

Thu, 2019-05-16 19:40

Thanks smlewis and vmulligan!!!

I understand better now!

Tue, 2019-05-21 20:48