File: kseqcat.c

package info (click to toggle)
libqes 0.2.8%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, trixie
  • size: 1,184 kB
  • sloc: ansic: 5,102; python: 56; sh: 29; makefile: 13
file content (41 lines) | stat: -rw-r--r-- 887 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "qes_config.h"
#include <stdio.h>
#include <stdlib.h>

#include <zlib.h>

#include "kseq.h"

#ifdef ZLIB_FOUND
#  include <zlib.h>
   KSEQ_INIT(gzFile, gzread)
#else
#  include <sys/stat.h>
#  include <fcntl.h>
   KSEQ_INIT(int, read)
#endif

int main(int argc, char *argv[])
{
    if (argc < 2) return 1;
    const char *fname = argv[1];
    gzFile fp = gzopen(fname, "r");
    kseq_t *kseq = kseq_init(fp);
    ssize_t res = 0;
    while((res = kseq_read(kseq)) > 0) {
        if (kseq->qual.l < 1) {
            // fasta
            printf(">%s %s\n", kseq->name.s, kseq->comment.s);
            puts(kseq->seq.s);
        } else {
            // fastq
            printf("@%s %s\n", kseq->name.s, kseq->comment.s);
            puts(kseq->seq.s);
            puts("+");
            puts(kseq->qual.s);
        }
    }
    kseq_destroy(kseq);
    gzclose(fp);
    return 0;
}