def render_with_pymol_server(parsed_file, output_path=None, width=1200, **
    kwargs):
    """Render ESIgenReport with PyMol (server-client model)"""
    if output_path is None:
        output_path = parsed_file.path + '.png'
    from ._pymol_server import pymol_client
    client = pymol_client()
    client.do('reinitialize')
    client.loadPDB(parsed_file.data.pdb_block, parsed_file.name)
    client.do('bg_color white')
    client.do('preset.ball_and_stick()')
    client.do('set sphere_scale, 0.2, symbol H')
    client.do('set float_labels, on')
    client.do('set label_position, 0 0 5')
    client.do('alter not symbol C+H+O+N+P+S, vdw=3')
    client.do('util.cbag()')
    client.do('color grey, symbol C')
    client.do('label not symbol C+H+O+N+P+S, name')
    client.do('png {}, width={}, ray=1, quiet=1'.format(output_path, width))
    client.do('refresh')
    client.do('cmd.sync()')
    return output_path
