R 基因表达中病例与对照的相关性

R 基因表达中病例与对照的相关性,r,bioinformatics,correlation,R,Bioinformatics,Correlation,我有77名癌症患者的基因表达数据。我有一套来自tha患者血液,一套来自患者肿瘤,一套来自患者健康组织: data1 <- ExpressionBlood data2 <- ExpressionCancerTissue data3 <- ExpressionHealtyTissue data1如果您熟悉python,我会使用。它使用的“数据帧”与R类似,因此您可以将这个概念应用于R 假设您的data1是一个格式如下的分隔文件: GeneName | ExpValue | gen

我有77名癌症患者的基因表达数据。我有一套来自tha患者血液,一套来自患者肿瘤,一套来自患者健康组织:

data1 <- ExpressionBlood
data2 <- ExpressionCancerTissue
data3 <- ExpressionHealtyTissue

data1如果您熟悉python,我会使用。它使用的“数据帧”与R类似,因此您可以将这个概念应用于R

假设您的
data1
是一个格式如下的分隔文件:

GeneName | ExpValue |
gene1       300.0
gene2       250.0
然后,您可以这样做,将每种数据类型放入一个
数据帧中:

dfblood = pd.read_csv('path/to/data1',delimiter='\t')
dftissue = pd.read_csv('path/to/data2',delimiter='\t')
dftumor = pd.read_csv('path/to/data3',delimiter='\t')
现在,将数据帧合并到一个主数据帧中

dftmp = pd.merge(dfblood,dftissue,on='GeneName',how='inner')
df = pd.merge(dftmp,dftumor,on='GeneName',how='inner')
重命名列,注意确保顺序正确

df.columns = ['GeneName','blood','tissue','tumor']
现在,您可以使用简单的命令规范化数据(如果还没有)

df = df.set_index('GeneName') # allows you to perform computations on the entire dataset
df_norm = (df - df.mean()) / (df.max() - df.min())
您可以全部
df_norm.corr()
生成以下结果。但此时,如果需要,可以使用执行更复杂的计算

          blood      tissue       tumor
blood   1.000000    0.395160    0.581629
tissue  0.395160    1.000000    0.840973
tumor   0.581629    0.840973    1.000000
至少朝着正确的方向移动

编辑

如果您想使用Student T的日志折叠更改,您可以使用
numpy.log

import numpy as np

df[['blood','tissue','tumor']] = df[['blood','tissue','tumor']]+1
# +1 to avoid taking the log of 0
df_log = np.log(df[['blood','tissue','tumor']])
为了获得每个基因的“log”折叠变化,这将在df_log数据框中添加新的列

df_log['logFCBloodTumor'] = df_log['blood'] - df_log['tumor']
df_log['logFCBloodTissue'] = df_log['blood'] - df_log['tissue']

那么计算原木折叠变化呢?