在处理病毒数据的时候遇到一个问题,由于有不同病毒对应的 蛋白编码基因相同,导致读取的时候出现问题:主要是在R中"ORF1ab"读取为0但是scanpy中读取为13.548,这个是什么原因呢?
经过调研和请教后发现是处理方式的不同:
1.R中读取遇到重复的基因名称时第一个会保持原名称,后续重复会依此加上“.1”,“.2”
2.py中读取遇到重复的基因名称时会都保留不做修改,使用adata.var_names_make_unique()
来让其区分相同基因:第一个会保持原名称,后续重复会依此加上“-1”,“-2”
由于我的这个样本是对应的第二个病毒名称对应的基因,所以我应该去计算“ORF1ab.1”或者“ORF1ab-1”
3.注意,scanpy中如果不加上adata.var_names_make_unique()
这个代码,则相同基因计算平均值会被除以基因重复的次数,例如我们的"ORF1ab"出现了两次,如果不加这个代码结果是13.548,加上后计算平均表达"ORF1ab"是0,"ORF1ab-1"是27.095;R中计算平均表达"ORF1ab"是0,"ORF1ab.1"是27.095,是能够完全对应的。
欢迎大家评论交流!
(每帖分享:最初偏离真理毫厘,到头来就会谬之千里 -- 亚里士多德)