Skip to content

Latest commit

 

History

History
127 lines (67 loc) · 11.3 KB

README.md

File metadata and controls

127 lines (67 loc) · 11.3 KB

HPOLabeler

如何运行?

注:请在开始下面步骤前,在~/.bashrc文件的最后一行加上:

export PYTHONPATH=${PYTHONPATH}:[HPOLabeler的目录位置]

第一步:预处理(Pre-processing)

  1. http://compbio.charite.de/jenkins/job/hpo.annotations.monthly/下载基因-HPO标注文件ALL_SOURCES_ALL_FREQUENCIES_genes_to_phenotype.txt到目录data/annotation/raw。然后,运行src/preprocessing/extract_gene_id.py以提取文件的第一列(即entrez gene id),并将其写入一个.txt文件。接着,上传该文件内容到Uniprot ID Mapping Tool (http://www.uniprot.org/mapping/),选择选项From: Entrez Gene (Gene ID)To: UniProtKB,然后点击Submit按钮。在新的窗口中,选择左栏的Filter byReviewed Swiss-Prot,并点击页面中间的Download按钮,选择Format: Tab-separated并点击Go下载映射文件。将映射文件放入data/annotation/intermediate中,并更名为gene2uniprot.txt

  2. 运行src/preprocessing/create_annotation.py程序。程序将输出处理好的HPO标注文件。

  3. 重复上述两步,分别处理得到三个标注文件(比如2018-03-09、2019-04-15和2019-11-15)。

  4. https://bioportal.bioontology.org/ontologies/HP下载三个时期相对应的.obo文件,将其放在data/obo目录下。之后运行src/preprocessing/split_dataset.py。我们将得到:

    • 处理好的用于训练基础分类器的标注、用于训练排序学习的标注和用于测试的标注
    • 上面三个标注文件中的蛋白质标识符列表
    • 用来标注蛋白质的HPO term列表
    • 按照频率划分的各个小组内的HPO term列表

第二步:处理特征(Extracting Features)

STRING

  1. 打开https://string-db.org/,然后点击页面左上角的Version,在自动跳转到的新页面中选择合适的版本,并单击Address一栏中的链接。之后,点击新页面上方导栏的Download按钮,点击choose an organism下拉菜单,选择Homo sapiens。现在,点击INTERACTION DATA部分的9606.protein.links.XXX.txt.gz(XXX为版本),下载蛋白质互作数据。最后,点击ACCESSORY DATA部分的mapping_files (download directory),进入ftp页面,点击uniprot_mappings/目录,下载属于人类(可能是开头为9606或者文件名中有human字样)的压缩文件。上述两个文件都下载至data/feature/STRING/raw目录下。

  2. 运行src/feature/STRING/string.py程序,得到在data/feature/STRING/clean目录下的json格式的文件。

GeneMANIA

  1. http://genemania.org/data/current/Homo_sapiens.COMBINED/下载COMBINED.DEFAULT_NETWORKS.BP_COMBINING.txt文件。然后再从http://genemania.org/data/current/Homo_sapiens/中下载identifier_mappings.txt文件。

  2. 运行src/feature/GeneMANIA/genemania.py,得到在data/feature/GeneMANIA/clean下的json格式文件。

BioGRID

  1. https://downloads.thebiogrid.org/BioGRID/Release-Archive中选取合适的版本,并点击链接进入。在新页面中下载BIOGRID-ALL-XXX.tab2.zip(XXX为版本号)。然后在https://downloads.thebiogrid.org/BioGRID/External-Database-Builds/中下载UNIPROT.tab.txt。这两个文件都放到data/feature/BioGRID/raw下。

  2. 运行src/feature/BioGRID/biogrid.py,得到在data/feature/BioGRID/clean下的json文件。

GO Annotation

  1. 首先,在https://www.ebi.ac.uk/GOA/downloads页面的Annotation Sets表格的Human一行中,点击某一个链接(若要下载当前最新数据,点击Current Files,否则点击Archive Files),然后下载合适版本的.gaf文件。

  2. 若要下载最新版的GO的.obo文件,可从http://geneontology.org/docs/download-ontology/中下载;若要下旧版,则可以从https://bioportal.bioontology.org/ontologies/GO下载。

  3. 运行src/feature/GO_annotation/go_annotation.py,得到在data/feature/GO_annotation/clean目录下的数据。

Trigram

  1. data/dataset/protein中的三个蛋白质标识符列表中所有的蛋白质标识符上传至https://www.uniprot.org/mapping/,并且选择FromUniProtKB AC/IDToUniProtKB,再点击Submit。在新页面中,点击页面中间的Download按钮,选择格式为FASTA (canonical),点击Go。将下载得到的fasta序列文件放到data/feature/Trigram/raw中。

  2. 运行src/feature/Trigram/trigram.py,得到在data/feature/Trigram/clean中的输出文件。

InterPro

  1. http://ftp.ebi.ac.uk/pub/software/unix/iprscan/5/选择合适的InterProScan程序包下载。

  2. 进入下载后解压的目录内,以要查询的蛋白质的fasta文件为输入,运行InterProScan,得到程序匹配到的InterPro signatures的xml文件:

    ./interproscan.sh -i /path/to/sequences.fasta -b /path/to/output_file -f XML

  3. 运行src/feature/InterPro/interpro.py程序,处理上一步得到的原始xml文件,获得处理后的InterPro特征文件。

