Is there a way to neutralize the charges on the C and N termini of a molecule in PyRosetta? I can't seem to find an option to do so, unless the best way is to create custom residues.
I'm not sure how to do it in PyRosetta. You shouldn't need whole custom residues; there are patches in the database (chemical/residue_type_sets/fa_standard/patches). I don't know that we have a patch for the non-zwitterionic protein, since that's not very physically plausible, but there are end patches for methlyation, etc. Patches are most easily de-applied and re-applied with code in core/chemical/util.hh, but I'm not sure what python functions those map to.