前言
在生物信息数据处理过程中,因为很多数据库的基因用的标识符不同,经常遇到基因symbol和ID转换的问题,这里主要介绍利用DAVID这个工具进行标识符之间的转换~
步骤:
1.进入DAVID(https://david.ncifcrf.gov/)网页
2.选择Shortcut to DAVID Tools–>Gene ID Conversion
3.先导入基因列表,即upload部分
4.提交后,出现下图的界面,可以检查下自己的导入数据
5.重复步骤2选择Shortcut to DAVID Tools-->Gene ID Conversion,进入新的界面,这里可以看到和一开始不一样的是这里已经有导入的数据列表。
6.对右边部分进行选择
7.等待一会儿后就可以看到转换结果,这里可以看到27个基因已经全部转换成功。
综上,整个转换过程就完成了。需要注意的是这个工具一次性只支持上限为3000个的基因,如果数量较大,建议分批次转换。
数据处理:
上述得到的文件存在一个问题:得到的基因列表的顺序和输入的基因列表的顺序并不是一致的。如果你的工作对这个顺序没有要求的话,这部分就可以忽略啦~那如果我们需要根据自己的基因列表的顺序得到转换后的标识符怎么办嘞?这里就介绍两种方法。
1.写代码,利用字典将上述得到的ID和symbol一一对应,然后对于自己的基因列表为key值,利用字典找到对应的value值
Python语言代码如下:
import csv
import codecs
f=codecs.open('convert.txt',mode='r')#读取转换文件
line=f.readline()
dict={}
while line:
a=line.split()
dict[a[0]]=a[1]#字典保存对应关系
line=f.readline()
f.close()
with open('GeneCards.csv','r') as f:#自己的基因列表文件
rows=csv.reader(f)
with open('GeneCards.csv','w',newline='') as fc:
writer=csv.writer(fc)
for row in rows:
if row[0] in dict.keys():
row.append(dict[row[0]])
writer.writerow(row)#由dict得到值并写入文件
2.不过写代码读写文件总感觉麻烦,后来本人又get到一种十分方便的方法,利用excel中vlookup函数可以快速解决这个问题,后来就一直用这个方法啦~(因为真的太方便,哈哈),对于类似这样的问题都适用。为了方便这个举例说明啦!
例如我们已经得到ID和Symbol的对应关系为A列和B列,我们已有的基因列表为trans-ID,那么我们怎么通过ID和Symbol得到trans-Symbol呢?
那么vlookup这个函数就发挥大作用啦~,我们只需要在E2中输入=VLOOKUP(D2,$A:$B,2,FALSE),然后回车,就会得到6对应的是F。
然后找到E2单元格右下方的小加号双击就可以得到所有的trans-Symbol啦~
这里有几个很重要的注意事项: 1.ID和Symbol的对应关系的列一定要在结果列trans-ID和trans-Symbol的前面哦~ 2.得到结果列trans-Symbol一定要复制,然后再以值的形式重新粘贴,这样做是为了避免删除掉A,B列后E列出错,如下图,因为A,B列删除后E列中公式找不到对应关系就报错啦~
综上就可以得到任意自己想要的有顺序的基因列表的转换标识符啦~
这里主要是举例子说明,童鞋们具体应用的时候要根据自己的实际情况改变代码路径或者公式里的参数哦!