我有一个python脚本,可以从基因表达数据中生成z分数。我还希望脚本创建一个spearman相关输出。我想知道重复之间的相关性。所以在输出中,行和列都是重复的名称。
我还没有找到任何关于如何使用scipy来计算超过2个列表的spearman等级相关性的示例。我可以使用scipy的stats.spearmanr来比较一个命令中的所有重复项吗?我将数据存储在一个字符串中。以下是我的一些代码:
t_vals=[]
z_outline = []
z_outlines = []
header = None
for line in input_file:
line = formatLine(line)
if line.startswith("#"):
header = line
header += "\n"
z_output.write(header)
sp_output.write(header)
continue
lineList = line.split("\t")
vals = []
in_vals =[]
for item in lineList[1:]:
val = float(item)
in_vals.append(val)
vals.append(val)
median = robjects.r['mean'](robjects.FloatVector(vals))[0]
mad = robjects.r['sd'](robjects.FloatVector(vals))[0]
z_vals = []
t_vals = []
for v in in_vals:
if mad == 0:
z_val = (v - median) / CLOSE_TO_ZERO
else:
z_val = (v - median) / mad
z_vals.append(z_val)
t_vals.append(z_val)
z_vals_str = []
for v in t_vals:
z_vals_str.append("%.4f" % v)
z_outline = "\t".join(lineList[:1]) + "\t"
z_outline += "\t".join(z_vals_str)
z_outline += "\n"
z_outlines.append(z_outline)
for outline in z_outlines:
z_output.write(outline + "\n")
我感谢任何帮助!感谢