3

こんにちは、新しく構築されたバイオインフォマティクス アルゴリズムを Hadoop と Java で実装しようとしています (実装できるかどうかはわかりません)。Hadoop でアルゴリズムを実装するために、インターネット上で多くのことを検索しました。しかし、私が見つけたのは「並列タスクを特定し、hadoop で実行する」ことだけです。インターネット経由で Java を使用した Hadoop の適切なリソースに案内していただければ、単語数以外の確かな例を見つけることができます。Javaはよく知っていますが、hadoopは初めてです。どんな助けでも大歓迎です。

これが私がやりたいことです

ランダム化された文字行 (A、G、T、C) を含む非常に大きなテキスト ファイル (約 100 MB) があります。ランダム化された A、G、T、C の長いシーケンスは、たとえば ( ATCGAGC)。このシーケンス k-mer は、この「r」というテキスト ファイルの多くの行にあるかもしれません。

次のタスクを実行する必要があります

  1. R (セット/ファイル全体) のテキスト (r) のすべての行で、さまざまな k-mer の位置を特定します。

  2. 特定の r における k-mer の位置を追跡する必要があります。

  3. さまざまな r の k-mer を比較するために使用される 2 つのパラメーターがあります。

  4. 2 つの 'r' の k-mer が上記のパラメーター比較を満たす場合、隣接セット N を更新する必要があります

興味がある場合は、これが疑似コードです。

Given k, ĥ, ȇ
    1.  Make K  by extracting all possible kmers  from Reads
    2.  for all reads r belongs R do
            construct Gk[r] by scanning through r
            end for
    3.  for all k ε K do
                   for all read pairs (r,s) ε Gk × GK
                    if h(r,s) ≥ ĥ  and dk < ȇ h(r,s) then
                         update the N
                    end if
            end for
        end for

       k is k-mer
       K is set of all k
       ĥ minimum overlap distance
       ȇ maximum mismatch tolerance
       N neighbor set
       h(r,s)   overlap length of r and s wrt k
       d(r,s) distance between r and s
4

2 に答える 2

1

まず、この問題は「集合類似性」問題のように見えます。mapreduce プラットフォームでさまざまな有効性を持つそれらの束があります。ここを見始めるhttp://infolab.stanford.edu/~ullman/mmds.html chapter3. ただし、あなたの主なタスクが Hadoop を学ぶ場合のみです。そうでなければ...

次に、100MB は Hadoop の非常に少量のデータです。確かに、hadoop はまったく必要ありません。2 つ以上の並列タスクが起動されることさえありません (デフォルトでは、hadoop は 64MB ごとに 1 つのタスクを起動します)。純粋な Java で任意の類似性アルゴリズムを実装でき、はるかに高速に動作します。

于 2012-10-30T07:38:06.027 に答える
0

入力ファイルでパターンを検索しているように見えます。Grep.javaと関連ファイルを見てください。OPの問題を正確に解決するわけではありませんが、最も近いものです。

于 2012-10-30T07:00:13.010 に答える