我正试图从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。,,,,,。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,…………,,…..,,,,、、、、,、、,,、,、。,。。。。。。。。。。。。。。。,,,。。。。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..,,,..,,……,,,,…,,…..,,、,,,、、、、,、、…………..,、……..、、…..、…….、、….、……、…..,……….,……..………,、、..、、、…、、、。。。。。,,。。。。。,,,,,,,,,,,。。。。。。,,,,,,,,,,,,,,,,,,,,,,,,,,。,,。,,,。。。。。。。。。。。。。。。。。。。。。。。。。。。。。,,。,。。。。。。。。。,。,。,,。。。。,。。。。。。。。。。,,。。。。。。。。。。。。。。。。。。。。。。,,,,,,。。。。。。。。。。。。。。。。。。。。。。。。。。。,,,,,,,,。。。。。,。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,。,,,,,,,,,,,,,,,,,,,,。。。,,,,,,,,。,,,,,,,,,,,,,,,,,,,,,,,。,,。,,,,,。。。,,。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,。。
您会注意到,由于您不小心在符号[+-]