明码标价之探索新流程(以MSIpred为例)
最近有粉丝在我们《生信技能树》公众号后台付费求助,想用肿瘤WES测序体细胞突变结果判断MSI状态,因为粉丝课题的保密的。那我这里使用TCGA数据库的CRC的MAF文件举例,安排给了学徒进行探索,并且整理成为笔记供大家学习:
先介绍一下MSI知识和MAF文件格式:
MSI(Microsatellite instability)
定义:与正常组织相比,在肿瘤中某一微卫星由于重复单位的插入或缺失而造成的微卫星长度改变,出现新的微卫星等位基因现象。 产生机制:主要包括DNA多聚酶的滑动导致重复序列中一个或多个碱基的错配和微卫星重组导致碱基对的缺失或插入。 检测方法:(1)IHC:检测MMR蛋白(MLH1,MSH2,MSH6,PMS2)(2)PCR:检测5个位点(D2S123、D5S346、D17S250、BAT-25和BAT-26) 主要特征:由于mismatch repair(MMR) 系统的缺陷,导致微卫星长度具有高度多态性 临床意义:(1)判断预后(2)指导治疗(3)筛选Lyn综合征 分类:根据Bethesda guideline可以将其分为3类(1)MSS:5个测试点均为发生突变,称为微卫星稳定(2)MSI-L:1个测试点发生突变,称为微卫星不稳定性低(3)MSI-H:2个或更多的测试位点发生突变,称为微卫星不稳定性高
MAF(Masked Somatic Mutation)
用于整合所有样本的体细胞突变注释结果,由\t分隔的许多列构成,开头的#为注释行,完整的MAF文件有100多列,官网有关于它的详细介绍:
https://docs.gdc.cancer.gov/Data/File_Formats/MAF_Format/
下面的任务就是要找到一个可以预测MAF文件MSI状态的包或者软件
最先找到的是一个叫MSIseq的R包,分析流程图如下:
看功能完全可以胜任这一个任务,可是它实在太老了最近一次更新是6年前,R包下载下来都很困难,别说使用了。又去github上搜索了一下,发现了一个python包也可以解决这个问题(最近一次更新在3年前),先大概看了一下对应的文章,流程如下,看功能可以完成这个任务。
github链接:https://github.com/bioinfolabmu/MSIpred
MSIpred基本介绍
MSIpred根据WES测序生成的MAF的突变数据,首先计算出表征肿瘤突变负荷的22种features,随后用这些features预测肿瘤MSI的状态(基于SVM分类器:由4种类型1074tumors训练而成)。准确性也有相关介绍,在独立评估358个肿瘤的MAF数据中overall accuracy≥98%,ROC curve为0.967。
流程探索
(1)安装MSI包(跟着github上的流程走,稍微有点依赖包的版本bug)
其GitHub介绍如下所示:
MSI是个python包,基于python2的环境,用conda创建python2的小环境会很方便,代码如下:
#配置环境
#创建python2小环境,我服务器上安装过的python2的版本是2.7.17,我就用的2.7.17
conda create -n python27 python=2.7.17
#激活python2小环境
conda activate python27
#安装3个依赖包,一定要加镜像,一定要加镜像,一定要加镜像!
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "pandas>=0.20.3" "intervaltree>=2.1.0" "sklearn>=0.19.1"
#sklearn有个报错:ERROR: Could not find a version that satisfies the requirement sklearn>=0.19.1 (from versions: 0.0),重新装一下sklearn
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "sklearn==0.0"
#pandas的版本不能太高,重新装一下pandas(太高后面pandas的各种包报错怀疑人生)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "pandas==0.20.3"
#scikit-learn后面要求0.19.1版本,高版本后面预测的时候会报错,再装一下,如果你这一步不这样做的话,后面预测的时候就会出现UserWarning: Trying to unpick le estimator StandardScaler from version 0.19.1 when using version 0.19.2. This might lead to breaking code or invalid results. Use at your own risk.
解决方法:先把python降级为2.7.3版本,再安装scikit-learn
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "python==2.7.3"
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "scikit-learn==0.19.1"
#安装完之后conda list查看一下安装的包都装上没
conda list
#下载解压MSI,进入到目录下
wget https://github.com/bioinfolabmu/MSIpred/archive/master.zip
unzip MSIpred-master.zip
cd MSIpred-master
#安装(如果出现保存基本上都是前面3个依赖包的版本太高了,换低一点就可以解决)
python setup.py install
可想而知这个python包是多么的不友好,各种不同版本的包的依赖关系错综复杂。
一定要看!!!出现报错基本上都是由于包版本原因,我是按照下面的版本做的,没有报错:
(2)下载CRC的MAF文件和reference file
TCGA官网下载CRC的MAF文件:
#下载reference file named as 'simpleRepeat.txt' annotating loci of simple repeats throughout genome for GRCh38
wget http://hgdownload.cse.ucsc.edu/goldenPath/hg38/database/simpleRepeat.txt.gz
tips:下载速度太慢了,用迅雷下特别快,传到服务器上解压 gunzip simpleRepeat.txt.gz
(3)根据MAF文件预测MSI状态
下面都是python代码了:
#导入maf文件
>python
>import MSIpred as mp
>crc_maf = mp.Raw_Maf(maf_path='CRC.maf')
#通过添加一个In_repeats列,生成一个带注释的maf文件(tagged_maf_file),以供进一步分析(指定simpleRepeats.txt,该突变是否发生在简单重复区域内),这一步会比较慢,需要耐心等待
>crc_maf.create_tagged_maf(ref_repeats_file='simpleRepeat.txt',tagged_maf_file = 'tagged_crc.maf')
#使用在上一步生成的带注释的MAF文件(tagged_crc.maf),初始化
>tagged_crc_maf = mp.Tagged_Maf(tagged_maf_path='tagged_crc.maf')
#从生成的maf文件中创建feature dadaframe用于进一步的MSI预测获得外显子序列的Mb(COAD项目,外显子大小为44Mb)
>crc_features = tagged_crc_maf.make_feature_table(exome_size=44)
#在feature dataframe中使用SVM分类器预测MSI状态(MSS或MSI-H),将获得一个包括预测MSI状态的pandas dataframe
>predicted_MSI = mp.msi_prediction(feature_table=crc_features)
#保存生成的predicted_MSI数据框
>import pandas as pd
>pd.DataFrame.to_csv(predicted_MSI,'CRC_MSI.tsv',sep='\t')
#结果文件为CRC_MSI.tsv(70个MSI-H,329个MSS)
还不错!
参考文献
Cortes-Ciriano, Isidro, Sejoon Lee, Woong-Yang Park, Tae-Min Kim, and Peter J Park. 2017. “A Molecular Portrait of Microsatellite Instability Across Multiple Cancers.” Nat. Commun. 8 (6~jun): 15180.
Huang, Mi Ni, John R McPherson, Ioana Cutcutache, Bin Tean Teh, Patrick Tan, and Steven G Rozen. 2015. “MSIseq: Software for Assessing Microsatellite Instability from Catalogs of Somatic Mutations.” Sci. Rep. 5 (26~aug): 13321.
Wang C, Liang C. MSIpred: a python package for tumor microsatellite instability classification from tumor mutation annotation data using a support vector machine[J]. Scientific reports, 2018, 8(1): 1-10.
网页工具绝对是完成不了这样的命令行数据分析哦
这个是基于Linux的ngs数据的上游处理,目前没有成熟的网页工具支持这样的分析。其实呢,如果你有时间请务必学习编程基础,自由自在的探索海量的公共数据,辅助你的科研,那么:
如果你没有时间从头开始学编程,也可以委托专业的团队付费拿到同样的数据分析。这样的一个新算法的摸索,需要800元,可以拿到全部的数据和代码哦!
需要自己读文献 提供半个小时左右的一对一讲解。
如果需要委托,直接在我们《生信技能树》公众号留言即可,我们会安排合适的生信工程师对接具体的项目。