R的addins没有output tables r运行中没有melt这个函数_没有melt这个函数


摘要:

如果几个列的数据都是一个类型,合并起来会更容易分析。怎么合并呢?用pandas的melt函数。在文末对于rt-pcr ddct值的统计也写了一点个人的认识。



R的addins没有output tables r运行中没有melt这个函数_方差_02


pcr的数据表一般长成这样,每一列一个ct值,然后各次测量的结果就一行一行列下来。或者长成下面这样:


R的addins没有output tables r运行中没有melt这个函数_临界值_03


三次检测从左到右依次排开,基因和treatment group作为两个id var就这么放在左边。不管是哪种形式,真正方便我们做数据分析的,还是下面这种:


R的addins没有output tables r运行中没有melt这个函数_数据_04


在excel里面做这种转换很蛋疼,所以还是直接用pandas比较好


import pandas as pd
pcr = pd.read_csv('datasets/data.csv')
pcr_melt = pd.melt(pcr, id_vars=['group', 'gene'],var_name='ct trial',value_name='ct')
pcr_melt.to_csv('datasets/pcr_melt.csv')


搞定。

pd.melt的文档:pandas.melt - pandas 0.24.1 documentation


关于rt-pcr的统计

下面的内容是我自己粗浅的理解,如有错误请务必指出。

  1. ct值是什么东西呢?

ct值指的是目标基因通过不断的复制,到达可以被pcr仪器检测的临界值时候经历的周期数。自然,越早(ct值越小)到达临界值,说明要检测的基因含量越高。

2. ddct是怎么一个计算过程

首先肯定要有一个内参基因,比如说GAPDH,这个基因的ct我们写作

R的addins没有output tables r运行中没有melt这个函数_数据_05

哦,上面的例子选取有点不大对,一般是同一个基因control组和对照组相比,但是不要在意这么多细节好了。

那在简化的情况下,我们认为pcr各个周期都是倍增的(当然实际情况可能不会一直这么快),那么相对的倍数(OPG的基因水平比起RANKL的基因水平,另外很多时候我们是检测rna的水平,所以会先做一个逆转录拿到cDNA,然后再跑RT-PCR)就是

R的addins没有output tables r运行中没有melt这个函数_没有melt这个函数_06

所以,关于方差的bottom lines:

  1. 方差应该相加,所以用来做对照的那一组其实不应该画error bar,因为最终的error bar是两边均值方差的叠加,一起画在treatment group上才对
  2. error bar其实是不对称的,真正对平均值对称的仅仅到ddCt这一步为止,再往后就不对称了。