Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用perl镜像基因序列_Perl_Match_Mirror - Fatal编程技术网

如何使用perl镜像基因序列

如何使用perl镜像基因序列,perl,match,mirror,Perl,Match,Mirror,所以我的问题是如何在perl中镜像基因序列?基本上我有一段代码如下所示: m/(([ACGT]{4})\2)/ 这与一行中四个字母中的任意一个匹配4次*2。。。例如:CGAG CGAG(没有空格)。如何让此代码打印出CGAG,后面是GAGC,而不是CGAG(第二个代码的镜像?如果有任何帮助,将不胜感激。使用反向和拆分: $ perl -le 'print reverse split //, "GAGC"' CGAG pff,真正的regexp方式是: m/(([ACGT]{4})\s*(?

所以我的问题是如何在perl中镜像基因序列?基本上我有一段代码如下所示:

 m/(([ACGT]{4})\2)/

这与一行中四个字母中的任意一个匹配4次*2。。。例如:CGAG CGAG(没有空格)。如何让此代码打印出CGAG,后面是GAGC,而不是CGAG(第二个代码的镜像?如果有任何帮助,将不胜感激。

使用
反向
拆分

$ perl -le 'print reverse split //, "GAGC"'
CGAG

pff,真正的regexp方式是:

m/(([ACGT]{4})\s*(??{ my $b = reverse $2; $b }))/

perl -E 'warn "CGAG GAGC" =~ m/(([ACGT]{4})\s*(??{ my $b = reverse $2; $b }))/'
CGAG GAGCCGAG at -e line 1.
但这是一个实验性的特征

你可以做你喜欢的事

my $str = "CGAGGAGC";
index($str, $1 . reverse($1)) != -1 && print "$1" . reverse($1) . " at " . (pos($str) - 4) while $str =~ m/([ACGT]{4})/g;

如果我没弄错的话,你想找一个合适的工作

在你的情况下,你可以这样做

#!/usr/bin/perl
use warnings;
use strict;
use 5.014;

my $dna = "TGCACGAGGAGCTTAC";

my ($match) = $dna =~ m/(([ACGT])([ACGT])([ACGT])([ACGT])\5\4\3\2)/;

say $match
#CGAGGAGC

你能给我们一些场景的输入和期望的输出吗?