处理大文件速度太慢?
前几日小编的同学小T想从一个十多个G的fastq文件中随机抽取10000条序列,结果被折磨的束手无策。
小T首先使用了自己擅长的perl语言编写了一个脚本,但花了三个多小时也没跑完,博学的小T又使用了python语言编写了一个脚本,但是速度仍然不理想,只好来问更加“博学”的小编我啦,下面我就把快速解决方法和大家共享一下。
方便处理大数据的小软件
基于C语言编写的软件Seqtk,可以在一分钟之内完成上文中小T的需求。
这个软件还有很多实用的功能,下面介绍下该软件的下载安装和常用功能:
在linux系统(
Linux系统安装及入门
)上通过网址下载,git clone https://github.com/lh3/seqtk.git;安装包下载就绪之后,解压并进入到seqtk-master目录,运行make命令(cd seqtk-master; make)即可。
实现随机抽取序列的命令如下:
此外小编再给大家介绍几个经常用到的功能:
1、fastq文件转换fasta文件
2、把fastq转换成fasta的同时,对低质量的碱基做操作
seqtk seq -aQ64 -q20 in.fq > out.fa把质量值低于20的碱基字母变成小写
seqtk seq -aQ64 -q20 -n N in.fq > out.fa把质量值低于20的碱基变成N
3、基于提供的序列名抽取序列信息,生成fastq格式文件
seqtk subseq in.fq name.lst > out.fq
4、切掉序列两端质量值低的碱基
seqtk trimfq in.fq > out.fq
5、切掉序列左侧5bp和右侧10bp
seqtk trimfq -b 5 -e 10 in.fa > out.fa
希望对童鞋们有所帮助~~~
科技服务事业部 文案
图片源于网络 侵删
领取专属 10元无门槛券
私享最新 技术干货