为什么 grep 后特定的“samtools 视图”行被破坏了?

问题描述

我想提取 readname 列表,其中一个是唯一映射的,另一个是多映射的。

然而,经过一些尝试和错误,我发现

一个原料

samtools view -@ 6 XXX.sorted.bam | if grep -q XS:i: ; then awk '{print $0}' ;else:;fi | head

总是这样坏的:

1       28543   1       25M     =       29133   615     CTTCAATGCATTCCACAAATACCTA                                                                                                        GGAGGIGGGIGGGGIIGGIGIGIGG        AS:i:0  XS:i:0  XN:i:0  XM:i:0  XO:i:0  XG:i:0 NM:i:0                                                                                                    MD:Z:25  YS:i:0  YT:Z:CP

或者像这样:

AS:i:-6 XS:i:-6 YS:i:0  YT:Z:CP

(即部分 sam 文件

我怀疑bam文件本身坏了,然后我怀疑

samtools view -@ 6 XXX.sorted.bam| grep CTTCAATGCATTCCACAAATACCTA

但它正常返回

SRR11074254.925964      99      chr1    28543   1       25M     = 28926 408    CTTCAATGCATTCCACAAATACCTA                                                                                                                                                                                                                                                                                                                              GAGGGIIIIIIIIIIIIIIIIIIII        AS:i:0  XS:i:0  XN:i:0  XM:i:0  XO:i:0  XG:i:0 NM:i:0

是否有任何理由插入“句末”或其他一些工作人员?

先谢谢你,

[修改后的问题]

感谢您的指导和解释。

好的,我重新解释一下情况。 由于原文件比较重,很多工具我都看不懂,所以就简单解释一下。

“samtools view”命令接受 .bam 或 .sam 文件并返回超过 11 个以 \t 作为分隔符的字段。

我想提取带有 "XS:i:" 的行,所以 "grep XS:i:" 和 awk '/XS:i:/' 都可以。

虽然期望每个完整的行都会输出,但出现了一个具有完整字段集的行。

从另一个试验中,我可以理解该行没有损坏,我想知道这是因为 samtools 或 grep 和/或 awk。

grep 或 awk '/' 是否可以部分提取过长的行? ? 谢谢大家,我明白 grep -q 不适合我的目的。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)