インデックスを作成したいファイル (具体的には fasta ファイル) があるので、ファイル内の部分文字列をすばやく見つけて、元の fasta ファイル内の場所を見つけることができます。
これは多くの場合、Trie または部分文字列配列を使用して簡単に実行できますが、残念ながら、インデックスを作成する必要がある文字列は 800 MB 以上であるため、メモリ内でそれらを実行することは受け入れられないため、これを作成する合理的な方法を探しています。メモリ使用量を最小限に抑えて、ディスク上にインデックスを作成します。
(明確にするために編集)
私が関心があるのはタンパク質のヘッダーだけなので、関心のある最大のデータベースの場合、これは約 800 MB のテキストになります。
入力文字列に基づいて、O(N) 時間以内に正確な部分文字列を見つけられるようにしたいと考えています。これは 32 ビット マシンで使用できる必要があります。これは、64 ビット マシンを使用することが想定されていないランダムな人々に出荷されるためです。
行内の任意の単語区切りに対して、行の最後までインデックスを作成できるようにしたいと考えています (ただし、行の長さは数 MB になる場合があります)。
これにより、何が必要であり、現在の解決策が明らかにされていない理由が明確になることを願っています。
また、これはJava内から実行する必要があり、さまざまなオペレーティングシステムのクライアントコンピューターで実行する必要があるため、OS固有のソリューションを使用できず、プログラムソリューションでなければならないことも付け加えておく必要があります.