这两天在处理一批miRNA-seq数据,公司返回了原始数据和他们处理过的干净数据。通常而言,我都是直接无视他们的干净数据,一般要自己走一遍QC。只不过这次miRNA-seq,我决定用一下他们的处理结果,结果你猜怎么着,我居然就进坑了。
首先,给大家看看这个平淡无奇的干净数据里的内容
公司一波操作之后,把原本的FASTQ文件转成了FASTA文件。接下来我就需要进行比对,用的bowtie, 只不过额外用了-f
参数表示输入是FASTA,然后让他输出成SAM文件,之后直接跟着一个samtools sort
进行排序
bowtie -f -S -p 80 ../ref/Athaliana <(zcat test_clean.fa.gz) | samtools sort -@ 20 > test-1.bam&
每每写这种命令时,我就觉得非常的畅快。然而,但我准备用samtools view
查看内容时,发现怎么什么结果都没有啊
难道是不能直接排序吗?我的管道命令不听话了吗? 于是我就就分成了两步,先输出SAM,然后转BAM
bowtie -f -S -p 80 ../ref/Athaliana <(zcat test_clean.fa.gz) > test.sam
samtools sort -@ 20 test.sam > test.bam &
最后我用less test.sam
发现结果有输出
然而BAM文件依旧是什么都没有。当然这个时候我这个时候我旁边的师弟提了一句,samtools view
不就是只能用看BAM的吗?当然不是了,samtools view是能看SAM的,不行,你看,于是我就敲出下面的代码
额~,怎么还是啥都没有,气氛有些尴尬。突然间,我看着上面的SAM输出似乎明白了些什么,我想到了SAM文件定义,以`@`开头都是HEADER,所以我被FASTA文件中`@`字符给坑了
因此,我最后用sed
进行了把@给删了,问题终于解决了。
zcat test_clean.fa.gz | sed 's/>@/>/' > test_clean.fa
bowtie -f -S -p 80 ../ref/Athaliana test_clean.fa | samtools sort -@ 20 > test-1.bam&