1

DNA配列に特定のパターンがある場合、コーディングアミノ酸を検索したいと考えています。たとえば、パターンは次のようになります。ATAGTA。したがって、次の場合:

入力ファイル:

>sequence1
ATGGCGCATAGTAATGC
>sequence2
ATGATAGTAATGCGCGC

理想的な出力は、各アミノ酸の回数がパターンによってコード化された表です。ここで、sequence1 ではパターンは 1 つのアミノ酸のみをコードしますが、sequence2 では 2 つをコードします。このツールを機能させて、数千のシーケンスに拡張したいと考えています。私はこれをどのように行うかを考えてきましたが、パターンとは異なるすべてのヌクレオチドを置き換え、残っているものを翻訳し、コード化されたアミノ酸の要約を取得することしか考えていませんでした.

このタスクが既に利用可能なツールで実行できるかどうか教えてください。

ご協力いただきありがとうございます。万歳、ベルナルド


編集(私の投稿で発生した混乱のため):

元の投稿と sequence1 と sequence2 も忘れてください。

こんにちは、混乱させて申し訳ありません。入力 fasta ファイルは、「FeatureExtract」ツール ( http://www.cbs.dtu.dk/services/FeatureExtract/download.php ) を使用して GenBank ファイルから派生した *.ffn ファイルであるため、それらが既に含まれていることが想像できます。フレーム (+1) であり、+1 とは異なるフレームでコード化されたアミノ酸を取得する必要はありません。

次の配列がコードしているアミノ酸を知りたい:

AGAGAG
GAGAGA
CTCTCT
TCTCTC

取得したいコーディング アミノ酸の固有の文字列は、3 つの AG、GA、CT、または TC の繰り返し、つまりそれぞれ (AG)3、(GA)3、(CT)3、および (TC)3 です。プログラムが 4 つ以上の繰り返しのコーディング アミノ酸を取得することを望んでいません。

ありがとう、ベルナルド

4

2 に答える 2

1

少なくとも開始する必要があるコードを次に示します。たとえば、次のように実行できます。

./retrieve_coding_aa.pl file.fa ATAGTA

の内容retrieve_coding_aa.pl:

#!/usr/bin/perl 

use strict;
use warnings;

use File::Basename;
use Bio::SeqIO;
use Bio::Tools::CodonTable;
use Data::Dumper;

my $pattern = $ARGV[1];

my $fasta = Bio::SeqIO->new ( -file => $ARGV[0], -format => 'fasta');

while (my $seq = $fasta->next_seq ) {

    my $pos = 0;

    my %counts;

    for (split /($pattern)/ => $seq->seq) {

        if ($_ eq $pattern) {

            my $dist = $pos % 3;

            unless ($dist == 0) {

                my $num = 3 - $dist;

                s/.{$num}//;

                chop until length () % 3 == 0;
            }

            my $table = Bio::Tools::CodonTable->new();

            $counts{$_}++ for split (//, $table->translate($_));
        }

        $pos += length;
    }

    print $seq->display_id() . ":\n";

    map {

        print "$_ => $counts{$_}\n"
    }
    sort {

        $counts{$a} <=> $counts{$b}
    }
    keys %counts;

    print "\n";
}

サンプル入力を使用した結果は次のとおりです。

sequence1:
S => 1

sequence2:
V => 1
I => 1

このBio::Tools::CodonTableクラスは、非標準のコドン使用表もサポートしています。idポインターを使用してテーブルを変更できます。例えば:

$table = Bio::Tools::CodonTable->new( -id => 5 );

また:

$table->id(5);

これらのテーブルを調べる方法などの詳細については、次のドキュメントを参照してください: http://metacpan.org/pod/Bio::Tools::CodonTable

于 2013-11-13T13:24:32.803 に答える