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

  免費(fèi)注冊 查看新帖 |

Chinaunix

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

一個處理生物數(shù)據(jù)的perl程序的問題,研究了好長時間沒有找出來,煩高手。! [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-03-19 01:13 |只看該作者 |倒序瀏覽
本帖最后由 aids260 于 2010-03-20 22:17 編輯

#!/usr/local/bin/perl
#done by zmyin aids260@163.com
($input1,$input2,$output)=@ARGV;
open I1,"$input1"||die"$!";
open I2,"$input2"||die"$!";
open O,">>$output"||die"$!";
chomp(@name=<I1>);
$n;
$/=">";
@a;$b;$c;$d;

@cds_seq=<I2>;
$i=0; #cds計數(shù)
foreach $n(@name){
           $d=$n;            
            foreach $b(@cds_seq){
                        $b=~/(\w+-TA)/;
                        $c=$1;
                                    if($d eq $1){
                         $b=~s/>$//;
              $b=">".$b;
              print O $i;
                          $i++;
                     last;
                }
                }
    }
print O "$i full cds\n";       
close I1;
close I2;
close O;



上邊是我的源程序,使用命令是   exact-cds-sequence.pl   cds-name.txt   silkcds.fa   cds-sqe.txt
其中exact-cds-sequence.pl是程序名稱  后邊三個參數(shù),前兩個是已有的文件名,最后一個是生成的結(jié)果
我把圖片和 cds-name.txt   silkcds.fa   兩個文件都傳上去了,我的目的是(如上傳的圖片所示)把cds-name.txt   的一些基因的名字
比如“BGIBMGA000062-TA”
在silkcds.fa   文件中找到 BGIBMGA000062-TA的名字以及它的全部序列,比如是:

>BGIBMGA000062-TA  cds:novel  sequence:nscaf1071:1239819:1245122:+  gene:BGIBMGA000062  protein:BGIBMGA000062-PA
ATGAAGTTAGTTCAGTTTTCATACAAAGATAGTCCAAAAAATATACGTGT
GGGCTACCTGGAAGGAGATGATATTGTAGATATTAATAAGGCGGACTCCA
GTTTGCCGACCACTTTGCTCCAAATACTCAGGAATGGAGACTTAGAAAAA
GTGAAGAAGTTGAAATCAACAAAACCAGCAACTATACCACTATCATCAGT
CACTCTAACTGCACCCATACATGGTGTAGATAAAATCCTCTGTATCGGCT
TGAACTACAAGGATCACTGCCAAGAGCAGAATCTCACCCCACCTCCTGTG
CCGATGGTGTTCAGTAAATTTTCAAGCACCATCATTGGACCTGATCAGCC
TGTTAGGATCAGAACTGATGTTACTAAGAAGGTGGACTGGGAGGTGGAGC
TGTGCGTGGTGGTGGGGCGCGAGGCCAGCTGCGTGCGCGAGGAGGACGCG
CTGCAGCACGTGGCCGGGTACACCGTCGCGCAGGACATCAGCGCCAGGGA
CTGGCAGAAAGAGAAGAACATGGGGCAGTTCCTGCTAGGGAAGTCCATGG
ACACGTTCTGTCCGCTGGGCCCGTGCGTGCTGACGAGCGACGAGGTGGGC
GCGGCCGTGGAGCTGCGCGTGTCCTGCTCGCTCAACGGGGTCCTCAAGCA
GAGCAGCAGCACGGCGCAGCTAGTGCACTCCATCCCGAGCCTGCTGCACA
GGATCTCCTCCGTGATGACCCTGGTCCCCGGCGACCTGATCCTGACGGGC
ACCCCGGGGGGCGTGGGCATGTACCGGCAGCCCCCGGAGTACCTGCAGCC
CGGGGACGTGCTCACCAGCGAGATCGAGAAGATCGGCGCCTTCGACGTTC
GCATCGAGAAGTTTTAG


把這些輸入到文件cds-sqe.txt中

問題.jpg (227.81 KB, 下載次數(shù): 76)

圖片

圖片

文件.rar

695.85 KB, 下載次數(shù): 51

參數(shù)里的2個文件

論壇徽章:
0
2 [報告]
發(fā)表于 2010-03-19 09:48 |只看該作者
本帖最后由 longbow0 于 2010-03-19 09:54 編輯

沒看到圖,你是不是想從一個 fasta 文件 中找到含有指定字符串的序列,然后輸出到文件中?

  1. # 部分代碼

  2. # 讀fasta文件
  3. my $o_seqi = Bio::SeqIO->new(
  4.     -file => 'silkcds.fa',
  5.     -format => 'fasta',
  6. );

  7. # 輸出fasta文件
  8. my $o_seqo = Bio::SeqIO->new(
  9.     -file => ">cds-seq.txt",
  10.     -format => 'fasta',
  11. );

  12. # 在 description 中查找字符串 $cds_name
  13. while (my $o_seq = $o_seqi->next_seq) {
  14.     if ($o_seq->description =~ /$cds_name/ ) {
  15.         $o_seqo->write_seq($o_seq);
  16.     }
  17. }
復(fù)制代碼
另外,最好用

  1. use strict;
  2. use warnings;
復(fù)制代碼

論壇徽章:
0
3 [報告]
發(fā)表于 2010-03-19 09:49 |只看該作者
回復(fù) 1# aids260


    不知道你想說些啥。。。最好是能表達(dá)清楚點,把文件的數(shù)據(jù)格式也貼出來,然后遇到什么問題 。

論壇徽章:
0
4 [報告]
發(fā)表于 2010-03-20 22:13 |只看該作者
回復(fù) 2# longbow0


    我把圖片上傳了,我的目的是想從指定fasta文件中找出指定名字的基因序列,把它輸出到指定文件中!  謝謝了啊,再幫我看一下啊

論壇徽章:
0
5 [報告]
發(fā)表于 2010-03-20 22:16 |只看該作者
回復(fù) 3# toniz


    麻煩幫我看一下

論壇徽章:
0
6 [報告]
發(fā)表于 2010-03-20 22:20 |只看該作者
本帖最后由 longbow0 于 2010-03-20 22:24 編輯

看看 Bio::SeqIO, Bio::Seq

  1. while (my $o_seq = $o_seqi->next_seq) {
  2.      if ($o_seq->id =~ /$cds_name/ ) {
  3.          $o_seqo->write_seq($o_seq);
  4.      }
  5. }
復(fù)制代碼

論壇徽章:
0
7 [報告]
發(fā)表于 2010-03-28 12:09 |只看該作者
學(xué)習(xí)著寫了一個,不知道對不對;
  1. use strict;
  2. use warnings;
  3. use 5.010;

  4. (my $input1,my $input2,my $output)=@ARGV;
  5. open I1,"$input1"||die"$!";
  6. open I2,"$input2"||die"$!";
  7. open O,">$output"||die"$!";

  8. my @cds=<I1>;

  9. $/="";
  10. my $lines=<I2>.">";

  11. foreach (@cds) {
  12. chomp;
  13. print O $1,"\n" if $lines~~/($_.*?)>/s;
  14. }
  15. close I1;
  16. close I2;
  17. close O;
復(fù)制代碼

論壇徽章:
0
8 [報告]
發(fā)表于 2010-03-29 11:01 |只看該作者
本帖最后由 toniz 于 2010-03-29 11:02 編輯

回復(fù) 1# aids260


    其實樓主你的代碼可以實現(xiàn)這個功能的。不過有點小毛病而已。改改就Ok了。
  1. foreach $n(@name){
  2. $d=$n;   
  3. $d =~s/\s+//g;
復(fù)制代碼
這里加個去空格的。我用perl,是很不相信chomp這東東的。

然后
  1.         if($d eq $1){
  2.           $b=~s/>$//;
  3.                        $b=">".$b;
  4.                        print O $b;
復(fù)制代碼
要輸出的是 $b 不是 $i

改這兩個地方就可以輸出到數(shù)據(jù)了。

論壇徽章:
0
9 [報告]
發(fā)表于 2010-06-24 18:26 |只看該作者
回復(fù) 8# toniz


    謝謝你,你說的就是問題之所在!
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP