忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


2024/12/21 13:18 |
FASTAシークエンスデーターをFASTAの名前から抽出する
FASTAシークエンスのいっぱい入ったファイルの中から、ある特定のFASTAシークエンスを抽出したい時につかえるプログラムを書いてみました。

ここまで書くには結構勉強した。

FASTAフォーマット
>1
ATGATATGAGGATGCGTAGTA
>2
AAAAATTTTGGGGCCCCC
>3
TTTTTCCCGTGTAGTGATGTGTCGTGCTGATCGTACGTCG

という遺伝子が入ったファイルがある。

その中から3のみを抽出したいときは、
>3
と書かれたファイルを用意して下のプログラムを実行すると。

FASTAフォーマットのファイルの中から
>3
TTTTTCCCGTGTAGTGATGTGTCGTGCTGATCGTACGTCG

だけを抽出してくれる。

今5万個とか扱っているのでこれを勉強して書く手間と5万個コピペする手間を考えたら
これを書くほうが楽チン。

プログラムの内容は何でもいいから目的が果たせたらいいという代物なので
褒められたものではないだろう。

ここから下がプログラム

#!/usr/bin/perl -w
use strict;
use warnings;
use POSIX;

# enter the fastafile to hash.
my ($fastafile) = @ARGV;
open FASTA, "<$fastafile";
my %hash=(); # initializes a hash

while (<FASTA>)
{
 if ($_ =~ /^>/)
 {

        my $header = $_;
        $header =~ s/\s//g;
        my $read_id = $_;
      
        $hash{$header}{name}=$read_id;
        my $line = <FASTA>; 
        $hash{$header}{sequence}= $line;
 }
}
close FASTA;



my $counter = 0;

my $name = <STDIN>;

open (FASTANAME, $name);


while (<FASTANAME>)
{

 my $filename =  $_;

  $filename =~ s/\s//g;
my $header = $filename;
if (exists $hash{"$header"})
  {
    $counter = $counter + 1;
            print "$hash{$header}{name}";
        print "$hash{$header}{sequence}";
  }
}
close (FASTANAME);

print "$counter fasta sequences are here\n";
PR

2007/11/23 06:22 | Comments(0) | TrackBack() | パールプログラム(Perl)

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<クローチェ | HOME | Yamanaka stem cells>>
サンカラショッピングモール / ダイエット / ビューティー・美容 / 布団・寝具 / 日用品・雑貨 / 家電製品 / 健康・ヘルスケア / 食べ物 / 飲み物 / アクセサリー / 時計 / ファッション / ブランド / ペット用品 / コスプレ / もしもの人気商品100選 / 新着さんから100 / 送料無料ショップ / もちもちロール / 送料無料ショップ / emsダイエット / ホットシャワー3 /
忍者ブログ[PR]