整合多组学数据的通路富集分析-ActivePathways

我是在这篇文章(Integrative pathway enrichment analysis of multivariate omics data
)中遇到的合并多个p-value的操作。这篇文章是今年发表在NC上。所有的组学或者大规模的数据分析,都需要探索数据背后相关的生物学功能,所以通路富集分析非常普遍。通常的做法是基于单一组学、单一数据集的数据进行分析,随着生物学数据的爆发,大规模多组学数据变得普遍,这篇文章介绍了基于整合的多组学或多数据集的数据进行通路分析的工具ActivePathways。

/wp/f4w/2020/2020-09-12-ActivePathways-1.png

方法

ActivePathways的方法,如下图:
(a) 需要的输入文件
(1) 基于多组学数据集的基因P-value,传统的富集分析是单组学,只有一列,现在是多组学,对应多列P-value
(2) 基因集,这个和其他的通路富集分析一样,用来表示生物学过程和通路

(b)
(1), 用Brown method合并基因的P-values,并且排序,用一个宽松的阈值来过滤检阳性的基因。
(2), 对每个通路,用排序的基因(从第一个开始从少到多作为sub-list)进行超几何检验,并找到最优的sub-list长度。
(3), 基因单一组学的数据进行富集分析,找到支持每个通路的证据。

(c) ActivePathways 提供整合之后的富集分析结果,相关的Brown P-value,支持通路的证据。还可以在Cytoscape中画Enrichmentmap的图,来分析更广泛的生物学主题。点为通路,边表示有共有基因。

/wp/f4w/2020/2020-09-12-ActivePathways-2.png

例子

自然发到了NC这种水平的期刊上,出了豪华的团队外,ActivePathways一定有很厉害的功能才行。这篇文章提了好几个case study,我挑了一个,稍微讲一下,如下图。

昨天分析了乳腺癌中与预后相关的通路和过程,其中整合了三种数据集,TC(Tumor cell mRNA),TAC(Tumor adjacent cell mRNA)和CNA(拷贝数变异),这里也挺有意思,把TAC也纳入到P-values的矩阵中,并不是三个组学。

(a) Enrichment map,其中蓝色的表示仅由整合数据发现的通路,比如凋亡等,显示出其强大的功能。
(b) 乳腺癌Basel和HER2亚型中,与预后相关的免疫基因的Hazard Ratio(HR),显示出两种亚型间不同的免疫pattern。
(c) HER2亚型中,与预后相关的基因(凋亡过程负调控)在每个数据集上的P-value和整合后的Brown P-value。其中DUSP1在三个数据集中都非常显著,如果作者聚焦到了这个基因。
(d) 这个基因在肿瘤细胞mRNA,癌旁细胞mRNA和拷贝数变异三种数据集中,分成high和low两组,做生存分析,可以发现DUSP1低表达,预后显著好于高表达,以此证明ActivePathway的强大。

/wp/f4w/2020/2020-09-12-ActivePathways-3.png

ActivePaths的下载地址:https://github.com/reimandlab/ActivePathways。为一个R包,整理好P-values的数据框之后,一步命令即可分析,此外结果还可以在Cytoscape上用Enrichment map展示。

# scores是P-values的数据框,GMT是基因集
ActivePathways(scores, fname_GMT) 

参考

https://www.nature.com/articles/s41467-019-13983-9

#####################################################################
#版权所有 转载请告知 版权归作者所有 如有侵权 一经发现 必将追究其法律责任
#Author: Jason
#####################################################################

Combining dependent P-values合并多个检验的p-value

今天在看文章的时候,发现原来p-value也可以合并。比如一个基因在不同组学数据的检验中对应了多个p-value,可以合并成一个。

常用的是Fisher’s method,
/f4w/2020/2020-09-11-Fisher method.svg
-2[ln(P1) + ln(P2) + … + ln(Pi)]符合X2分布(自由度为2k,k为p-value的个数)。

还有Brown’s methods和 Kost’s methods,具体的介绍如下图。

/wp/f4w/2020/2020-09-11-Combining dependent P-values.png

参考:

https://academic.oup.com/bioinformatics/article/32/17/i430/2450768

https://www.nature.com/articles/s41467-019-13983-9

#####################################################################
#版权所有 转载请告知 版权归作者所有 如有侵权 一经发现 必将追究其法律责任
#Author: Jason
#####################################################################

甲基化芯片中的M值和B值

M值和B值的计算公式

M B value

