簡體   English   中英

基因表達中的相關病例與對照

[英]Correlation Case vs Control in gene expression

我有77名癌症患者的基因表達數據。 我有一組來自患者的血液,一組來自患者腫瘤,一組來自患者的健康組織:

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

如果腫瘤組織中的表達與我所有基因的血液表達相關,我想進行分析。 做這個的最好方式是什么?

如果你熟悉python,我會使用pandas 它使用類似於R的“DataFrames”,因此您可以采用該概念並將其應用於R.

假設您的data1是一個分隔文件,格式如下:

GeneName | ExpValue |
gene1       300.0
gene2       250.0

然后,您可以執行此操作以將每種數據類型轉換為DataFrame

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')

現在merge DataFrame merge為一個主df

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()生成下面的結果。 但此時,如果需要,您可以使用numpy執行更復雜的計算。

          blood      tissue       tumor
blood   1.000000    0.395160    0.581629
tissue  0.395160    1.000000    0.840973
tumor   0.581629    0.840973    1.000000

HTH至少朝着正確的方向前進。

編輯

如果要使用Student T的對numpy.log更改,可以使用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']])

要獲得每個基因的“日志”倍數更改,這會將新列附加到您的df_log DataFrame。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM