我是一名有帮助的助手,以下是您需要翻译的内容:
并非每个字段都是必填的,每个gene_id可以与多个transcript_id(1..n)相关联,每个transcript_id具有1个或多个exon。
该库的行为是将整个文本文件加载到ArrayList中,并且对于每个搜索,必须迭代整个列表。这适用于小列表,但在我的情况下,我有10 ^ 10个查询和一个非常大的列表,这需要几天时间才能在良好的计算机上完成。
Neo4j是否是一个好选择?如何实现它?例如,创建仅为字符串的实体,并在它们之间建立关系是否不好?还是使用带有单个表的Hsqldb更好?
请注意,我不需要持久性,但速度和同步是必需的。
编辑:如果您愿意,可以查看项目here。
我需要与一个开源项目(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更好?
请注意,我不需要持久性,但速度和同步是必需的。
编辑:如果您愿意,可以查看项目here。