免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5499 | 回复: 16
打印 上一主题 下一主题

序列切割 [复制链接]

论坛徽章:
1
天秤座
日期:2014-02-20 08:24:30
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-02-28 15:07 |只看该作者 |倒序浏览
序列:
ATGGATGCTGCGGTGACAGATGATTTTCAACAAATTCTGCCTATTGAACAG

以21个字母一直向右移动,得到子序列。

希望结果:
ATGGATGCTGCGGTGACAGAT
  TGGATGCTGCGGTGACAGATG
    GATGCTGCGGTGACAGATGAT
      ATGCTGCGGTGACAGATGATT
        ...
                        AAATTCTGCCTATTGAACAG         

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
2 [报告]
发表于 2014-02-28 15:19 |只看该作者
你的目的是得到最后这一串字符(AAATTCTGCCTATTGAACAG)吗?
如果是的话直接用substr截取不就好了?

论坛徽章:
1
天秤座
日期:2014-02-20 08:24:30
3 [报告]
发表于 2014-02-28 15:52 |只看该作者
回复 2# yestreenstars


    不是的,递进的,所有其中的21bp都要,一直往下截取。

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
4 [报告]
发表于 2014-02-28 16:14 |只看该作者
本帖最后由 yestreenstars 于 2014-02-28 16:16 编辑

酱紫?
  1. $ perl -F -lane 'for $i (0..$#F-20){printf " "x$i;print substr($_,$i,21)}' i
  2. ATGGATGCTGCGGTGACAGAT
  3. TGGATGCTGCGGTGACAGATG
  4.   GGATGCTGCGGTGACAGATGA
  5.    GATGCTGCGGTGACAGATGAT
  6.     ATGCTGCGGTGACAGATGATT
  7.      TGCTGCGGTGACAGATGATTT
  8.       GCTGCGGTGACAGATGATTTT
  9.        CTGCGGTGACAGATGATTTTC
  10.         TGCGGTGACAGATGATTTTCA
  11.          GCGGTGACAGATGATTTTCAA
  12.           CGGTGACAGATGATTTTCAAC
  13.            GGTGACAGATGATTTTCAACA
  14.             GTGACAGATGATTTTCAACAA
  15.              TGACAGATGATTTTCAACAAA
  16.               GACAGATGATTTTCAACAAAT
  17.                ACAGATGATTTTCAACAAATT
  18.                 CAGATGATTTTCAACAAATTC
  19.                  AGATGATTTTCAACAAATTCT
  20.                   GATGATTTTCAACAAATTCTG
  21.                    ATGATTTTCAACAAATTCTGC
  22.                     TGATTTTCAACAAATTCTGCC
  23.                      GATTTTCAACAAATTCTGCCT
  24.                       ATTTTCAACAAATTCTGCCTA
  25.                        TTTTCAACAAATTCTGCCTAT
  26.                         TTTCAACAAATTCTGCCTATT
  27.                          TTCAACAAATTCTGCCTATTG
  28.                           TCAACAAATTCTGCCTATTGA
  29.                            CAACAAATTCTGCCTATTGAA
  30.                             AACAAATTCTGCCTATTGAAC
  31.                              ACAAATTCTGCCTATTGAACA
  32.                               CAAATTCTGCCTATTGAACAG
复制代码
CU把第二行的空格给吞了,将就看吧~

论坛徽章:
0
5 [报告]
发表于 2014-02-28 16:15 |只看该作者
$str="ATGGATGCTGCGGTGACAGATGATTTTCAACAAATTCTGCCTATTGAACAG";
$lg=length $str;
for(0..$lg-21)
{
        print substr($str,$_,21)."\n";
}

论坛徽章:
0
6 [报告]
发表于 2014-02-28 16:16 |只看该作者
本帖最后由 TrishaTie 于 2014-02-28 16:20 编辑

ATGGATGCTGCGGTGACAGAT
TGGATGCTGCGGTGACAGATG
GGATGCTGCGGTGACAGATGA
GATGCTGCGGTGACAGATGAT
..
CAAATTCTGCCTATTGAACAG
是这样么?

论坛徽章:
0
7 [报告]
发表于 2014-02-28 16:22 |只看该作者

写完我发现不是楼主要求的,貌似是遇到相同的字母还要往后走一个,象下面这样

ATGGATGCTGCGGTGACAGAT
TGGATGCTGCGGTGACAGATG
     GATGCTGCGGTGACAGATGAT

回复 4# yestreenstars


   

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
8 [报告]
发表于 2014-02-28 16:26 |只看该作者
酱?
  1. my $str = 'ATGGATGCTGCGGTGACAGATGATTTTCAACAAATTCTGCCTATTGAACAG';

  2. my @str = map { substr $str, $_, 21 } 0 .. length($str) - 21;
  3. say for @str;
复制代码
  1. ATGGATGCTGCGGTGACAGAT
  2. TGGATGCTGCGGTGACAGATG
  3. GGATGCTGCGGTGACAGATGA
  4. GATGCTGCGGTGACAGATGAT
  5. ATGCTGCGGTGACAGATGATT
  6. TGCTGCGGTGACAGATGATTT
  7. GCTGCGGTGACAGATGATTTT
  8. CTGCGGTGACAGATGATTTTC
  9. TGCGGTGACAGATGATTTTCA
  10. GCGGTGACAGATGATTTTCAA
  11. CGGTGACAGATGATTTTCAAC
  12. GGTGACAGATGATTTTCAACA
  13. GTGACAGATGATTTTCAACAA
  14. TGACAGATGATTTTCAACAAA
  15. GACAGATGATTTTCAACAAAT
  16. ACAGATGATTTTCAACAAATT
  17. CAGATGATTTTCAACAAATTC
  18. AGATGATTTTCAACAAATTCT
  19. GATGATTTTCAACAAATTCTG
  20. ATGATTTTCAACAAATTCTGC
  21. TGATTTTCAACAAATTCTGCC
  22. GATTTTCAACAAATTCTGCCT
  23. ATTTTCAACAAATTCTGCCTA
  24. TTTTCAACAAATTCTGCCTAT
  25. TTTCAACAAATTCTGCCTATT
  26. TTCAACAAATTCTGCCTATTG
  27. TCAACAAATTCTGCCTATTGA
  28. CAACAAATTCTGCCTATTGAA
  29. AACAAATTCTGCCTATTGAAC
  30. ACAAATTCTGCCTATTGAACA
  31. CAAATTCTGCCTATTGAACAG
复制代码

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
9 [报告]
发表于 2014-02-28 16:35 |只看该作者
回复 7# TrishaTie

看楼主的结果就知道了~
   

论坛徽章:
0
10 [报告]
发表于 2014-02-28 16:53 |只看该作者
print substr($str,0,21)."\n";
for(1..length($str)-21)
{
        print substr($str,$_,21)."\n" unless (substr($str,$_,1) eq substr($str,$_-1,1));
}

这次结果是对的~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP