hisat2 / bowtie 比对过程出现 read has more quality values than read characters
在使用hisat2
或者bowtie
比对过程中出现了上述的错误
./hisat2 -x ../../data/index/hisat_2/iwgsc -U ../../data/mrcv/genes/21dpi_C_R1.fq.gz,../../data/mrcv/genes/21dpi_C_R2.fq.gz,../../data/mrcv/genes/21dpi_C_R3.fq.gz,../../data/mrcv/genes/21dpi_C_R4.fq.gz,../../data/mrcv/genes/21dpi_T_R1.fq.gz,../../data/mrcv/genes/21dpi_T_R2.fq.gz,../../data/mrcv/genes/21dpi_T_R3.fq.gz,../../data/mrcv/genes/21dpi_T_R4.fq.gz -S ../../data/mrcv/genes/alignment/21.sam --un ../../data/mrcv/genes/alignment/21UN.sam -p 6
Error: Read J00113:78:H3JKNBBXX:3:2209:5670:2281 1:N:0:CGATGT has more quality values than read characters.
terminate called after throwing an instance of 'int'
Aborted (core dumped)
(ERR): hisat2-align exited with value 134
从错误信息中看到说是测序文件中的测序长度与质量值长度不符合!一般来说测序文件中都是一一对应的啊!
解决办法
使用gzip
的-t
来检查测序文件是否完整,下面是具体的方法
function check_gzip_file {
local file=$1
gzip -t $file && echo ok || echo bad
}
check_gzip_file R1.fq.gz
check_gzip_file R2.fq.gz
如果是bad
,那么说明测序文件不完整,那么在解压过程中文件流就可能出现了上述的测序文件中的测序长度与质量值长度不符合,那么就是说下载的测序文件不完整或者文件上传或者转移过程中出现纰漏了。
这种情况下那就重新传输一下文件,最好检测md5值,如果不行的话那就只能看看序列还有多少能用,尽量弥补一下。
可以用我在Perl 命令行实战2 - fastq文件的相关操作中的6.1 检查fastq文件
对文件行数进行检查。
你可能会说可能只有那一行是坏的,其他的就好了,用head
命令损失太多了!你可以用tail
命令查看一下这个文件尾巴,基本上是乱码的,因为发生了移位所以从那一行read
开始就不行了。不过也许可以通过纠正移码的方式修复。