私はたくさんの (何百万もの) 小さな実験からのログを持っています。
各ログには、エントリのリスト (数十から数百) が含まれています。各エントリは、タイムスタンプとイベント ID です (数千の一意のイベント ID があり、それぞれがログに数回発生する場合があります)。1 つの実験のログの例を次に示します。
1403973044 アルファ 1403973045 ベータ版 1403973070 ガンマ 1403973070 アルファ 1403973098 デルタ
多くの実験に共通するシーケンスを見つける必要があります。
シーケンスは、互いに続く複数 (少なくとも 2 つ) のイベント ID です。
アルファ ベータ ガンマ
共通シーケンスは、少なくとも 2 つのログで見つけることができるシーケンスです。ログ
アルファ ベータ ガンマ デルタ イプシロン
と
イオタ ベータ ガンマ イプシロン カッパ
共通のシーケンスがあります:
ベータ ガンマ イプシロン
(明らかに、ここで最も長い一般的なシーケンスを探しています。)
頻繁に発生する大きなシーケンスに興味があります。カットオフ値は事前にわかりません。たとえば、出現頻度の上位 1000 (または上位 30%) のうち、長さの上位 10 (または上位 100 シーケンス) が必要です。(この基準はランダムに与えられ、データ処理を容易にするためにほぼ任意に変更できます。)
スケーラブルな方法でこれを行う方法に関するアドバイスはありますか?
所有するコードの量を最小限に抑えたいと考えていますが、独自のプログラムを使用してソリューションを取得したくはありません。
…バイオインフォマティクスでも、やや似たような問題が解決されていると思います。しかし、彼らは私よりずっと短いアルファベットを持っています :-)違います! プロテオミクスは、はるかに大きなアルファベットを扱います! (@JayInNyc に感謝)