docs: def submit(self, pixels, queue=None, debug=False, configfile=None):
          """
          Submit the likelihood job for the given pixel(s).
          """
          # For backwards compatibility
          batch = self.config['scan'].get('batch',self.config['batch'])
          queue = batch['cluster'] if queue is None else queue
  
          # Need to develop some way to take command line arguments...
          self.batch = ugali.utils.batch.batchFactory(queue,**batch['opts'])
          self.batch.max_jobs = batch.get('max_jobs',200)
  
          if np.isscalar(pixels): pixels = np.array([pixels])
  
          outdir = mkdir(self.config['output']['likedir'])
          logdir = mkdir(join(outdir,'log'))
          subdir = mkdir(join(outdir,'sub'))
  
          # Save the current configuation settings; avoid writing 
          # file multiple times if configfile passed as argument.
          if configfile is None:
              shutil.copy(self.config.filename,outdir)
              configfile = join(outdir,os.path.basename(self.config.filename))
                  
          lon,lat = pix2ang(self.nside_likelihood,pixels)
          commands = []
          chunk = batch['chunk']
          istart = 0
          logger.info('=== Submit Likelihood ===')
          for ii,pix in enumerate(pixels):
              msg = '  (%i/%i) pixel=%i nside=%i; (lon, lat) = (%.2f, %.2f)'
              msg = msg%(ii+1,len(pixels),pix, self.nside_likelihood,lon[ii],lat[ii])
              logger.info(msg)
  
              # Create outfile name
              outfile = self.config.likefile%(pix,self.config['coords']['coordsys'].lower())
              outbase = os.path.basename(outfile)
              jobname = batch['jobname']
  
              # Submission command
              sub = not os.path.exists(outfile)
              cmd = self.command(outfile,configfile,pix)
              commands.append([ii,cmd,lon[ii],lat[ii],sub])
              
              if chunk == 0:
                  # No chunking
                  command = cmd
                  submit = sub
                  logfile = join(logdir,os.path.splitext(outbase)[0]+'.log')
              elif (len(commands)%chunk==0) or (ii+1 == len(pixels)):
                  # End of chunk, create submission script
                  commands = np.array(commands,dtype=object)
                  istart, iend = commands[0][0], commands[-1][0]
                  subfile = join(subdir,'submit_%08i_%08i.sh'%(istart,iend))
                  logfile = join(logdir,'submit_%08i_%08i.log'%(istart,iend))
                  command = "sh %s"%subfile
  
                  submit = np.any(commands[:,-1])
                  if submit: self.write_script(subfile,commands)
              else:
                  # Not end of chunk
                  continue
              commands=[]
  
              # Actual job submission
              if not submit:
                  logger.info(self.skip)
                  continue
              else:
                  job = self.batch.submit(command,jobname,logfile)
                  logger.info("  "+job)
                  time.sleep(0.5)