docs: def _system_call(cmd, stdoutfilename=None):
      """Execute the command `cmd`
      Parameters
      ----------
      cmd : str
          The string containing the command to be run.
      stdoutfilename : str
          Name of the file to save stdout to or None
          (default) to not save to file
      stderrfilename : str
          Name of the file to save stderr to or None
          (default) to not save to file
  
      Returns
      -------
      tuple of (str, str, int)
          The standard output, standard error and exist status of the
          executed command
  
      Notes
      -----
      This function is ported and modified from QIIME
      (http://www.qiime.org), previously named
      qiime_system_call. QIIME is a GPL project, but we obtained permission from
      the authors of this function to port it to Qiita and keep it under BSD
      license.
      """
      logger = logging.getLogger(__name__)
      logger.debug('system call: %s' % cmd)
      if stdoutfilename:
          with open(stdoutfilename, 'w') as f:
              proc = subprocess.Popen(cmd, universal_newlines=True,
                                      shell=False, stdout=f,
                                      stderr=subprocess.PIPE)
      else:
          proc = subprocess.Popen(cmd, universal_newlines=True,
                                  shell=False, stdout=subprocess.PIPE,
                                  stderr=subprocess.PIPE)
      # Communicate pulls all stdout/stderr from the PIPEs
      # This call blocks until the command is done
      stdout, stderr = proc.communicate()
      return_value = proc.returncode
  
      return stdout, stderr, return_value