0

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

但是,经过一些尝试和错误,我发现

第一个生的

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 不适合我的目的。

4

0 回答 0