Phenotips 项目源码分析 [0]

PhenoTips™ is a software tool for collecting and analyzing phenotypic information for patients with genetic disorders.git

Phenotips是一款分析基因疾病的Web工具。以它的源码做为起点,我会随看随写一些经验下来与你们分享。因为我不是作生物信息的,因此里面会穿插不少相关的基本知识,行家直接跳过github

项目源码托管在Github中,从首页底下就能够找到连接数据库

Clone的过程比较久,主要里面包含了一些数据库。项目很活跃,很赞。后端

clipboard.png

Phenotips.Build.0

按照README里的步骤走下来,JDK,Maven,git clone,调高Maven内存,mvn install ,就能够等着啦。api

表型 ( phenotype )
表型,又称表现型,对于一个生物而言,表示它某一特定的物理外观或成分。一我的是否有耳珠、植物的高度、人的血型、蛾的颜色等等,都是表型的例子。
表型可分为连续变异或不连续变异的。前者好比身高、智力,后者好比血型(ABO那些)、卷舌。网络

基因突变 ( genetic disorder )
基因突变很容易理解,就是遗传过程当中,一个或多个基因位的异常变化,这种变化有可能形成一些很罕见的疾病。这里指的罕见几万,几百万分之一这种几率。maven

我猜你看到这里,mvn install还没结束。因此这里再作一个建议:使用intelliJ打开Phenotips工程,打开的时候选择maven项目。固然,用intelliJ打开之后依然会maven install一堆东西。此时建议你把它打开,放到一个好的网络环境内,而后去吃个饭。函数

Quick Phenotype Search

使用intelliJ打开工程之后就能够发现这是一个规划的挺好的项目。工具

clipboard.png

components, distribution, resources划分的很明确。逻辑模块都在components里,每个模块基本都按这样组织。api, 各类ui。ui

clipboard.png

由表及里,咱们找一个入口切入来开始分析之旅。咱们来挑选Quick Phenotype Search做为第一步。这个功能的主要做用是把医生输入的症状文字转换为HPO(Human Phenotype Ontology)

clipboard.png

中文人类表型标准用语 ( Human Phenotype Ontology )
HPO是一套描述人类疾病所致的异常表型的标准词语集,目前已经有一万多个条目。也有中国的团队在作相应的中文版翻译。

这里,当用户输入文字的时候会弹出autocomplete的窗口,因此天然也会有后端的API与之对应。咱们打开Chrome Dev Tools看一下就发现这里用到的API是

clipboard.png

GET bin/get/PhenoTips/SolrService

q:fever
defType:edismax
spellcheck.collate:true
spellcheck:true
lowercaseOperators:false

几个参数有用的基本就是那个q啦。API里面还有SolrService,看来使用了Solr做为搜索引擎。那咱们就去IntelliJ里去找Solr和这堆参数就好,挑个最难重名的来搜就好,就lowercaseOperators了。

clipboard.png

找到4个有用的,再看看后面所在文件,就最后那个啦。简单的就跟到了search这个函数,AbstractOBOSolrVocabulary,DefaultVocabularyTermSuggestionsResource,xwiki这种看起来很牛的库。

相关文章
相关标签/搜索