code: def _submit_to_queue(self, script_file):
          
          if sys.version_info[0] < 3:
              process = Popen(['qsub', script_file], stdout=PIPE, stderr=PIPE)
          else:
              # need string not bytes so must use universal_newlines
              process = Popen(['qsub', script_file], stdout=PIPE, stderr=PIPE, universal_newlines=True)
  
          out, err = process.communicate()
          # grab the return code. PBS returns 0 if the job was successful
          queue_id = None
          if process.returncode == 0:
              try:
                  # output should of the form '2561553.sdb' or '352353.jessup' - just grab the first part for job id
                  queue_id = int(out.split('.')[0])
              except:
                  # probably error parsing job code
                  logger.critical("Could not parse job id following qsub...")
          return SubmitResults(qid=queue_id, out=out, err=err, process=process)
docs: Submit a job script to the queue.