I would like to prevent the pruning/removal of any rotamer from the interaction graph. There doesn't appear to be any command line argument to do so and I've been unsuccessful at modifying the source in core:pack:interaction_graph to achieve this rather simple goal.
I would greatly appreciate any pointers to prevent Rosetta from pruning any rotamer.
First thing that you'll want to do is turn off probability trimming by using "-dunbrack_prob_buried 1.0" and "-dunbrack_prob_nonburied 1.0" flags on the commandline (the default settings are 0.98 and 0.95, meaning only pack the most probable rotamers which account for at least 98% and 95% of the probability - this removes a large number of very low probability rotamers from the rotlib).
You may also want to turn off backbone clash checking by cranking up -packing::max_rotbump_energy. However, due to the idempotent nature of the PackerTask, that setting can only reduce it from the default value of 5.0. You can get around this by going into rosetta_source/src/core/pack/task/PackerTask_.cc and changing the initialization of max_rotbump_energy_ to something greater. (While you're there, you could also set bump_check_ to be false, and skip the energy issue entirely.)
Those are the two major filter operations I'm aware of. There might be others, or there might be some protocol that manually adjust them, bypassing the settings you impose. Do some test runs and check that the number of rotamers you get are the number you're expecting.
I knew about bump_check but had forgotten about the dunbrack cumulative probability functions. I pinged Andrew to see if he remembered any other filters (since he wrote most of that code).