def get_stripped_pdb_to_pose_residue_map(input_pdb_path, rosetta_scripts_path, rosetta_database_path, chains = [], strip_hetatms = False):
    '''Takes a path to an input PDB file, the path to the RosettaScripts executable and Rosetta database, an optional list of chains to strip the PDB down to, and an optional flag specifying whether HETATM lines should be stripped from the PDB.
       On success, a pair (True, mapping between PDB and pose residues) is returned. On failure, a pair (False, a list of errors) is returned.'''
    success, result = strip_pdb(input_pdb_path, chains = chains, strip_hetatms = strip_hetatms)
    if success:
        assert(os.path.exists(result))
        success, mapping = get_pdb_to_pose_residue_map(result, rosetta_scripts_path, rosetta_database_path)
        os.remove(result)
        if success:
            return True, mapping
        else:
            return False, mapping
    return False, result