我想提取读取名称列表,其中一个是唯一映射的,另一个是多映射的。
但是,经过一些尝试和错误,我发现
第一个生的
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 不适合我的目的。