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