这两天在做蛋白质数据的EDA(exploratory data analysis)试了Table One、PCA、Volcano plot和Manhattan plot。实现语言为R。

数据简要介绍
蛋白质在全血中浓度log后的值,以及一张含各variable的表。protein数据648(proteins)*92(patients)。数据lung cancer case:control=322:325基本持平。case指lung cancer。

Table One
Table One用lung cancer case作为输出求各variable的p-value。Table One只能提供数据大致的第一印象。

需要注意的是在Table One中显著的variable并不能作为后面denoise data所用的adjust variable,原因有:

  1. 有的variable间本来可能就有联系,比如BMI和高血压,如果都adjust可能会有重复调整的风险
  2. Linear Mixed Model选择adjust variable应该根据reference选择合理的variable,是为了观察除这两个variable外潜在相关的variable,而不是根据p-value选择。

PCA
PCA如下图,结果很不好。问了别人,别人的结果也无法清晰分类。最后,大家的结论是PCA无法很好解释该数据,选择不用PCA。

Volcano Plot
因为笔者要探索smoking以外variable对lung cancer的影响,所以绘制了两张,一张before adjust by smoking, 一张after。每个点代表一个protein。纵坐标为-log10(adjust p-value),点越靠近图顶部表示差异越显著。横坐标为log2(fold change),点越偏离中心,表示差异倍数越大。

名词解释

  • fold change: 差异倍数,及数据在一组样品中的表达值的均值除以其在另一组样品中的表达值的均值。所以火山图只适合展示两组样品间的比较。
  • 为什么做log2转化: fold change如果直接表示,值上到无限大,下至0,绘图很不方便。如果用log2,上调的数值都大于等于1,下调的数值都小于等于-1,绘图更方便。
    不过很遗憾,显著的点不多。
  • 为什么adjust p-value: 统计学家认为多次的检测会引入假阳性结果,需要一个多重假设检验矫正。Bonferroni correction:每一次统计检验获得的p-value都乘以总的统计检验次数获得adjust p-value。 由于Bonferroni
    correction太过严厉,容易找不到有差异的数据,统计学家后来又提出别的相对宽松的计算方法,比如BH。BH获得的是假阳性率(FDR)。FDR<0.1表示我们对假阳性率的容忍度至多是10%。本次数值根据BH方法调整,有颜色代表significant。
  • 为什么做-log10转换: 因为FDR是0-1/数值越小表示统计显著。-log10(adjust p-value)转换后正好是反过来,数值越大越显著。

Manhattan plot
将GWAS分析之后所有SNP位点的p-value在整个基因组上从左到右一次画出来,并且为了更直观的表达结果,通常会将p-value转换成-log10(p-value)。所以Y轴高度越高,关联性越强。
目前为止网上找到的都是用来画基因数据的。试着画了一下蛋白质数据,效果不好。

总之,univariate analysis并没找出什么有效protein。做完这些后会将数据用LMM denoise(adjust by age, gender, bmi)。

最后推荐一个无意间发现的宝藏网站http://www.ehbio.com/ImageGP/
很优秀的生信绘图网站。不过数据输入时格式要求有点多,有点麻烦。真的佩服这种交互功能。

Reference:

  1. Volcano plot | 别再问我这为什么是火山图http://blog.sciencenet.cn/home.php?mod=space&uid=118204&do=blog&id=1222648
  2. 如何理解GWAS中Manhattan plot和QQ plot所传递的信息。https://www.jianshu.com/p/987859ae503c

