def _read_fastq_files(f, args):
seq_l = {}<EOL>sample_l = []<EOL>idx = <NUM_LIT:1><EOL>p = re.compile("<STR_LIT>")<EOL>with open(op.join(args.out, "<STR_LIT>"), '<STR_LIT:w>') as out_handle:<EOL><INDENT>for line1 in f:<EOL><INDENT>line1 = line1.strip()<EOL>cols = line1.split("<STR_LIT:\t>")<EOL>with open_fastq(cols[<NUM_LIT:0>]) as handle:<EOL><INDENT>sample_l.append(cols[<NUM_LIT:1>])<EOL>total = added = <NUM_LIT:0><EOL>for line in handle:<EOL><INDENT>if line.startswith("<STR_LIT:@>") or line.startswith("<STR_LIT:>>"):<EOL><INDENT>seq = handle.next().strip()<EOL>if not p.match(seq):<EOL><INDENT>continue<EOL><DEDENT>idx += <NUM_LIT:1><EOL>total += <NUM_LIT:1><EOL>keep = {}<EOL>counts = int(re.search("<STR_LIT>", line.strip()).group(<NUM_LIT:1>))<EOL>if is_fastq(cols[<NUM_LIT:0>]):<EOL><INDENT>handle.next().strip()<EOL>qual = handle.next().strip()<EOL><DEDENT>else:<EOL><INDENT>qual = "<STR_LIT:I>" * len(seq)<EOL><DEDENT>qual = qual[<NUM_LIT:0>:int(args.maxl)] if len(qual) > int(args.maxl) else qual<EOL>seq = seq[<NUM_LIT:0>:int(args.maxl)] if len(seq) > int(args.maxl) else seq<EOL>if counts > int(args.minc) and len(seq) > int(args.minl):<EOL><INDENT>added += <NUM_LIT:1><EOL>if seq in keep:<EOL><INDENT>keep[seq].update(qual)<EOL><DEDENT>else:<EOL><INDENT>keep[seq] = quality(qual)<EOL><DEDENT>if seq not in seq_l:<EOL><INDENT>seq_l[seq] = sequence_unique(idx, seq)<EOL><DEDENT>seq_l[seq].add_exp(cols[<NUM_LIT:1>], counts)<EOL>seq_l[seq].quality = keep[seq].get()<EOL><DEDENT><DEDENT><DEDENT>print("<STR_LIT>" % (idx, cols[<NUM_LIT:1>]), file=out_handle, end="<STR_LIT>")<EOL>print("<STR_LIT>" % (len(seq_l), cols[<NUM_LIT:1>]), file=out_handle, end="<STR_LIT>")<EOL>logger.info("<STR_LIT>" % (cols[<NUM_LIT:1>], idx, len(seq_l)))<EOL><DEDENT><DEDENT><DEDENT>return seq_l, sample_l<EOL>
read fasta files of each sample and generate a seq_obj
    with the information of each unique sequence in each sample

    :param f: file containing the path for each fasta file and
    the name of the sample. Two column format with `tab` as field
    separator

    :returns: * :code:`seq_l`: is a list of seq_obj objects, containing
               the information of each sequence
             * :code:`sample_l`: is a list with the name of the samples
               (column two of the config file)