def METHOD_NAME(self, args, stdin=None, stdout=None, stderr=None, env=None):
    """
    execute a sub-process from the share run folder
    """
    if env is None:
        env = {}
    # update the environment
    newenv = os.environ.copy()
    # add local environment settings
    newenv.update(env)
    newenv.update({"demoextras": self.get_demoExtras_main_folder()})
    newenv.update({"matlab_path": self.get_MATLAB_path()})
    newenv.update({"bin": self.bin_dir})
    if "VIRTUAL_ENV" not in newenv:
        raise VirtualEnvError("Running without a virtualenv")
    # Check if there are extra paths
    extra_path = self.get_extra_path()
    if not extra_path:
        raise Exception("Missing extra_path field in config")
    path = self.bin_dir
    path += ":" + extra_path
    path += ":" + self.get_MATLAB_path()
    path += ":" + self.ipol_scripts  # scripts of PythonTools
    newenv.update({"PATH": path, "LD_LIBRARY_PATH": self.bin_dir})
    # run
    cmd = shlex.split(" ".join(args))
    return Popen(
        cmd,
        stdin=stdin,
        stdout=stdout,
        stderr=stderr,
        env=newenv,
        cwd=self.work_dir,
    )