问题描述
我想提取 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 (将#修改为@)