免费注册 查看新帖 |

Chinaunix

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

Perl随机产生多肽序列 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-22 14:28 |只看该作者 |倒序浏览
我想产生一个含有1000条序列的七肽文库,基于位置的单氨基酸组分如下分布:
A        0.09497947        0.070426046        0.078231678        0.069402819        0.073001587        0.067751808        0.065225551
C        0.003987824        0.004239198        0.006126589        0.00579803        0.006359058        0.007059202        0.007186454
D        0.031654608        0.028931216        0.021204204        0.029173854        0.025034137        0.021646325        0.024539473
E        0.030191737        0.025704815        0.0171375               0.023008412        0.019931428        0.017206993        0.018367772
F        0.021186211        0.018803895        0.024108434        0.023349227        0.026832478        0.025921508        0.027780867
G        0.047137968        0.028274228        0.02906955        0.027688427        0.030174135        0.027163123        0.026097522
H        0.061280362        0.053520624        0.047650885        0.057602322        0.048347118        0.046961954        0.052401045
I        0.030525902        0.030684054        0.029671778        0.029735665        0.030828516        0.033772121        0.029383376
K        0.030053403        0.021923645        0.020619838        0.025112887        0.020833923        0.023215196        0.022188839
L        0.090544049        0.103690465        0.112389986        0.101604113        0.111333642        0.111322299        0.115992927
M        0.034562358        0.030696831        0.029966439        0.026875373        0.027945538        0.03101157        0.02620991
N        0.04517639        0.040286853        0.031861131        0.040137567        0.033102225        0.035602927        0.032904046
P        0.001273168        0.171672655        0.169522808        0.154487958        0.159433689        0.155568683        0.161045977
Q        0.064491638        0.052384357        0.043509473        0.051301545        0.043542068        0.040985172        0.047284907
R        0.03516902        0.033794677        0.046343819        0.04827906        0.055693288        0.058490476        0.059932226
S        0.136940411        0.097910949        0.106347363        0.10304508        0.104407819        0.105721405        0.103542222
T        0.133603708        0.103408973        0.098715659        0.093232499        0.088656527        0.099685822        0.083992158
V        0.05101914        0.041507999        0.040548266        0.040028439        0.043047795        0.039284095        0.041277095
W        0.022307746        0.013552552        0.018361253        0.015865506        0.019287738        0.018945619        0.018187325
Y        0.033914888        0.028585968        0.028613348        0.034271218        0.032207292        0.032683703        0.03646031
想用Perl编程实现,我用Perl不是很多,写不出这个代码,请求各位大神帮忙啊!还有一个问题就是只产生1000条序列的话,没法按照上面的分布产生序列。大家觉得我先产生10^9数量级的序列,再从里面随机抽取1000可行吗?

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
2 [报告]
发表于 2014-03-22 15:32 |只看该作者
最近生物学的兄弟们怎么都跟perl干上了.

兄弟, 你搞这么专业的名词, 码农 是帮不了你了.

坐等专业的兄弟们出来吧.

论坛徽章:
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
3 [报告]
发表于 2014-03-22 16:22 |只看该作者
{:2_175:} 头都大了

@afukada
@xiumu2280
@我还是小小明

大神们出来吧
{:2_172:}等待大神的解决方案

论坛徽章:
0
4 [报告]
发表于 2014-03-22 21:00 |只看该作者
表示没看懂你的意思,还有,我生物也不是很专业。能说详细点儿吗?

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
5 [报告]
发表于 2014-03-22 22:23 |只看该作者
回复 1# 黎溪
  1. #!/usr/bin/perl

  2. use strict;
  3. use Data::Dumper;

  4. my %a;
  5. my %h;
  6. my $line;
  7. while(<DATA>){
  8.         chomp;
  9.         my @data = split /\s+/,$_;
  10.         map{$h{$data[0]}{$_} = sprintf("%d",int(1000*$data[$_]))}1..$#data;
  11.         $a{++$line}= $data[0];
  12. }
  13. my $n;
  14. my %c;
  15. while($n++<1000){
  16.         my $seq;
  17.         foreach my $p(1..7){
  18.                 my $t;
  19.                 while($t = $a{1+int(rand($line))}){
  20.                         if($c{$t}{$p}+0 <= $h{$t}{$p}){
  21.                                 $seq .= $t;
  22.                                 $c{$t}{$p}++;
  23.                                 last;
  24.                         }
  25.                 }
  26.         }
  27.         print $seq,"\n";
  28. }
  29. __DATA__
  30. A        0.09497947        0.070426046        0.078231678        0.069402819        0.073001587        0.067751808        0.065225551
  31. C        0.003987824        0.004239198        0.006126589        0.00579803        0.006359058        0.007059202        0.007186454
  32. D        0.031654608        0.028931216        0.021204204        0.029173854        0.025034137        0.021646325        0.024539473
  33. E        0.030191737        0.025704815        0.0171375               0.023008412        0.019931428        0.017206993        0.018367772
  34. F        0.021186211        0.018803895        0.024108434        0.023349227        0.026832478        0.025921508        0.027780867
  35. G        0.047137968        0.028274228        0.02906955        0.027688427        0.030174135        0.027163123        0.026097522
  36. H        0.061280362        0.053520624        0.047650885        0.057602322        0.048347118        0.046961954        0.052401045
  37. I        0.030525902        0.030684054        0.029671778        0.029735665        0.030828516        0.033772121        0.029383376
  38. K        0.030053403        0.021923645        0.020619838        0.025112887        0.020833923        0.023215196        0.022188839
  39. L        0.090544049        0.103690465        0.112389986        0.101604113        0.111333642        0.111322299        0.115992927
  40. M        0.034562358        0.030696831        0.029966439        0.026875373        0.027945538        0.03101157        0.02620991
  41. N        0.04517639        0.040286853        0.031861131        0.040137567        0.033102225        0.035602927        0.032904046
  42. P        0.001273168        0.171672655        0.169522808        0.154487958        0.159433689        0.155568683        0.161045977
  43. Q        0.064491638        0.052384357        0.043509473        0.051301545        0.043542068        0.040985172        0.047284907
  44. R        0.03516902        0.033794677        0.046343819        0.04827906        0.055693288        0.058490476        0.059932226
  45. S        0.136940411        0.097910949        0.106347363        0.10304508        0.104407819        0.105721405        0.103542222
  46. T        0.133603708        0.103408973        0.098715659        0.093232499        0.088656527        0.099685822        0.083992158
  47. V        0.05101914        0.041507999        0.040548266        0.040028439        0.043047795        0.039284095        0.041277095
  48. W        0.022307746        0.013552552        0.018361253        0.015865506        0.019287738        0.018945619        0.018187325
  49. Y        0.033914888        0.028585968        0.028613348        0.034271218        0.032207292        0.032683703        0.03646031

复制代码

论坛徽章:
0
6 [报告]
发表于 2014-03-23 09:55 |只看该作者
回复 2# q1208c
不好意思,发帖的时候没考虑到专业的问题。

论坛徽章:
0
7 [报告]
发表于 2014-03-23 10:04 |只看该作者
回复 4# 我还是小小明
产生一个含有1000条七肽序列的文库,七肽序列由20种氨基酸组成,即A, C, D, E, F, G, H, I, K, L, M, N, P, Q, R, S, T, V, W, Y。 每条序列有7个氨基酸,即有七个位置,每个位置上的氨基酸分布情况如下所示:
第一列表示20种氨基酸,后面7列就是对应的7个位置的各种氨基酸分布情况。
A        0.09497947        0.070426046        0.078231678        0.069402819        0.073001587        0.067751808        0.065225551
C        0.003987824        0.004239198        0.006126589        0.00579803        0.006359058        0.007059202        0.007186454
D        0.031654608        0.028931216        0.021204204        0.029173854        0.025034137        0.021646325        0.024539473
E        0.030191737        0.025704815        0.0171375               0.023008412        0.019931428        0.017206993        0.018367772
F        0.021186211        0.018803895        0.024108434        0.023349227        0.026832478        0.025921508        0.027780867
G        0.047137968        0.028274228        0.02906955        0.027688427        0.030174135        0.027163123        0.026097522
H        0.061280362        0.053520624        0.047650885        0.057602322        0.048347118        0.046961954        0.052401045
I        0.030525902        0.030684054        0.029671778        0.029735665        0.030828516        0.033772121        0.029383376
K        0.030053403        0.021923645        0.020619838        0.025112887        0.020833923        0.023215196        0.022188839
L        0.090544049        0.103690465        0.112389986        0.101604113        0.111333642        0.111322299        0.115992927
M        0.034562358        0.030696831        0.029966439        0.026875373        0.027945538        0.03101157        0.02620991
N        0.04517639        0.040286853        0.031861131        0.040137567        0.033102225        0.035602927        0.032904046
P        0.001273168        0.171672655        0.169522808        0.154487958        0.159433689        0.155568683        0.161045977
Q        0.064491638        0.052384357        0.043509473        0.051301545        0.043542068        0.040985172        0.047284907
R        0.03516902        0.033794677        0.046343819        0.04827906        0.055693288        0.058490476        0.059932226
S        0.136940411        0.097910949        0.106347363        0.10304508        0.104407819        0.105721405        0.103542222
T        0.133603708        0.103408973        0.098715659        0.093232499        0.088656527        0.099685822        0.083992158
V        0.05101914        0.041507999        0.040548266        0.040028439        0.043047795        0.039284095        0.041277095
W        0.022307746        0.013552552        0.018361253        0.015865506        0.019287738        0.018945619        0.018187325
Y        0.033914888        0.028585968        0.028613348        0.034271218        0.032207292        0.032683703        0.03646031
用Perl编程实现。

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
8 [报告]
发表于 2014-03-24 03:10 |只看该作者
~ 没看懂, 看没懂

论坛徽章:
8
技术图书徽章
日期:2013-09-30 08:51:28技术图书徽章
日期:2013-12-11 09:26:39白羊座
日期:2013-12-27 15:27:13金牛座
日期:2014-01-06 09:13:05天蝎座
日期:2014-01-21 14:23:28酉鸡
日期:2014-05-09 16:51:12卯兔
日期:2014-08-11 16:49:1515-16赛季CBA联赛之八一
日期:2017-08-14 23:24:57
9 [报告]
发表于 2014-03-24 09:48 |只看该作者
我也没看懂··

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
10 [报告]
发表于 2014-03-24 10:19 |只看该作者
回复 7# 黎溪

>>产生一个含有1000条七肽序列的文库,...

provide all detail step and information if you want solve issue by others

1. input data

2. procedure rule

3. output data

ex:
  input data:
   I have a xxx log file, sample as below:
   2014/03/24 10:10:05 FAIL, ...
   2014/03/24 10:10:10 PASS, ...
   2014/03/24 10:10:20 INFO, ...

  procedure rule:
  1.  to get the record with "PASS" and "FAIL" message
  2.  output date with number only and PASS/FAIL item

  output data:
   20140324101005 FAIL
   20140324101010 PASS


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP