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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12
最近訪問板塊 發(fā)新帖
樓主: 賽萌
打印 上一主題 下一主題

急急急!提取最長序列 [復制鏈接]

論壇徽章:
307
程序設(shè)計版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
11 [報告]
發(fā)表于 2015-09-28 18:08 |只看該作者
本帖最后由 sunzhiguolu 于 2015-10-02 15:45 編輯

回復 9# 賽萌
    抱歉, 在看問題的時候理解的有問題. 我將代碼修改了一下, 再試試...
  1. #!/usr/bin/perl
  2. use 5.010;
  3. use strict;
  4. use warnings;

  5. sub set_or_get_last_id{
  6.         state $last_id;
  7.         $last_id = shift if (@_);
  8.         $last_id;
  9. }

  10. my %keys;
  11. while (<>){
  12.         chomp;
  13.         my @a_line = split /\s+/;
  14.         my (undef, $id) = (@a_line);
  15.         if (m/^>/ and !(exists $keys{$id})){
  16.                 set_or_get_last_id($id);
  17.                 $keys{$id} = undef;
  18.         }else{
  19.                 my $current_str = $a_line[0];
  20.                 my $last_id = set_or_get_last_id();
  21.                 $keys{$last_id} = $current_str if (length($current_str) > length($keys{$last_id}));
  22.         }
  23. }

  24. while (my ($id, $value) = each %keys){
  25.         say "> $id\n$value";
  26. }
復制代碼

論壇徽章:
2
15-16賽季CBA聯(lián)賽之山西
日期:2016-03-03 17:51:32CU十四周年紀念徽章
日期:2016-03-21 18:45:39
12 [報告]
發(fā)表于 2015-09-28 18:14 |只看該作者
回復 11# sunzhiguolu

我直接把這一行($name, $id) = ($a_line[0], $a_line[1]);改成了($name, $id) = ($a_line[1], $a_line[1]);
   應(yīng)該沒錯吧?

論壇徽章:
95
程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
13 [報告]
發(fā)表于 2015-09-28 21:09 |只看該作者
我還是覺得這個應(yīng)該用 Bio::Seq 來讀取。

論壇徽章:
95
程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
14 [報告]
發(fā)表于 2015-09-28 21:48 |只看該作者
本帖最后由 MMMIX 于 2015-09-28 21:48 編輯

回復 1# 賽萌


    試試這個用 Bio::SeqIO 的版本:

#!/usr/bin/perl

use strict;
use warnings;

use v5.14;
use autodie;
use Data::Dumper;

use Bio::SeqIO;

my $in  = Bio::SeqIO->new( '-format' => 'fasta', '-file' => $ARGV[0] );
my $out = Bio::SeqIO->new( '-format' => 'fasta', '-fh'   => \*STDOUT );

my %longest;

while (my $seq = $in->next_seq()) {
  my $id = $seq->id();
  $id =~ s/\.[^.]+$//;
  if (not exists $longest{$id} or $seq->length() > $longest{$id}->length()) {
    $longest{$id} = $seq;
  }
}

for my $seq (values %longest) {
  $out->write_seq($seq);
}

論壇徽章:
307
程序設(shè)計版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
15 [報告]
發(fā)表于 2015-09-28 22:49 |只看該作者
本帖最后由 sunzhiguolu 于 2015-09-28 22:57 編輯

回復 14# MMMIX
    向您請教一個問題,
use Bio::SeqIO;
如何去學習模塊的知識? 我再具體的問一下怎樣才能知道我在執(zhí)行哪些操作的時候去學習哪些相應(yīng)的模塊? 看到您每次使用一些新的技術(shù)的時候總是感覺很新奇, 但是只能停留在欣賞的狀態(tài), 想學習根本無從下手的感覺, 可能現(xiàn)在的我即使您向我說明也可能不太明白, 您能否指點一下...
   

   

論壇徽章:
95
程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
16 [報告]
發(fā)表于 2015-09-28 22:59 |只看該作者
本帖最后由 MMMIX 于 2015-09-28 23:00 編輯

回復 15# sunzhiguolu


    這還真沒有什么速成的方法,只能慢慢積累。你對哪方面感興趣,就多看哪方面的(好)代碼、資料,然后自然的了解的相關(guān)知識、模塊就越來越多。


當然,對于具體的模塊,就用 perldoc 查看其文檔,例如 perldoc Bio::SeqIO。

論壇徽章:
307
程序設(shè)計版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
17 [報告]
發(fā)表于 2015-09-28 23:03 |只看該作者
回復 16# MMMIX
    我懂了, 感謝您的幫助及支持... 多謝多謝...

   

論壇徽章:
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
18 [報告]
發(fā)表于 2015-09-29 09:55 |只看該作者
本帖最后由 b114213903 于 2015-09-29 09:55 編輯

回復 14# MMMIX


    if判斷很好,哈哈,學習了!


有一個問題是這樣輸出的序列名還是原名,與樓主要求稍有差異!

可以加上兩行代碼:
  1. $seq->id($id);                                #修改序列名(如: EM.1.1  => EM.1)
  2. $seq->desc('');                                #刪除序列注釋信息(如:EM.1 LK029911.1 +)
復制代碼
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(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