Skip to content

trans_array函数存在潜在bug #14

@louhao1129

Description

@louhao1129

处理GSE28491发现
原始exp探针数:18,391
ids中有映射的探针数:16,354(丢失2,037个,约11%)
实际唯一基因数:10,479
转换后实际行数:7,884(损失很大!)
根本原因
问题出在 trans_array 函数的实现上。关键代码:

ids = ids[!duplicated(ids$symbol), ]  # 先在整个ids(41937个)上去重,保留每个symbol的第一个探针
exp = exp[rownames(exp) %in% ids$probe_id, ]  # 然后才看哪些在exp中

这一行代码的问题:

它在 整个 ids(41937个探针)上对 symbol 去重,只保留每个基因的第一个 probe_id。但这个第一个探针可能根本不在你的 exp 中

具体例子
假设:

ids 中基因 ABC 有10个探针:probe1, probe2, ..., probe10
trans_array 去重后只保留 probe1
但 exp 中只有 probe3, probe5, probe7
因为 probe1 不在 exp 中,所以基因 ABC 的所有探针都被过滤掉了
但实际上 exp 中有 probe3, probe5, probe7,应该至少保留一个!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions