Mpileup regex命令删除indel



我正试图从mpileup txt文件中筛选出插入和删除。插入或删除的一个例子是+3ATG或-9ATCGTCTC。

在另一篇文章中,我发现了一个使用perl:的解决方案

引用表达式早期部分匹配项的正则表达式

但是,脚本会将插入和删除写入特殊变量$&。我想在新变量中不使用任何内容来替换所有插入和删除。所以我的解决方案是相同的,但在开始时有替换,并且什么都不替换,见下文。

$row=~s/(\d+)(??{"."*$1})//xg;

有人知道为什么它不起作用或有其他解决方案吗?

我也很乐意匹配任何不是插入或删除的内容,并将其作为一个新变量。


下面是一个输入示例:

美元,。。。。。。。。。。。。。。。。。。。。。。。。。。。,,。。。。。。。。。。。。。。。。。,,。。。。,,g。,,,,,。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,…………,,…..,,,,、、、、,、、,,、,、。,。。。。。。。。。。。。。。。,,,。。。。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,..,,……,,,,…,,…..,,、,,,、、、、,、、…………..,、……..、、…..、…….、、….、……、…..,……….,……..………,、、..、、、…、、、+12GATGCTGTGTTT-8tgatgctg,,,。。。,,。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,。。

以下是我想要的输出示例:

美元,。。。。。。。。。。。。。。。。。。。。。。。。。。。,,。。。。。。。。。。。。。。。。。,,。。。。,,g。,,,,,。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,…………,,…..,,,,、、、、,、、,,、,、。,。。。。。。。。。。。。。。。,,,。。。。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,..,,……,,,,…,,…..,,、,,,、、、、,、、…………..,、……..、、…..、…….、、….、……、…..,……….,……..………,、、..、、、…、、、,,,,。,,,.,,,..,,,…,..,、,,,、,.+..,,、、、、.,,、.,、,、、.、.、、-、、…、..,、、,、,.、、、,,、,,,。。。,,。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,。。

干杯,

Daniel

这就是你想要的吗?

use feature qw(say);
my $DNA = ',...........,,....,,g.,,,,,,,,,,,.+12GATGCTGTGTTT..,,,,,.,,.,,-8tgatgctg,,,,,,,,..';
say $DNA;
$DNA =~ s/d+[ATGCatgc]*//g;
say $DNA;

,...........,,....,,g.,,,,,,,,,,,.+12GATGCTGTGTTT..,,,,,.,,.,,-8tgatgctg,,,,,,,,..
,...........,,....,,g.,,,,,,,,,,,.+..,,,,,.,,.,,-,,,,,,,,..

您已经拥有的模式的一个微小变化应该可以工作:

$pileup = '$,...........................,,.................,,....,,g.,,,,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,...............,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.....,,.....,,,,,,,,,,,......,,,,,,,,,,,,,,,,,,,,,,,,,,.,,.,,,.............................,,.,.........,.,.,,....,..........,,......................,,,,,,...........................,,,,,,,,.....,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,.+12GATGCTGTGTTT..,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,.,,.,,-8tgatgctg,,,...,,..,,,,,,,,,,,,,,,,,,,,,,,,,,,,..';
$pileup =~ s/[+-](d+)(??{"[ACGTN]{$1}"})//gi;
print($pileup, "n");

生产

美元,。。。。。。。。。。。。。。。。。。。。。。。。。。。,,。。。。。。。。。。。。。。。。。,,。。。。,,g。,,,,,。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,…………,,…..,,,,、、、、,、、,,、,、。,。。。。。。。。。。。。。。。,,,。。。。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,..,,……,,,,…,,…..,,、,,,、、、、,、、…………..,、……..、、…..、…….、、….、……、…..,……….,……..………,、、..、、、…、、、。。。。。,,。。。。。,,,,,,,,,,,。。。。。。,,,,,,,,,,,,,,,,,,,,,,,,,,。,,。,,,。。。。。。。。。。。。。。。。。。。。。。。。。。。。。,,。,。。。。。。。。。,。,。,,。。。。,。。。。。。。。。。,,。。。。。。。。。。。。。。。。。。。。。。,,,,,,。。。。。。。。。。。。。。。。。。。。。。。。。。。,,,,,,,,。。。。。,。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,。,,,,,,,,,,,,,,,,,,,,。。。,,,,,,,,。,,,,,,,,,,,,,,,,,,,,,,,。,,。,,,,,。。。,,。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,。。

您会注意到,由于您不小心在符号[+-]

中留下了一些字符,因此比示例输出短了几个字符

相关内容

  • 没有找到相关文章

最新更新