![d312bbef02d620f3c3ec40c3fb7ae4b4.png](https://i-blog.csdnimg.cn/blog_migrate/18b0e54cc5f9c5b81feb0e9f023850af.jpeg)
摘要:
如果几个列的数据都是一个类型,合并起来会更容易分析。怎么合并呢?用pandas的melt函数。在文末对于rt-pcr ddct值的统计也写了一点个人的认识。
![2f2efe34dace2eb2a873e98f9f3ff922.png](https://i-blog.csdnimg.cn/blog_migrate/3ed31d50c48cb0c757325c109473521f.jpeg)
pcr的数据表一般长成这样,每一列一个ct值,然后各次测量的结果就一行一行列下来。或者长成下面这样:
![bad44b6e047e903920fe22d4d0e48ff6.png](https://i-blog.csdnimg.cn/blog_migrate/46a67b9931af34ec5b5d50ea94b70b86.jpeg)
三次检测从左到右依次排开,基因和treatment group作为两个id var就这么放在左边。不管是哪种形式,真正方便我们做数据分析的,还是下面这种:
![9aba8b98bb71a6e1327e992b539beecc.png](https://i-blog.csdnimg.cn/blog_migrate/e2cd7c08adbc202a631fdf535de61f51.jpeg)
在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的统计
下面的内容是我自己粗浅的理解,如有错误请务必指出。
- ct值是什么东西呢?
ct值指的是目标基因通过不断的复制,到达可以被pcr仪器检测的临界值时候经历的周期数。自然,越早(ct值越小)到达临界值,说明要检测的基因含量越高。
2. ddct是怎么一个计算过程
首先肯定要有一个内参基因,比如说GAPDH,这个基因的ct我们写作
![equation?tex=Ct_%7Bgapdh%7D](https://i-blog.csdnimg.cn/blog_migrate/8e1722f0b5b0a6f5e0fef8a6edc8d163.png)
![equation?tex=Ct_%7Bopg%7D%EF%BC%8CCt_%7Brankl%7D](https://i-blog.csdnimg.cn/blog_migrate/5c5df24f71299b7757fcabf52b8f34e1.png)
![equation?tex=%5Cbar%7BCt%7D_%7Bgapdh%7D%2C+%5Cbar%7BCt%7D_%7Bopg%7D%2C+%5Cbar%7BCt%7D_%7Brankl%7D](https://i-blog.csdnimg.cn/blog_migrate/f59881663915ee019baa54fc5ca29b55.png)
![equation?tex=%5Cbar%7BCt%7D_%7Bopg%7D-%5Cbar%7BCt%7D_%7Bgapdh%7D](https://i-blog.csdnimg.cn/blog_migrate/392f8b59b2025a4cd39b6a7ac5fb8164.png)
![equation?tex=%5Cbar%7BCt%7D_%7Brankl%7D-%5Cbar%7BCt%7D_%7Bgapdh%7D](https://i-blog.csdnimg.cn/blog_migrate/0a0f3ead0fa94439a04ba1b981cb268c.png)
![equation?tex=%28%5Cbar%7BCt%7D_%7Bopg%7D-%5Cbar%7BCt%7D_%7Bgapdh%7D%29-%28%5Cbar%7BCt%7D_%7Brankl%7D-%5Cbar%7BCt%7D_%7Bgapdh%7D%29](https://i-blog.csdnimg.cn/blog_migrate/f0c9bb3527660f1de59e70a7ae29dae2.png)
哦,上面的例子选取有点不大对,一般是同一个基因control组和对照组相比,但是不要在意这么多细节好了。
那在简化的情况下,我们认为pcr各个周期都是倍增的(当然实际情况可能不会一直这么快),那么相对的倍数(OPG的基因水平比起RANKL的基因水平,另外很多时候我们是检测rna的水平,所以会先做一个逆转录拿到cDNA,然后再跑RT-PCR)就是
![equation?tex=2%5E%7B-ddct%7D](https://i-blog.csdnimg.cn/blog_migrate/521b443d9e6f471a0e17fc96c334df60.png)
上面这些一路走过来倒还ok,只不过error bar怎么办呢?比如现在你有三个数据,那就可以求一个方差对吧,但是这个方差是ct值的方差呀,不是dct或者ddct更加不是
![equation?tex=2%5E%7B-ddct%7D](https://i-blog.csdnimg.cn/blog_migrate/521b443d9e6f471a0e17fc96c334df60.png)
3. 方差怎么算
先看dct的算法,比如
![equation?tex=%5Cbar%7BCt%7D_%7Bopg%7D-%5Cbar%7BCt%7D_%7Bgapdh%7D](https://i-blog.csdnimg.cn/blog_migrate/392f8b59b2025a4cd39b6a7ac5fb8164.png)
![equation?tex=VAR%28%5Cbar%7Bx%7D-%5Cbar%7By%7D%29%3DVAR%28%5Cbar%7Bx%7D%29%2BVAR%28%5Cbar%7By%7D%29](https://i-blog.csdnimg.cn/blog_migrate/f9aa77b024c91dc63e1cc487e80e2849.png)
至于平均值的方差自然就应该是
![equation?tex=VAR%28%5Cbar%7Bx%7D%29%3D%5Cfrac%7BVAR%28x%29%7D%7Bn%7D](https://i-blog.csdnimg.cn/blog_migrate/7d07980377ce8cdd6857030095a7c793.png)
![equation?tex=VAR%28%5Cbar%7Bx%7D%29%3D%5Cfrac%7B%5Cfrac%7B%5Csum%7B%28x-%5Cbar%7Bx%7D%29%5E2%7D%7D%7Bn-1%7D%7D%7Bn%7D](https://i-blog.csdnimg.cn/blog_migrate/850ec1d40aed5c063a2d397bc1fb8eb1.png)
而对于ddct呢,因为ddct是
![equation?tex=%28%5Cbar%7BCt%7D_%7Bopg%7D-%5Cbar%7BCt%7D_%7Bgapdh%7D%29-%28%5Cbar%7BCt%7D_%7Brankl%7D-%5Cbar%7BCt%7D_%7Bgapdh%7D%29](https://i-blog.csdnimg.cn/blog_migrate/f0c9bb3527660f1de59e70a7ae29dae2.png)
![equation?tex=%5Cbar%7BCt%7D_%7Bgapdh%7D](https://i-blog.csdnimg.cn/blog_migrate/e60caea880e39e321cbd0225f7e41d64.png)
![equation?tex=%5Cbar%7BCt%7D_%7Bopg%7D%2C%5Cbar%7BCt%7D_%7Brankl%7D](https://i-blog.csdnimg.cn/blog_migrate/51bc430dd8da7674603cedf49c913396.png)
这个方差求出来以后就能开方拿到标准差,不过这个时候也仅仅只是ddCt的方差,不过只是做一个幂运算
![equation?tex=2%5E%7B-ddCt%7D](https://i-blog.csdnimg.cn/blog_migrate/20dfabc79c74b182a4f3de06482c4314.png)
![equation?tex=2%5E%7B-ddCt%5Cpm+std%7D](https://i-blog.csdnimg.cn/blog_migrate/cb4887941ccb812d3db43a9d1ce5b6aa.png)
![equation?tex=2%5E%7B-ddCt%7D%5Cpm+2%5E%7Bstd%7D](https://i-blog.csdnimg.cn/blog_migrate/20dfabc79c74b182a4f3de06482c4314.png%5Cpm+2%5E%7Bstd%7D)
所以,关于方差的bottom lines:
- 方差应该相加,所以用来做对照的那一组其实不应该画error bar,因为最终的error bar是两边均值方差的叠加,一起画在treatment group上才对
- error bar其实是不对称的,真正对平均值对称的仅仅到ddCt这一步为止,再往后就不对称了。