利用kseq.h parse fasta/fastq 文件
在分析中经常需要统计fasta/fastq文件的序列数和碱基数, 但是没有找到一些专门做这件事的小工具,可能是这个功能太简单了;
之前用自己写的perl的脚本统计这些信息, 当fastq文件非常大时,就变的很慢;
今天在网上搜到kseq.h可以parse fasta/fastq文件,用C写的, 速度很快;
http://lh3lh3.users.sourceforge.net/parsefastq.shtml
自己试了一下, 在这个基础上添加个小功能, 命名为parse.c:
#include <zlib.h>
#include <stdio.h>
#include <string.h>
#include "kseq.h"
// STEP 1: declare the type of file handler and the read() function
KSEQ_INIT(gzFile, gzread) int main(int argc, char *argv[])
{
gzFile fp;
kseq_t *seq;
long seqs = ;
long bases = ;
int l;
if (argc == ) {
fprintf(stderr, "Usage: %s <in.seq>\n", argv[]);
return ;
}
fp = gzopen(argv[], "r"); // STEP 2: open the file handler
seq = kseq_init(fp); // STEP 3: initialize seq
while ((l = kseq_read(seq)) >= ) { // STEP 4: read sequence
//printf("name: %s\n", seq->name.s);
//if (seq->comment.l) printf("comment: %s\n", seq->comment.s);
//printf("seq: %s\n", seq->seq.s);
//if (seq->qual.l) printf("qual: %s\n", seq->qual.s);
bases += strlen(seq->seq.s);
seqs += ;
}
//printf("return value: %d\n", l);
printf("reads: %ld\n", seqs);
printf("bases: %ld\n", bases);
kseq_destroy(seq); // STEP 5: destroy seq
gzclose(fp); // STEP 6: close the file handler
return ;
}
然后编译
gcc -o fastx_read_length -lz parse.c
因为调用zlib,读取压缩文件,所以编译时需要添加-lz 选项;
测试了一下可以跑通;感觉kseq.h功能好强大, 支持fasta/fastq,支持gzip压缩文件
利用kseq.h parse fasta/fastq 文件的更多相关文章
- fastx tookit 操作fasta/fastq 文件 (1)
准备测试文件 test.fq, 包含4条fastq 文件,碱基编码格式为phred64; @FC12044_91407_8_200_406_24 NTTAGCTCCCACCTTAAGATGTTTA + ...
- 将fasta fastq文件线性化处理
将fasta文件线性化处理 awk '/^>/ {printf("%s%s\t",(N>0?"\n":""),$0);N++;n ...
- seqtk 一款快速处理fasta/fastq 文件的小程序
seqtk 的 GitHub 官网 https://github.com/lh3/seqtk 安装 git clone https://github.com/lh3/seqtk.git cd seqt ...
- 利用Bioperl的SeqIO模块解析fastq文件
测序数据中经常会接触到fastq格式的文件,比如说拿到fastq格式的原始数据后希望查看测序碱基的质量并去除低质量碱基.一般而言大家都是用现有的工具,比如说fastqc这个Java写的小程序,确实很好 ...
- 统计 fastq 文件 q20 , GC 含量的软件
二代测序的分析过程中,经常需要统计原始下机数据的数据量,看数据量是否符合要求:另外还需要统计q20,q30,GC含量等反应测序质量的指标: 在kseq.h 的基础上稍加改造,就可以实现从fastq 文 ...
- fasta/fastq格式解读
1)知识简介--------------------------------------------------------1.1)测序质量值 首先在了解fastq,fasta之前,了解一下什么是质量 ...
- 利用mongoimport命令导入csv大文件
最近我同事做了一个PHP项目,其中有一个功能是 上传excel文件并将数据导入mongodb某个集合中. 通常的做法是 写一个上传文件的页面,然后后端 读取 这个文件,利用phpexcel类库将这个e ...
- 利用gsoap工具,通过wsdl文件生成webservice的C++工程文件
一.下载gsoap文件,下载地址:https://zh.osdn.net/projects/sfnet_gsoap2/releases/ 二.以gsoap-2.8为例,解压到D盘,在D:/gsoap- ...
- perl 截取 fastq文件
#!/usr/bin/perl -w use warnings; use strict; input_fastq trim_length}; ; my ($fastq, $trim_length) = ...
随机推荐
- Linux-Ubuntu操作记录
ubuntu 基本命令 1.帮助man --help简单的帮助 如:man tar 或者tar --help help command 较详细的帮助 man comma ...
- nginx+php-fpm配置后页面显示空白的解决方法(yum形式的安装)
OS: Ubuntu 15.04 由于nginx与php-fpm之间的一个小bug,会导致这样的现象: 网站中的静态页面 *.html 都能正常访问,而 *.php 文件虽然会返回200状态码, 但实 ...
- Multiple Regression
Multiple Regression What is multiple regression? Multiple regression is regression analysis with mor ...
- 20.5 语音合成(百度2016年2月29日发布的tts引擎)
分类:C#.Android.VS2015: 创建日期:2016-03-17 一.简介 编写手机App时,有时需要使用文字转语音(Text to Speech)的功能,比如开车时阅读收到的短信.导航语音 ...
- UVA10519 - !! Really Strange !!(数论+高精度)
10519 - !! Really Strange !!(数论+高精度) option=com_onlinejudge&Itemid=8&category=24&page=sh ...
- 利用yacc和lex制作一个小的计算器
买了本<自制编程语言>,这本书有点难,目前只是看前两章,估计后面的章节,最近一段时间是不会看了,真的是好难啊!! 由于本人是身处弱校,学校的课程没有编译原理这一门课,所以就想看这两章,了解 ...
- Effective JavaScript Item 46 优先使用数组而不是Object类型来表示有顺序的集合
本系列作为Effective JavaScript的读书笔记. ECMAScript标准并没有规定对JavaScript的Object类型中的属性的存储顺序. 可是在使用for..in循环对Objec ...
- 源码安装natcat
下载源码包:http://netcat.sourceforge.net/download.php # tar -xzvf netcat-.tar.gz [root@znode02 netcat-]# ...
- Python asyncio文档阅读摘要
文档地址:https://docs.python.org/3/library/asyncio.html 文档第一句话说得很明白,asyncio是单线程并发,这种event loop架构是很多新型异步并 ...
- php preg正则表达式
Note: 反斜线在单引号字符串和双引号字符串 中都有特殊含义,因此要匹配一个反斜线, 模式中必须写为 ”\\\\”. 译注: “/\\/”, 首先它作为字符串,反斜线会进行转义, 那么转义后的结果是 ...