用EDA处理蛋白质数据小记相关推荐

  1. 从NCBI refseq 中下载特定物种的蛋白质数据

    前言 今天又和NCBI数据库干上了.由于NCBI奇奇怪怪的格式,导致我们下载特定物种(某个科.某个属)比较麻烦,手动一条条下载肯定是不现实的,而对于部分很少涉及干实验的生物研究人员来讲写代码也不容易. ...

  2. 使用JsonPath处理JSON数据小记

    项目中遇到处理JSON数据的需求,需要传入动态参数查找符合要求的数据项,然后输出特定key的value,在此记录一下 下面是待处理JSON数据示例 {   "code": 200, ...

  3. NLP数据增强方法总结:EDA、BT、MixMatch、UDA

    1. 数据增强的背景和应用场景 随着AI技术的逐步发展,更好的神经网络模型对数据规模的要求也逐步提升.而在分类任务中,若不同类别数据量相差很大,模型则会出现过拟合现象,严重影响预测的正确性. 从广义上 ...

  4. Python探索性数据分析(EDA)统计数据和建模

    探索性数据分析(EDA) 在统计学中,探索性数据分析是一种分析数据集以总结其主要特征的方法,通常使用统计图形和其他数据可视化方法. 可以使用或不使用统计模型,但主要是 EDA 用于查看数据可以告诉我们 ...

  5. 【数据竞赛】从0梳理1场数据挖掘赛事!

    作者:王茂霖,华中科技大学,Datawhale成员 摘要:数据竞赛对于大家理论实践和增加履历帮助比较大,但许多读者反馈不知道如何入门,本文以河北高校数据挖掘邀请赛为背景,完整梳理了从环境准备.数据读取 ...

  6. Python Bokeh 库进行数据可视化实用指南

    写在前面 我相信大家已经阅读了不少有关"机器学习"."数据科学家"."数据可视化"等话题的文章.有些人将数据科学称为 21 世纪最性感的工作 ...

  7. 探索性数据分析(EDA)-不要问如何,不要问什么

    数据科学 , 机器学习 (Data Science, Machine Learning) This is part 1 in a series of articles guiding the read ...

  8. 季节性时间序列数据分析_如何指导时间序列数据的探索性数据分析

    季节性时间序列数据分析 为什么要进行探索性数据分析? (Why Exploratory Data Analysis?) You might have heard that before proceed ...

  9. 探索性数据分析(EDA):Python

    什么是探索性数据分析(EDA)? (What is Exploratory Data Analysis(EDA)?) If we want to explain EDA in simple terms ...

最新文章

  1. SSM+maven实现答题管理系统(二)
  2. windows php扩展下载,有没有专门下载 Windows 下的 PHP 扩展的网站?
  3. python自动测试g_Python自动化测试如何自动生成测试用例?
  4. 面试 Google, 我失败了!
  5. Django扩展自定义manage命令
  6. CodeCraft-20 (Div. 2) C. Primitive Primes 思维 + 数论
  7. prim算法 最小生成树
  8. 简要分析JM8.6代码中foreman_part_qcif.yuv文件的YUV数据如何悄无声息地进入程序
  9. 基于ansible Role实现批量部署lamp平台
  10. 计算机网络基础学ppt,计算机网络基础学习情景.ppt
  11. 2019最新版Eclipse下载与安装
  12. spark安装以及hive on spark和spark on hive 的配置
  13. Unity Shader - 基础光照之漫反射
  14. React学习笔记之三(关于setState的若干问题及其讨论)
  15. Python编程好不好学?入门难吗?
  16. Spring配置数据库密码加密
  17. resultFul请求案例
  18. 基带传输与频带传输(关系与区别)
  19. 视频去水印,图集去水印工具分享
  20. 锎的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

热门文章

  1. 理解onMeasure
  2. 手机号归属地 libphonenumber
  3. Centos网络连不上网络
  4. 《乘风破浪》三年,靠王心凌救市?
  5. 碟中谍小组不要太夸张 Avaya要说:哈利法塔的网络很可靠
  6. 教你辨别专利编号| 专利的专利号申请号公开号公告号
  7. SNAT和DNAT原理及配置方法
  8. Python基础教程(第2版)读书笔记
  9. 全网最全靠谱找工作招聘网站大全
  10. C语言大数运算-乘除法篇