忍者ブログ
[PR]
×

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


2024/03/19 14:52 |
ちょっと苦労したこと |がスプリットできない
パールを使ってテキストを少しいじってから解析しているのだが、ちょっと理由が分らず困っていた事があった。

プログラミングは慣れていないので本当に頭がいたい。

しかし、ちょっと調べてみたい。と言う時にバイオインフォマジシャンに頼むわけにもいかない部分も多い。

個々の問題は誰かに聞いて解決すると言うものでもないときもある。

たぶんプログラミングが本職の人だったらわけもなくやってしまうのだろうけど、
フォーマットが違うデーターベースを扱う時に時々つまづいてしまう。

今回、JGIのデーターを使って解析しようとしたら、フォーマットが異なっていた。

データーがタブではなく|で区切られていたのだ。

これのせいでうまく自分の調べたい名前が拾えない。
なんでだろ。
タブだとsplitとう命令で分割できるのに、|は分割できない。

しかし、UNIXのコマンドを使ってうまく処理できた。

と言うか無理やり処理した。

CUTと言うコマンド。

CUT -C 9- ファイル名 > アウトプット名
とやると各行の9文字目以降から書き出してくれる。
つまり、9文字より前をCUTしてくれる。

まあいまだに|のsplitの仕方は分らないのだが、CUTでいらないところを削って無理やり使いました。
PR

2008/01/17 04:04 | Comments(6) | TrackBack() | パールプログラム(Perl)
クラスタリングされたものの中から最も長い配列を抽出するプログラム
最もクラスター数の多い順にCLUTER_IDナンバーをつけて吐き出します。


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


#################################################
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 (my $name_cluster = <FASTANAME>)

{

$counter = $counter + 1;

if ($counter < 10)
{print "\nCLUSTER_ID_0000$counter\n"
}elsif ($counter < 100)
{print "\nCLUSTER_ID_000$counter\n"
}elsif ($counter < 1000)
{print "\nCLUSTER_ID_00$counter\n"
}elsif ($counter < 10000)
{print "\nCLUSTER_ID_0$counter\n"
}

my @filename = split (" ", $name_cluster);

my @count = @filename;
if (@count <= 1)
{
 exit;
}



my $header1 = ">$filename[0]";
  $header1 =~ s/\s//g;

if (exists $hash{"$header1"})
  {
            print "$hash{$header1}{name}";
        print "$hash{$header1}{sequence}";
 
 
}

}
close (FASTANAME);


2007/11/27 02:45 | Comments(0) | TrackBack() | パールプログラム(Perl)
クラスタリングされた遺伝子を抽出するプログラム
ブラストクラストを実行するとクラスタリングされた遺伝子の名前だけが吐き出される。

各行にはクラスタリングされた遺伝子の名前がリストアップされる。

これらのうち一番左側に書かれている遺伝子がクラスタリングされた最も長い配列。

クラスタリングされた遺伝子のうち最も長い遺伝子名のみを抽出するプログラムを書いてみた。

以下プログラム

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

my $counter = 0;

my $name = <STDIN>;

open (FASTANAME, $name);

while (<FASTANAME>)
{

 my @filename = split( " ", $_);
 my @count = @filename;
if (@count <= 1)
{
 exit;
}
print ">$filename[0]\n";

}
close (FASTANAME);

2007/11/24 01:56 | Comments(0) | TrackBack() | パールプログラム(Perl)

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