基于rna-seq的表达预测肿瘤起源的工具

cancerscope的Python项目详细描述


范围的癌症镜

pypicoverage status构建状态documentation statuslicense
用python制作pypi pyversions

scope是一种利用表达进行癌源预测的方法,用于预测rna序列样本的肿瘤类型(或匹配正常值)。
scope的python软件包cancerscope允许用户通过带有匹配基因id的rpkm值,并接收66个不同类别(40个肿瘤类型和26个健康组织)的一组概率,总计为1。用户还可以选择生成显示每个样本分类的绘图。

由于scope是一种基于集成的方法,因此可以训练额外的模型并将其包含在scope使用的集成中(即将提供说明)。

当前的pypi版本不支持python 3.x,因为打印库支持有问题。

安装

在安装cancerscope之前,您需要安装正确版本的包烤宽面条烤宽面条
pip安装--升级https://github.com/theano/theano/archive/master.zip
pip安装——升级https://github.com/lasagne/lasagne/archive/master.zip

自动安装

一旦您安装了最新的烤宽面条和无python软件包,就可以使用命令pip install cancerscope设置cancerscope

在初始安装时,CancerScope将尝试下载预测所需的模型。这可能需要一段时间,具体取决于您的Internet连接(3-10分钟)。在继续安装之前,请确保您有可靠的Internet连接和至少5 GB的空间。

设置和使用

要开始使用scope,请启动一个python实例然后运行:
>>gt;导入CancerScope

如果在安装包时下载失败,则在第一次导入CancerScope时,包将尝试设置预测所需模型的本地下载。请耐心等待,这需要一段时间(3-10分钟)。

预测-示例

可以从预先格式化的输入文件执行预测,也可以通过传入数据矩阵来执行预测。有关详细信息,请参阅教程详细文档

命令如下所示:
>;>gt;将CancerScope导入为CS
>>>范围obj=cs.scope()

这将设置对所需范围模型的引用。

接下来,您可以直接从输入文件中处理预测:
>;>>predictions_from_file=scope_obj.get_predictions_from_file(文件名)
在这里,输入文件应该准备如下。列应使用唯一的示例ID以制表符分隔。第一列始终是基因标识符(官方hugo id、集成基因id或gencode)。前两行输入显示了一个示例。

<表><广告>集合样本1样本2< <…>< /广告><正文>ENSG000xxxxx0.23419451.2…

…或者您可以传入数据矩阵、样本名称列表、特征名称列表、基因名称类型(ensg、hugo等)和样本名称列表(可选)。
>>>预测=范围目标预测(
x=numpy数组,
x_features=列出功能,x_features_genecode=string_genecode,x_sample_names=列出样本名称)

输出如下:

<表><广告>'ix'示例 标签predfreq型号 排名 样本名称< /广告><正文>blca_ts0.268193v1无17k退出,v1无17k测试1lusc_ts0.573807v1_smotenone17k测试1乘客0.203504v1_RM500测试1tfri-gbm-ncl-ts0.552021v1_RM500辍学测试1esca_eac_ts0.562124v1_smotenone17k,v1_none17k测试2高速数控系统0.223115v1_RM500测试2MB-成人0.743373v1无17k退出测试2tfri-gbm-ncl-ts0.777685v1_RM500辍学测试2

这里,处理了两个样本,称为test1test2。从集合中的每个模型中提取并聚合最高预测。

  • 例如,有两个模型预测'blca_ts'是test1最可能的类。列freq为您提供预测贡献模型的计数,列models列出这些模型。另外3个模型分别预测了lusc、paad和tfri-gbm-ncl。
  • 您可以使用列rank pred中显示的预测等级来筛选出要用于解释的预测< < /李>
  • 当scope对预测非常有信心时,您将看到freq=5,这表示所有型号都是同一级别的热门车型。

可视化或导出结果-示例

CancerScope还可以自动为每个样本生成图,并将预测数据帧保存到文件中。这是通过将输出目录传递给预测函数来完成的:
>>gt;预测来自_file=scope_obj.get_predictions_from_file(filename,outdir=output_folder)
>>>预测=范围目标预测(x=numpy_array_x,x_features=list_of_features,x_features_genecode=string_genecode,x_sample_names=list_of_sample_names,**outdir=output_folder**)

这将自动将预测函数返回的数据帧保存为output_folder+/scope_toppreditions.txt,将所有类中所有模型的预测保存为output_folder+/scope_all predictions.txt

特定于样本的绘图也会在同一目录中自动生成,并标记为scope\u sample-samplename\u predictions.svg

引用CancerScope

如果您将此软件包用于任何学术研究,如果您能引用相关论文
完整引用:
格雷沃尔·JK、泰西尔·克劳蒂埃B、琼斯·M等。基于神经网络全转录组的泛癌方法在原发癌和转移癌诊断中的应用。JAMA网络开放。2019年;2(4):E192597。doi:10.1001/jamanetworkopen.2019.2597

为了便于使用,我们提供了bibtex引文:
@文章{jgscope2019,
作者{格雷瓦尔,贾斯琳K.和泰西尔·克鲁蒂埃,巴兹尔和琼斯,马丁和盖哈尔,西坦舒和马,尤珊娜和摩尔,理查德和芒格尔,安德鲁·J.和赵,永军和泰勒,迈克尔·D.和盖蒙,凯伦和林,霍华德和雷诺夫,丹尼尔和拉斯金,珍妮莎和玛拉,马可和叶,圣以弗所和琼斯,史蒂文J.M.},
title="{基于神经网络全转录组的泛癌方法在原发癌和转移癌诊断中的应用基于机器学习的原发癌和转移癌诊断方法的评估基于机器学习的原发癌诊断方法的评估转移性癌症",
日志={jama network open},
体积={2},
数字={4},
页码={e192597-e192597},
年份={2019},
月={04},
issn={2574-3805},
doi={10.1001/jamanetworkopen.2019.2597},
url={https://doi.org/10.1001/jamanetworkopen.2019.2597}
eprint={https://jamanetwork.com/journals/jamanetworkopen/articlepdf/2731678/grewal\u 2019\u oi\u 190114.pdf}
}

许可证

CancerScope是根据麻省理工学院的许可条款分发的。

功能请求

如果您希望输出稍微(或明显)更易于使用,或者希望看到定制输出的其他选项,请在这里打开一个github问题

问题

如果您遇到任何问题,请与开发人员联系,并提供详细的错误日志和说明。cerscope/issues" rel="nofollow">此处

常见错误

在使用CUDNN后端时,该节点有点挑剔,有时可能由于版本冲突而向您抛出错误。如果您在GPU友好的环境中设置CancerScope,这里有一个常见的例子。
运行时错误:混合dnn版本。报头是5110版,而库是7401版。

  • 请确保您的系统中只有一个CUDNN版本。
  • 已使用CUDNN-7.0(v3.0)开发并测试了CancerScope

pkg_resources.versionConflict:(pandas xxxx(/path/to/sitepckgs/),requirement.parse('pandas>;=0.23.4'))

  • 此错误可能是因为您安装了旧版本的pandas,这与我们使用的绘图库(plotnine,此软件包需要pandas>;=0.23.4)相冲突。
  • 您可以手动安装plotnine("pip install plotnine")或更新熊猫库("pip update pandas")

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java流收集组合器   文件如何在java中逐个压缩选定的多个文件夹   从Google存储下载数据时发生java SocketTimeoutException   java在安卓应用程序客户端上从python服务器接收值,然后显示与该值对应的mysql数据   数组如何在Java中测试字符串索引是否为Null   java将一串值拆分并放入一个表中   java Spring Memcached注释不缓存   调用pom中设置的环境变量时出现java问题。xml surefire插件   java修复JFrame中重叠的鼠标侦听器   格式化java。sql。日期至yyyyMMdd   java声音剪辑。如果剪辑不正确,isActive应返回true。启动被调用   无根计算机上hadoop中的java格式化namenode   从字符串数组中删除重复项,而无需在Java中进行显式比较   java Eclipse插件安装错误   java webdriver无法在firefox中单击超链接   动画错误。朗。反思。调用目标异常   java试图调用虚拟方法“void”。小装置。编辑文本。在空对象引用上添加TextChangedListener(安卓.text.TextWatcher)”