免费注册 查看新帖 |

Chinaunix

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

求大神,随机两条序列SNP比对,应该怎么写 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-17 12:23 |只看该作者 |倒序浏览
共有86条序列,现想对随机的2条序列进行比对,应该怎么办,求大神帮忙?C2/86个结果,序列编号为1-86。结果输出为两两间SNP的个数。
例如1/10:456。代表1和10序列有456个SNP。
另,去除N,如序列中有N,则不列为SNP。

论坛徽章:
7
巳蛇
日期:2013-11-28 09:22:59天秤座
日期:2014-10-25 15:40:452015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之德黑兰石油
日期:2015-07-15 08:46:452015亚冠之平阳省
日期:2015-11-08 16:27:53白银圣斗士
日期:2015-11-14 09:58:12
2 [报告]
发表于 2015-06-23 09:07 |只看该作者
如果是等长序列,就每次取一个碱基去比较好了!

如是不等长,可能要先进行Alignment,再去比较……

论坛徽章:
26
2015亚冠之胡齐斯坦钢铁
日期:2015-06-25 21:40:202015亚冠之柏斯波利斯
日期:2015-08-31 17:03:192015亚冠之柏斯波利斯
日期:2015-11-07 13:10:00程序设计版块每日发帖之星
日期:2015-11-10 06:20:00每日论坛发贴之星
日期:2015-11-10 06:20:00程序设计版块每日发帖之星
日期:2015-11-26 06:20:00程序设计版块每日发帖之星
日期:2015-12-02 06:20:00黄金圣斗士
日期:2015-12-07 17:57:4615-16赛季CBA联赛之天津
日期:2015-12-23 18:34:14程序设计版块每日发帖之星
日期:2016-01-02 06:20:00程序设计版块每日发帖之星
日期:2016-01-06 06:20:00每日论坛发贴之星
日期:2016-01-06 06:20:00
3 [报告]
发表于 2015-06-23 13:12 |只看该作者
lz给样例文本

论坛徽章:
0
4 [报告]
发表于 2015-06-26 08:46 |只看该作者
回复 3# substr函数


比如:
1 AAAA
2 AAAA
3 AAAA
4 AAAT
5 AAAA
6 AATA
7 AAAA
...
...
...
还请大神帮忙写代码,感激不尽!
   

论坛徽章:
0
5 [报告]
发表于 2015-06-26 08:48 |只看该作者
回复 2# b114213903

是等长的,只是不会写代码,正在学小骆驼,赶不上用的。
   

论坛徽章:
7
巳蛇
日期:2013-11-28 09:22:59天秤座
日期:2014-10-25 15:40:452015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之德黑兰石油
日期:2015-07-15 08:46:452015亚冠之平阳省
日期:2015-11-08 16:27:53白银圣斗士
日期:2015-11-14 09:58:12
6 [报告]
发表于 2015-06-26 12:58 |只看该作者
回复 5# G比蒙

  1. #!/usr/bin/perl
  2. use strict;
  3. use Bio::SeqIO;

  4. my $file='seq.fasta';
  5. my $SEQ=Bio::SeqIO->new(-file=>"$file", -format=>'fasta');
  6. my $data={};
  7. while (my $seq=$SEQ->next_seq){
  8.         $data->{$seq->id}=$seq->seq;
  9. }
  10. $SEQ->close();

  11. open (OUT,">Results.txt");
  12. my @ids=sort {$a<=>$b} keys %$data;
  13. while (my $id=shift @ids){
  14.         for (my $i=0;$i<@ids;$i++){
  15.                 print  "$id\/$ids[$i]:\t";
  16.                 my @Base_seqA=split //,$data->{$id};
  17.                 my @Base_seqB=split //,$data->{$ids[$i]};
  18.                 my $num=0;
  19.                 for (my $j=0;$j<@Base_seqA;$j++){
  20.                         if($Base_seqA[$j]!~/[N-]/i and $Base_seqB[$j]!~/[N-]/i and $Base_seqA[$j] ne $Base_seqB[$j]){
  21. #                                print "$Base_seqA[$j] <=> $Base_seqB[$j]\n";
  22. #                                sleep 1;
  23.                                 $num++;
  24.                         }
  25.                 }
  26.                 print "$num\n";
  27.                 print OUT "$id\/$ids[$i]:\t$num\n";
  28.         }
  29. }
  30. close OUT;

  31. print "OK!\n";
复制代码



我使用的数据在附件!
Test.rar (21.5 KB, 下载次数: 15)

论坛徽章:
26
2015亚冠之胡齐斯坦钢铁
日期:2015-06-25 21:40:202015亚冠之柏斯波利斯
日期:2015-08-31 17:03:192015亚冠之柏斯波利斯
日期:2015-11-07 13:10:00程序设计版块每日发帖之星
日期:2015-11-10 06:20:00每日论坛发贴之星
日期:2015-11-10 06:20:00程序设计版块每日发帖之星
日期:2015-11-26 06:20:00程序设计版块每日发帖之星
日期:2015-12-02 06:20:00黄金圣斗士
日期:2015-12-07 17:57:4615-16赛季CBA联赛之天津
日期:2015-12-23 18:34:14程序设计版块每日发帖之星
日期:2016-01-02 06:20:00程序设计版块每日发帖之星
日期:2016-01-06 06:20:00每日论坛发贴之星
日期:2016-01-06 06:20:00
7 [报告]
发表于 2015-06-26 14:38 |只看该作者
回复 1# G比蒙


LZ 都没说明, 表示没看懂,请说明规则

怎么说明规则
请查看这里 http://bbs.chinaunix.net/thread-4180665-1-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP