亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2080 | 回復: 9
打印 上一主題 下一主題

求助 perl [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-03-13 10:05 |只看該作者 |倒序瀏覽
下面格式內容,把中間的大寫字母的配對率測出來,
根據中間配對率大小:把小于0.6的存入文件1.txt,0.6-0.9之間的存入文件2.txt,大于0.9的存入3.txt文件

I001        195        TTGGT        205        225
E012        148        TTCGT        158        200

I001        1124        TTTCTT        1151        2978
E012        4        TAATGT        31        128

I002        17        AATTGACT        29        54
E023        5        AATTGACT        17        128

I003        16        TCGACTTAAT        35        65
E034        44        TGGACATAAT        63        200

配對率定義:設最佳匹配長度為m bp,若有k個堿基完全配對,則配對率為k/m。例如第一組序列配對率為:4/5=0.8,第二組為:2/6=0.3。。。
結果如下:
1.txt中有
I001        1124        TTTCTT        1151        2978
E012        4        TAATGT        31        128
2.txt中有:
I001        195        TTGGT        205        225
E012        148        TTCGT        158        200
I003        16        TCGACTTAAT        35        65
E034        44        TGGACATAAT        63        200
3.txt中有:
I002        17        AATTGACT        29        54
E023        5        AATTGACT        17        128


論壇徽章:
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聯(lián)賽之青島
日期:2016-03-17 20:36:13
2 [報告]
發(fā)表于 2013-03-13 10:54 |只看該作者
本帖最后由 rubyish 于 2013-03-13 06:58 編輯

如下:
  1. #!/usr/bin/perl
  2. my @f = map { open my ($f), '>', $_; $f } qw/1.txt 2.txt 3.txt/;
  3. while (<DATA>) {
  4.     next if /^\s*$/;
  5.     my $S2 = <DATA>;
  6.     my $s1  = (split)[2];
  7.     my ($s2) = $S2 =~ /([ATGC]+)/;
  8.     my ( $l, $m ) = length $s1;
  9.     for my $i ( 0 .. $l - 1 ) {
  10.         substr( $s1, $i, 1 ) eq substr( $s2, $i, 1 ) && $m++;
  11.     }
  12.     my $p = $m / $l;
  13.     my $i = $p < 0.6 ? 0 : $p < 0.9 ? 1 : 2;
  14.     print { $f[$i] } $_, $S2;
  15. }

  16. __DATA__
  17. I001        195        TTGGT        205        225
  18. E012        148        TTCGT        158        200

  19. I001        1124        TTTCTT        1151        2978
  20. E012        4        TAATGT        31        128

  21. I002        17        AATTGACT        29        54
  22. E023        5        AATTGACT        17        128

  23. I003        16        TCGACTTAAT        35        65
  24. E034        44        TGGACATAAT        63        200
復制代碼

論壇徽章:
0
3 [報告]
發(fā)表于 2013-03-13 11:54 |只看該作者
大俠再:wink: 幫我看看,怎么產生隨機序列?
下面格式內容,把中間的大寫字母的GC含量測出來,
根據中間GC含量大。喊袸001,I002,。。。。等開頭的序列換成隨機序列(此序列要和原序列GC含量和長度一樣),E012....等E開頭的序列不變。
16191_NC_003284
I001CACTCA
E012ATGACAAGGAAGCGGCG

16192_NC_003284
I001CACAAGA
E012TCTACAACACGTCTGCTC
I002CATG
E023GCTGCAGAGA
GC含量定義:設序列長度為m bp,若序列有k個G+C(就是C和G的總是),則GC含量為k/m。
例如I001序列GC含量為:3/6=0.5,第二個I001序列為:3/7=0.43,第三序列為0.25,I002序列為0.5。
結果如下:
16191_NC_003284
I001AGCTTC
E012ATGACAAGGAAGCGGCG

16192_NC_003284
I001GATCAGT
E012TCTACAACACGTCTGCTC
I002TGGA
E023GCTGCAGAGA

回復 2# rubyish


   

論壇徽章:
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聯(lián)賽之青島
日期:2016-03-17 20:36:13
4 [報告]
發(fā)表于 2013-03-13 13:40 |只看該作者
看看:
  1. #!/usr/bin/perl
  2. my @G = qw/G C/;
  3. my @A = qw/A T/;

  4. print /^I/ ? Rand() : $_ while <DATA>;

  5. sub Rand {
  6.     my ( $h, $t ) = /^(.*\d+)(.*)$/;
  7.     my @t = map /[GC]/ ? $G[rand 2] : $A[rand 2], $t =~ /./g;
  8.     @t = map splice(@t, rand @t, 1), 0 .. $#t;
  9.     join '', $h, @t, $/;
  10. }

  11. __DATA__
  12. 16191_NC_003284
  13. I001CACTCA
  14. E012ATGACAAGGAAGCGGCG

  15. 16192_NC_003284
  16. I001CACAAGA
  17. E012TCTACAACACGTCTGCTC
  18. I002CATG
  19. E023GCTGCAGAGA
復制代碼

論壇徽章:
0
5 [報告]
發(fā)表于 2013-03-13 14:00 |只看該作者
新手來試試
#!/usr/bin/perl
$src='e:\perl\src1.txt';
open OPF ,$src or die "cant open ";
$opkey=0;
while (<OPF>){
if(/^$/) {next};
if ($opkey==0){
        $first=$_;
        chomp $_;
        /(\w\d+)\ +(\d+)\ +(\w+)\ +(\d+)\ +(\d+)/;
        $a=$3;
        $opkey++;
        }
elsif ($opkey==1){
        $second=$_;
        chomp $_;
        /(\w\d+)\ +(\d+)\ +(\w+)\ +(\d+)\ +(\d+)/;
        $b=$3;
        $leng=length $b;
        @aa=(split //,$a);
        @bb=(split //,$b);

        for ($i=0;$i<$leng;$i++){
                $sfta=shift @aa;
                $sftb=shift @bb;
                if ($sfta eq $sftb){$sum +=1;}
                }
         $percent=$sum/$leng;
         if($percent <=0.6){
                                open GO,">>","d:\\proj1\\1.txt";
                                print GO $first;
                                print GO $second;
                                 }
         if(($percent<=0.9)&&($percent>=0.6)){
                                 open GO,">>","d:\\proj1\\2.txt";
                                        print GO $first;
                                print GO $second;
                                }
         if($percent >=0.9){
                                 open GO,">>","d:\\proj1\\3.txt";
                                 print GO $first;
                                print GO $second;
                                }
         $opkey=0;
        }
$sum=0;
}

論壇徽章:
0
6 [報告]
發(fā)表于 2013-03-13 15:44 |只看該作者
謝謝你,寫的很詳細。。回復 5# zzwevil


   

論壇徽章:
0
7 [報告]
發(fā)表于 2013-03-13 15:49 |只看該作者
這么簡練的代碼就搞定了,就是要懂很費勁呀。
非常感謝你,幫我大忙了。。。回復 4# rubyish


   

論壇徽章:
3
CU十二周年紀念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
8 [報告]
發(fā)表于 2013-03-13 18:50 |只看該作者
  1. #!/usr/bin/perl
  2. my (%hash,@dna,$text);
  3. my $data = do {local $/;<DATA>};
  4. my @line = split/^\s+/m,$data;
  5. for (@line){
  6. if(/([ATGC]+)[\s\S]+?([ATGC]+)/){
  7.     my ($len,$count) = length $2;
  8.    my @arr = split//,$2;
  9.    for (split//,$1){
  10.      $count++ if($_ eq shift(@arr));
  11. }
  12.     my $m=$count/$len;
  13.     my $text = $m<0.6?1:$m<0.9?2:3;
  14.    open FH,">>$text.txt" or die "$!";
  15.     print FH $_;
  16.    close FH;
  17. }
  18.     }
  19. __DATA__
  20. I001        195        TTGGT        205        225
  21. E012        148        TTCGT        158        200

  22. I001        1124        TTTCTT        1151        2978
  23. E012        4        TAATGT        31        128

  24. I002        17        AATTGACT        29        54
  25. E023        5         AATTGACT        17        128

  26. I003        16        TCGACTTAAT        35        65
  27. E034        44        TGGACATAAT        63        200
復制代碼
回復 1# zhagnqiang829


   
sinian126 該用戶已被刪除
9 [報告]
發(fā)表于 2013-03-14 19:04 |只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽

論壇徽章:
3
CU十二周年紀念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
10 [報告]
發(fā)表于 2013-03-14 21:13 |只看該作者
回復 9# sinian126


    所有字符串包括換行
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP