「perl1」の編集履歴(バックアップ)一覧はこちら

perl1」(2011/10/29 (土) 15:56:43) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

まずはファイルを開く事から始めましょう 適当にファイルを作ります seq1 aaaaaaaaaaaaaa seq2 bbbbbbbbbbbbbbbbb こんな感じので良いですので適当に作って&bold(){”改行コードはUNIX”※}で適当に名前をつけて保存して下さい ここではseq.fasとします (本来のfastaファイルでは、配列名の前に>がつくんだけど、このwikiだと変な風になっちゃうのでのけといた) ※Windows,Macといったその他の改行コードではうまく読み込めません もちろん全角文字やスペースが入っていてもいけません んで、別なファイルを使ってperlのコードを書きます ここではopen.plとします 最初はよく分からないと思うのでとりあえずまねして書いて下さい use strict; use warnings; my (@array); open(FILE, "seq.fas") or die "$!"; while (my $line=<FILE>){ chomp $line; push(@array,$line); } close (FILE); print "@array¥n"; 書けたらターミナルに移って perl open.pl と打ち込んでエンターして下さい そしたら seq1 aaaaaaaaaaaaaa seq2 bbbbbbbbbbbbbbbbb みたいな出力が出ます これが出たら成功です うまく行かない場合 ¥(バックスペース)が悪さをしてる場合があります コピペでうまく行かないときは自分で書き写して見て下さい それでもうまく行かない場合は、perlには様々な書き方がありますので、別の書き方を探して試して下さい 微妙な差でうまく行くときと行かないときがあります ---- コードの適当な説明 最初の二行、 use strict; use warnings; は、「エラーが出た時は教えてね」という表示 その次の my (@array); は@arrayっていうのを使うよ という表示 @array perlで使う変数(コード書いている人が好きな文字や数字を当てはめる)のうちの配列というやつで いくつかの変数をそれぞれの区切り(要素)に代入できるというもの |要素1|要素2|・・・|要素n| それぞれの要素には異なる数や文字を代入できる print "@array¥n"; で@arrayの中身を表示する事が出来る(¥nは改行という意味) ---- 今回のコードでは"seq.fas"というファイルから一行ずつデータを取得し、 @arayという配列に代入している open(FILE, "seq.fas") or die "$!"; while (my $line=<FILE>){ chomp $line; push(@array,$line); } close (FILE); " "の中身を変える事で、様々なファイルを読み込む事が出来る もし読み込みたいファイルがフォルダ(ここではtmpとする)に入っていた場合には open(FILE, "&bold(){./tmp/}seq.fas") or die "$!"; とするとよい また、seq_1.fas,seq_2.fas,seq_3.fasみたいに続き番号になったファイルを次々に読み込みたい場合は use strict; use warnings; my (@array,$i,$file); for($i=1;$i<4;$i++){ &bold(){$file='seq_'.$i.'.fas';} open(FILE, $file) or die "$!"; while (my $line=<FILE>){ chomp $line; push(@array,$line); } close (FILE); print "@array¥n"; } みたいにするとよい
まずはファイルを開く事から始めましょう 適当にファイルを作ります seq1 aaaaaaaaaaaaaa seq2 bbbbbbbbbbbbbbbbb こんな感じので良いですので適当に作って&bold(){”改行コードはUNIX”※}で適当に名前をつけて保存して下さい ここではseq.fasとします (本来のfastaファイルでは、配列名の前に>がつくんだけど、このwikiだと変な風になっちゃうのでのけといた) ※Windows,Macといったその他の改行コードではうまく読み込めません もちろん全角文字やスペースが入っていてもいけません んで、別なファイルを使ってperlのコードを書きます ここではopen.plとします 最初はよく分からないと思うのでとりあえずまねして書いて下さい use strict; use warnings; my (@array); open(FILE, "seq.fas") or die "$!"; while (my $line=<FILE>){ chomp $line; push(@array,$line); } close (FILE); print "@array¥n"; 書けたらターミナルに移って perl open.pl と打ち込んでエンターして下さい そしたら seq1 aaaaaaaaaaaaaa seq2 bbbbbbbbbbbbbbbbb みたいな出力が出ます これが出たら成功です うまく行かない場合 ¥(バックスペース)が悪さをしてる場合があります コピペでうまく行かないときは自分で書き写して見て下さい それでもうまく行かない場合は、perlには様々な書き方がありますので、別の書き方を探して試して下さい 微妙な差でうまく行くときと行かないときがあります ---- コードの適当な説明 最初の二行、 use strict; use warnings; は、「エラーが出た時は教えてね」という表示 その次の my (@array); は@arrayっていうのを使うよ という表示 @array perlで使う変数(コード書いている人が好きな文字や数字を当てはめる)のうちの配列というやつで いくつかの変数をそれぞれの区切り(要素)に代入できるというもの |要素1|要素2|・・・|要素n| それぞれの要素には異なる数や文字を代入できる print "@array¥n"; で@arrayの中身を表示する事が出来る(¥nは改行という意味。これがだめなときはバックスペースを使ってみてください) ---- 今回のコードでは"seq.fas"というファイルから一行ずつデータを取得し、 @arayという配列に代入している open(FILE, "seq.fas") or die "$!"; while (my $line=<FILE>){ chomp $line; push(@array,$line); } close (FILE); " "の中身を変える事で、様々なファイルを読み込む事が出来る もし読み込みたいファイルがフォルダ(ここではtmpとする)に入っていた場合には open(FILE, "&bold(){./tmp/}seq.fas") or die "$!"; とするとよい また、seq_1.fas,seq_2.fas,seq_3.fasみたいに続き番号になったファイルを次々に読み込みたい場合は use strict; use warnings; my (@array,$i,$file); for($i=1;$i<4;$i++){ $file='seq_'.$i.'.fas'; @array=(); open(FILE, $file) or die "$!"; while (my $line=<FILE>){ chomp $line; push(@array,$line); } close (FILE); print "@array¥n"; } みたいにするとよい。つまり$file='seq_'.$i.'.fas';として$iだけ変数にして、forループを使ってseq_1.fas,seq_2.fas,seq_3.fas・・・・っていう風に数字をかえていき、対応するファイルを開いていく訳です。なんかコード間違ってました。ごめんなさい。毎回新しいファイルを開く前に@array配列をちゃんと初期化するんよ、2011.10.29訂正

表示オプション

横に並べて表示:
変化行の前後のみ表示: