code: def soap_trios(p, pf, tag, extra):
      
      from jcvi.assembly.soap import prepare
  
      logging.debug("Work on {0} ({1})".format(pf, ','.join(p)))
      asm = "{0}.closed.scafSeq".format(pf)
      if not need_update(p, asm):
          logging.debug("Assembly found: {0}. Skipped.".format(asm))
          return
  
      slink(p, pf, tag, extra)
  
      cwd = os.getcwd()
      os.chdir(pf)
      prepare(sorted(glob("*.fastq") + glob("*.fastq.gz")) + \
              ["--assemble_1st_rank_only", "-K 31"])
      sh("./run.sh")
      sh("cp asm31.closed.scafSeq ../{0}".format(asm))
  
      logging.debug("Assembly finished: {0}".format(asm))
      os.chdir(cwd)
docs: Take one pair of reads and 'widow' reads after correction and run SOAP.