Here is a very verbose blog post about adding missing loops in pyrosetta using
pyrosetta.rosetta.protocols.loop_modeler.LoopModeler
If it is something more complicated than loop closure problem, Remodel can also be used in pyrosetta, but the blueprint files have to written to disk (cannot be passed as a stream) and most of the attributes are given through options.
pyrosetta.rosetta.basic.options.set_file_option('remodel:blueprint', 'test.blu')
pyrosetta.rosetta.basic.options.set_boolean_option('remodel:quick_and_dirty', True)
rm = pyrosetta.rosetta.protocols.forge.remodel.RemodelMover()
rm.apply(pose)
Remodel is hands down better, but is slower and requires human thought into experimental design, especially with deletions (as you would want to remodel more than one amino acid on either side).
If your variant has lots of indels and changes, do a change at a time in Remodel, unless they are interacting.
In which case, I would have said to check out comparative modelling (threading, RosettaCM). However, the indel aspect is a problem because when there is an amino acid whose position cannot be placed it it stays in the funny flower/ring conformation you get from pose_from_sequence at the threading step. RosettaCM has two plus one parts: making a Grishin pairwise alignment object, threading and hybridizing. Here is the official protocol (bash heavy). Here is a note of mine about using solely Pyrosetta.