计算两个基因表达谱之间的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。
显示模板网络:
下面的图是在模板网络上实例化的三个基因表达谱:
全转录组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年)