By Tingting, 2 August, 2024
Forums

使用bedtools筛选候选基因时,按照原先的命令,输入后竟然发现报错。

显示:输入文件有问题。

vim 查看文件内容是正常的,

于是开始检查文件。

#文件名为GWAS_Results.BLINK.leafW.pvalue6.txt
#检查文件属性
file GWAS_Results.BLINK.leafW.pvalue6.txt
#检查制表符
cat -t GWAS_Results.BLINK.leafW.pvalue6.txt
#结果如下:

文件属性输出应该是ASCII text 或 UTF-8 text,而这个文件是UTF-16。

#将空格转为制表符
sed -i 's/ \t/\t/g' GWAS_Results.BLINK.leafW.pvalue6.txt
#转换文件格式
iconv -f UTF-16 -t UTF-8 GWAS_Results.BLINK.leafW.pvalue6.txt > GWAS_Results_BLINK_leafW_pvalue6_utf8.txt
#结果如下

发现,末尾仍有回车符号

#删除回车符号
sed -i 's/\r$//' GWAS_Results_BLINK_leafW_pvalue6_utf8.txt
#使用bedtools可读取

原以为使用只使用2个bedtools的命令不会出现报错问题,结果还是因为文件的问题出现报错。

总结,运行前检查文件内容,文件属性,文件中制表符!

zhangcj

12 months ago

想一想,现在的标题“使用bedtools时,输入文件报错”,与“输入文件编码格式和回车符导致bedtools报错及问题解决”,这两个标题的区别。前者,不看内容不知道到底哪类错误,后者,一看,大概知道什么类型。可以节约读者的时间。