首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用perl镜像基因序列

如何使用perl镜像基因序列
EN

Stack Overflow用户
提问于 2013-10-26 03:54:12
回答 3查看 89关注 0票数 0

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

代码语言:javascript
复制
 m/(([ACGT]{4})\2)/

这与连续四个字母中的任何一个匹配4次*2次...例如: CGAG CGAG (不带空格)。如何让这段代码打印出CGAG,后面跟着GAGC,而不是CGAG (第二个的镜像?任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2013-10-26 05:15:40

pff,true-regexp方法是:

代码语言:javascript
复制
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.

但这还只是一个实验性的特征...

你可以像这样做smth

代码语言:javascript
复制
my $str = "CGAGGAGC";
index($str, $1 . reverse($1)) != -1 && print "$1" . reverse($1) . " at " . (pos($str) - 4) while $str =~ m/([ACGT]{4})/g;
票数 1
EN

Stack Overflow用户

发布于 2013-10-26 04:11:29

使用reversesplit

代码语言:javascript
复制
$ perl -le 'print reverse split //, "GAGC"'
CGAG
票数 0
EN

Stack Overflow用户

发布于 2013-10-26 07:34:19

如果我没记错的话,您想找一个palindromic secuence.

在您的情况下,您可以这样做。

代码语言:javascript
复制
#!/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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19598396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档