The relationship curve between M-value and Beta-value

M值和B值的对应关系

M B value

The histograms of Beta-value (left) and M-value (right) (27578 interrogated CpG sites in total)

M值和B值的分布

M B value

minfi包有getM和getBeta来分别计算M-values和Beta-values,包的作者认为,

  • M-values具有更好的统计特性,更适合用于进行下游的统计分析(差异分析等)
  • Beta-values更加容易解释,更能说明生物学上的意义
  • CHAMP包在load的时候,可以指定计算Beta-value还是M-value

    一般来说,具体的β值的意义是:

  • 任何等于或大于0.6的β值都被认为是完全甲基化的。
  • 任何等于或小于0.2的β值被认为是完全未甲基化的。
  • β值在0.2和0.6之间被认为是部分甲基化的。
  • 参考:

    https://zhuanlan.zhihu.com/p/108364645

    https://link.springer.com/article/10.1186/s41241-017-0041-9

    Failed to mount 大容量的RAID组

    我们的存储服务器有两组RAID,容量均大于150T,我在mount的时候,提示我

    NTFS signature is missing.
    Failed to mount '/dev/sdc': Invalid argument
    The device '/dev/sdc' doesn't seem to have a valid NTFS.
    Maybe the wrong device is used? Or the whole disk instead of a
    partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

    是因为没有分区导致的,分区之后就可以了。分区的命令

    # 使用parted命令进行分区,等同parted; select /dev/sdc
    parted /dev/sdc 
    
    # 创建分区表
    mklabel gpt 
    
    # 使用print命令查看当前分区情况
    print 
    
    # 留1M的空余空间,目的是为了让数据块整齐,提高磁盘的运行效率, -1表示分区的结尾  意思是划分整个硬盘空间为主分区
    mkpart primary 1 -1 
    
    p  # print的简写
    
    # 使用q命令退出, 
    quit 
    
    # 退出之后会提示
    会提示Information: You may need to update /etc/fstab.
    
    
    # 格式化分区,为分区写入文件系统,格式为ext4
    mkfs –t ext4 /dev/sdc1 # 格式化分区
    
    # 使用blkid命令,找到 UUID,然后编辑 /etc/fstab,实现自动挂载
    vim /etc/fstab
    
    UUID=******	directory	ext4	defaults	0	0
    

    参考:

    https://www.cnblogs.com/kreo/p/9462641.html

    https://www.cnblogs.com/saszhuqing/p/9964262.html

    确定物理网口对应的名称以及配置静态IP

    确定物理网口对应的名称

    在一台ubuntu的机器上,有四个物理网口,我想知道每个网口对应的MAC地址。使用ip a可以看到网口的MAC地址和名称,比如列出了ens1f0, ens1f1, ens4f0, ens4f1。
    原来的网卡interface都是eth开头,后来改成了enp, ens等。

    Names incorporating Firmware/BIOS provided index numbers for on-board devices (example: eno1)
    Names incorporating Firmware/BIOS provided PCI Express hotplug slot index numbers (example: ens1)
    Names incorporating physical/geographical location of the connector of the hardware (example: enp2s0)
    Names incorporating the interfaces’s MAC address (example: enx78e7d1ea46da)
    Classic, unpredictable kernel-native ethX naming (example: eth0)

    那么如何确定机器上的ens1f0对应的哪个物理网口呢,可以用ethtool来实现,ethtool是用于查询及设置网卡参数的命令。用ethtool -p enos1f1,看哪个网口在闪灯,就能确定这个物理网口对应的名称。记得不要插网线。

    ethtool -p|--identify DEVNAME   Show visible port identification (e.g. blinking)

    如果没有一个网口亮灯,很可能是因为网口不支持,则可以尝试ethtool -t enosf1f1,大概在4秒之后,网口的灯会亮,这个时候就可以确定enos1f1对应的具体的物理网口了。

    ethtool -t|--test DEVNAME       Execute adapter self test

    很简单的一个命令,知道了就很简单,不知道就很难想到。

    配置静态IP

    /etc/netplan/00-installer-config.yaml
    
    network:
      ethernets:
        enp0s3:  # 网卡名
          addresses: [192.168.1.3/24] # ip地址和子网掩码,24对应255.255.255.0
          gateway4: 192.168.1.1 # 网关
          nameservers:
            addresses: [4.2.2.2, 8.8.8.8] # DNS
      version: 2
    

    配置好了之后,生效
    sudo netplan apply