HumanNet

  1. 打开https://www.inetbio.org/humannet/download.php。选择Integrated Networks下的HumanNet-XN下载。将下载到的文件放在data/feature/HumanNet/raw中。

  2. 打开https://www.uniprot.org/uniprot/?query=*&fil=reviewed%3Ayes+AND+organism%3A%22Homo+sapiens+%28Human%29+%5B9606%5D%22。点击页面中部的Columns按钮,在新页面的Columns to be displayed中点击所有的虚线框右上角的叉号。之后在Add more columns栏目中部的Search:搜索框中输入GeneID,点击弹出的联想词。此时,单击最右侧的Save按钮。跳回到原来的页面,这时表格只剩下EntryCross-reference (GeneID)。点击页面中间的Download按钮,选择Format: Tab-separated,再点击Go按钮下载文件。将该文件重命名为entrez2uniprot.txt,放在data/feature/COXPRESdb/raw下。下载完毕后,在刚刚UniProt的页面中,再次点击Columns按钮,在新页面中点击右侧的Reset to default(注意:不要点击default这个单词,而点击Reset),之后再单击Save。这样UniProt界面恢复原来的样子。

  3. 运行src/feature/HumanNet/humannet.py,得到处理后的蛋白质关系网络。

HIPPIE

  1. 打开http://cbdm-01.zdv.uni-mainz.de/~mschaefer/hippie/download.php,并选择HIPPIE tab format下的合适版本进行下载。

  2. 打开https://www.uniprot.org/uniprot/?query=*&fil=reviewed%3Ayes+AND+organism%3A%22Homo+sapiens+%28Human%29+%5B9606%5D%22。点击页面中部的Columns按钮,在新页面的Columns to be displayed中点击除Entry name外所有的虚线框右上角的叉号,再单击最右侧的Save按钮。跳回到原来的页面,此时表格只剩下EntryEntry name两列。点击页面中间的Download按钮,选择Format: Tab-separated,再点击Go按钮下载文件。将该文件重命名为uniprot_name2id.txt,放在data/feature/HIPPIE/raw下。下载完毕后,在刚刚UniProt的页面中,再次点击Columns按钮,在新页面中点击右侧的Reset to default(注意:不要点击default这个单词,而点击Reset),之后再单击Save。这样UniProt界面恢复原来的样子。

  3. 运行src/feature/HIPPIE/hippie.py,获得处理后的HIPPIE的PPI数据。

COXPRESdb

  1. 打开https://coxpresdb.jp/download/,点击> Show previous data。找到Species列为HumanMethod列为R的行,下载这一行Gene correlation table列的.zip文件,将其放入data/feature/COXPRESdb/raw目录下。注意:请不要解压!

  2. 打开https://www.uniprot.org/uniprot/?query=*&fil=reviewed%3Ayes+AND+organism%3A%22Homo+sapiens+%28Human%29+%5B9606%5D%22。点击页面中部的Columns按钮,在新页面的Columns to be displayed中点击所有的虚线框右上角的叉号。之后在Add more columns栏目中部的Search:搜索框中输入GeneID,点击弹出的联想词。此时,单击最右侧的Save按钮。跳回到原来的页面,这时表格只剩下EntryCross-reference (GeneID)。点击页面中间的Download按钮,选择Format: Tab-separated,再点击Go按钮下载文件。将该文件重命名为entrez2uniprot.txt,放在data/feature/COXPRESdb/raw下。下载完毕后,在刚刚UniProt的页面中,再次点击Columns按钮,在新页面中点击右侧的Reset to default(注意:不要点击default这个单词,而点击Reset),之后再单击Save。这样UniProt界面恢复原来的样子。

  3. 运行src/feature/COXPRESdb/coxpresdb.py,获得处理后的共表达数据。

第三步:训练基础分类器(Basic Models)

Naive

  1. 运行src/basic/naive/naive.py,得到data/result/basic/naive内的输出文件。

Neighbor

  1. 注意设置配置文件里“network”一项的“type”,对于STRING和GeneMANIA,其设为“weighted”;对于BioGRID,则要设置为“unweighted”。

  2. 运行src/basic/neighbor/neighbor.py,得到保存在data/result/basic/neighbor中的预测结果。

Flat

  1. 运行src/basic/flat/flat.py,将各种处理得到的特征文件作为输入,训练Logistic Regression分类器,对用于排序学习的训练集和测试集进行预测,得到输出在data/result/basic/flat目录下的一系列预测结果文件。

第四步:排序学习(Learning to Rank)

  1. 将第三步中得到的一系列预测分数作为输入,即配置文件中的"result"部分。注意:请务必保证这一部分的"ltr""test"的列表内的文件顺序是一致的!

  2. 注意合理调节配置文件中"model_param"部分的max_depth值、"fit_param"部分中的num_boost_roundearly_stopping_rounds以及"top"中的取值。

  3. 运行src/ensemble/ltr/ltr.py程序,得到最终的预测结果。

第五步:评估(Evaluation)

  1. 将要评估的预测结果的文件路径添加在配置文件的"result"部分。

  2. 运行src/utils/evaluation.py,程序将会显示各个预测结果在各个子本体上的

    • Fmax:以蛋白质为中心的评估指标
    • AUC:以HPO term为中心的评估指标,即每个HPO term的AUC的平均值
    • AUPR:整体的评估指标,即以一对蛋白质-HPO term为实例进行计算的AUPR
    • 每个按频率划分的HPO term小组内的平均AUC