0

タンパク質配列のFASTAファイルがあります。シーケンス hxxhcxc がファイルに存在するかどうかを確認したいのですが、存在する場合はストレッチを出力します。ここで、h = 疎水性、c = 荷電、x = 任意の (残りを含む) 残基/秒。Perlでこれを行う方法は?

私が考えられるのは、疎水性、荷電、およびすべての残基の 3 つのアレイを作成することです。各配列を FASTA 配列を持つファイルと比較します。これ以上のことは思い浮かびません。特に秩序を維持する方法が重要です。私はPerl初心者なので、できるだけ簡単に説明してください。

PS: これは 1 つのシーケンスにすぎないため、コンテンツを .txt ファイルにコピーするだけで済みます。fasta ファイルを使用する必要はありません (この場合)。疎水性で荷電しているのが残基(アミノ酸)です。9 つの疎水性残基と 5 つの荷電した残基があります。おっしゃる通り大文字一文字のアミノ酸の名前です。そこで私がやりたいのは、タンパク質配列 (.txt ファイル/fasta ファイル) で、疎水性、任意、任意、疎水性、荷電、任意、荷電 (hxxhcxc) の順序で配列を見つけることです。私は自分の質問を再構築するのに苦労しました-今は少し良くなっていることを願っています.

4

2 に答える 2

2

私は Fasta ファイルには詳しくありませんが、ここでは正規表現が適しているように思えます。

言葉で

読み取り用のファイルの場合はopen、ファイルを 1 行ずつ処理して、指定した正規表現に一致するprint行のみを処理できます。if

コード内

use strict;
use warnings;
use autodie;

open my $fh, '<', 'file.fasta';           # Open filehandle in read mode

while ( my $line = <$fh> ) {              # Loop over line by line

    print $line                           # Print line if it matches pattern
      if $line =~ /h..hc.c/;              # '.' in a regular expression matches
                                          # (almost) anything
}

close $fh;                                # Close filehandle
于 2012-09-03T12:52:01.243 に答える