オープン ソース プロジェクト ( biojava ) を使用する必要がありますが、パフォーマンスに満足できず、時間をかけて改善したいと考えています。
たとえば、次のようにコーディングされたテキスト データベースがあります。
chrX Cufflinks exon 65175856 65175971 . . . gene_id "XLOC_002576"; transcript_id "TCONS_00004217"; exon_number "1"; gene_name "RP6-159A1.2"; oId "CUFF.3698.1"; nearest_ref "ENST00000456392"; class_code "p"; tss_id "TSS3873";
chrX Cufflinks exon 128986006 128986088 . . . gene_id "XLOC_002577"; transcript_id "TCONS_00004218"; exon_number "1"; oId "CUFF.3750.1"; class_code "u"; tss_id "TSS3874";
すべてのフィールドが必須というわけではなく、それぞれgene_id
が複数transcript_id
(1..n) に関連付けられている可能性があり、それぞれtranscript_id
に 1 つ以上の がありexon
ます。
ライブラリの動作は、テキスト ファイル全体を にロードすることArrayList
であり、検索ごとにリストを反復する必要があります。これは小さなリストではうまく機能しますが、私の場合、非常に大きなリストで 10^10 のクエリがあり、良いコンピューターでは数日かかります。
Neo4j は良い選択でしょうか? それを実装する良い方法は何ですか?たとえば、文字列のみのエンティティを作成し、それらの間に関係を作成するのは悪いことですか? それとも、単一のテーブルで Hsqldb を使用する方が良いですか?
永続性は必要ありませんが、速度と同期は必須であることに注意してください。
編集: 必要に応じて、ここでプロジェクトを見ることができます。