计算两个基因表达谱之间的jensen-shannon差异以测量基于转录组的肿瘤内异质性(tith)。

njsd的Python项目详细描述


NJSD

njsd是一个python包,用于使用熵概念计算用基因表达谱实例化的两个生物网络之间的距离。它被设计用来从大量rna测序数据中测量肿瘤内异质性。基于肿瘤状态的ith(tith)转录体通过同时考虑正常状态和理想异质状态来计算。

安装

pipinstallnjsd

用法

njsd支持如下命令行调用:

usage: njsd [-h] -n NETWORK -r REF -q QUERY -o OUTPUT [-t GENESET]

Calculate network-based Jensen-Shannon Divergence.

optional arguments:
  -h, --help            show this help message and exit
  -n NETWORK, --network NETWORK
                        Pre-defined network
  -r REF, --ref REF     Reference gene expression profile
  -q QUERY, --query QUERY
                        Query gene expression profile
  -o OUTPUT, --output OUTPUT
                        Output file.
  -t GENESET, --geneset GENESET
                        Gene set list

注意-t GENESET选项是可选的。如果指定了-t选项,则将计算指定的gene setnjsd和tith。否则,njsd将计算这两个表达谱的转录体宽度的njsd和查询基因表达谱的tith。

网络文件,应该用-n/--network选项给出,其格式必须如下,其中每一行指定网络中的一个边。njsd只需跳过一行就可以忽略标题,因此您可以用友好的方式命名每一列:

GeneA GeneB               # Header
GeneSymbol1 GeneSymbol2
GeneSymbol1 GeneSymbol3
GeneSymbol1 GeneSymbol4
...

gene expression profile,应该用-r/--ref-q/--query选项给出,必须遵循以下格式。同样,头球也不重要。请注意,njsd将通过获取log2(expression+1)自动对表达式值应用log2转换,我们建议提供njsd未格式化的表达式值,例如raw fpkm、rpkm或tpm。

GeneSymbol  ExpressionValue       # Header
GeneA 10
GeneB 20
BeneC 30
...

gene set list,它应该与-t/--geneset选项文件一起给定,必须具有以下格式。请注意,此文件不应该有头。第一列表示每个基因集(或组)的名称,以下列表示每个组的成员。

Group1Name  GeneA   GeneB   GeneC   ...
Group2Name  GeneD   GeneE   GeneF   ...
Group3Name  GeneA   GeneG   GeneH   ...
...

示例

toy数据表示三种不同的基因表达谱(Toy.profile1, Toy.profile2, Toy.profile3),它们是模板网络(Toy.network)的实例化,在example目录中给出。下面的执行场景展示了如何在基因表达谱之间计算njsd。

显示模板网络:

network

下面的图是在模板网络上实例化的三个基因表达谱:

profiles

全转录组njsd

您可以按如下方式计算转录组范围内的njsd:

$ njsd -n example/Toy.network -r example/Toy.profile1 -q example/Toy.profile2 -o profile2_njsd_all.txt

输出文件包含NJSDGNT(正常肿瘤NJSD)、NJSDTA TA(肿瘤到最大模糊状态)和TITH值。你可以把normal看作reference,把tumor看作query基因表达谱。

$ cat profile2_njsd_all.txt
nJSD_NT nJSD_TA tITH
0.003935020793376432 0.0068202519228746615 0.36586899255754446

让我们比较一下NJSD的1号和2号剖面,以及1号和3号剖面。

$ njsd -n example/Toy.network -r example/Toy.profile1 -q example/Toy.profile3 -o profile3_njsd_all.txt
$ cut -f1 profile2_njsd_all.txt profile3_njsd_all.txt
nJSD_NT
0.003935020793376432
nJSD_NT
0.007758064133920005

事实上,剖面1和剖面3之间的距离大于剖面1和剖面2之间的距离。

指定基因集njsd

您可以通过如下指定-t/--geneset选项来计算指定的njsd的基因集:

$ njsd -n example/Toy.network -r example/Toy.profile1 -q example/Toy.profile2 -t example/Toy.geneset -o output_njsd_gene_set.txt

输出文件的每一行都包含每个基因集的njsd_nt、njsd_ta和tith值。

$ cat output_njsd_gene_set.txt
Gene_set_ID     nJSD_NT nJSD_TA tITH
1st_pwy 0.00782194587529338     0.00938496594270829     0.45458162150340947
2nd_pwy 0.0     0.004261233542045538    0.0
3rd_pwy 0.00521463058352892     0.00710205590340923     0.4233793390015275
4th_pwy 0.007908518155920452    0.004261233542045538    0.6498504120870645
5th_pwy 0.006257556700234704    0.008522467084091077    0.42337933900152747

引文

Y.Park,S.Lim,J.Nam,S.Kim,使用RNA Seq数据通过网络熵测量肿瘤内异质性,科学报告(2016年)

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

推荐PyPI第三方库


热门话题
datetime如何使用JodaTime在Java中设置时间属性   java固定算法的性能时间   java如何从JMenu中获取所选项以更改文本区域的文本颜色?   java配置单元UDF传递数组<string>作为参数   javaapachebeam和BigQuery   java与PrintWriter之间的差异。printf和PrintWriter。格式方法   继承如何处理按Java版本更改的导入,以及在多个版本上编译   xml java。lang.noClassDefFoundant生成错误   java如何使用包含映射的JSON发送POST请求?   java如何在任何应用程序的JAR文件中绑定MySql数据库?   Java脚本解释器   sslhttpclientjava。网SocketException:未实现未连接的socket   java如何为Android应用程序创建类似于Cron作业的东西   java JButton+radiobox+复选框   java内存管理将文件写入内存   java这是计算对象实例的有效方法吗?   用于死锁情况的java代码?   JavaSpring容器作为新实体插入,而不是存储在表中