code: def run_prepare(*data):
      
      out_dir = os.path.join(dd.get_work_dir(data[0][0]), "seqcluster", "prepare")
      out_dir = os.path.abspath(safe_makedir(out_dir))
      prepare_dir = os.path.join(out_dir, "prepare")
      tools = dd.get_expression_caller(data[0][0])
      if len(tools) == 0:
          logger.info("You didn't specify any other expression caller tool."
                         "You can add to the YAML file:"
                         "expression_caller:[trna, seqcluster, mirdeep2]")
      fn = []
      for sample in data:
          name = sample[0]["rgnames"]['sample']
          fn.append("%s\t%s" % (sample[0]['collapse'], name))
      args = namedtuple('args', 'debug print_debug minc minl maxl out')
      args = args(False, False, 2, 17, 40, out_dir)
      ma_out = op.join(out_dir, "seqs.ma")
      seq_out = op.join(out_dir, "seqs.fastq")
      min_shared = max(int(len(fn) / 10.0), 1)
      if not file_exists(ma_out):
          seq_l, sample_l = prepare._read_fastq_files(fn, args)
          with file_transaction(ma_out) as ma_tx:
              with open(ma_tx, 'w') as ma_handle:
                  with open(seq_out, 'w') as seq_handle:
                      logger.info("Prepare seqs.fastq with -minl 17 -maxl 40 -minc 2 --min_shared 0.1")
                      prepare._create_matrix_uniq_seq(sample_l, seq_l, ma_handle, seq_handle, min_shared)
  
      for sample in data:
          sample[0]["seqcluster_prepare_ma"] = ma_out
          sample[0]["seqcluster_prepare_fastq"] = seq_out
      return data
docs: Run seqcluster prepare to merge all samples in one file