云生信学生物信息学 关注我们
小云学生信的时候有很多人都来嘱咐小云,学生信一定要会一门编程语言,于是小云就选择了当时很火的Python,但小云学的不是很明白,只记住了一些基本语法,会写一些小程序,而这些小程序里最常用的就是匹配小程序。
比如说,小云筛选得到了18个基因,下一步要做个单因素分析,需要用到这些基因的表达量,于是小云就写了个小程序来快速查找基因。
先来看看输入文件,18gene.txt
这个文件就是放入需要匹配的基因名就好了,下面是表达矩阵.txt,包含448个样本,8937个基因。大概格式如下。
下面就开始进入小程序了
import collections #引入collections模块,这个模块是python自带的,直接引用就好了,不需要安装。
output=open("18result.txt","w") #提前打开写入文件
dict1=collections.OrderedDict() 引入collections模块后就可以使用模块里的函数了,OrderedDict是建立一个有序的字典了,以前python本身的字典函数dict是无序的,但最新版本的python的字典是有序的了。
with open("表达矩阵.txt") as file1: #打开表达量文件
title1=file1.readline() #读取标题
for line in file1: #对文件每一行进行相同的处理,所以要写一个循环。
line1=line.rstrip("
\r")
ID=line1.split(" ")[0].strip('"') #写入基因ID
list1=line1.split(" ")[1:]
line2=" ".join(list1) #写入后面的表达量
dict1[ID]=line2 #构建字典
output.write(title1) #写入标题
with open("18gene.txt") as file2:
for i in file2:
ID2=i.rstrip("
\r").split(" ")[0].strip('"') #读取目标基因的ID
output.write(ID2+" "+dict1.get(ID2,"a")+"
") #将目标基因与查到的表达量都写入文件
output.close() #关闭文件
这就是小云写的最多的python匹配小程序了,用的时候吧文件名替换一下就行了,小伙伴们学会了吗?欢迎来和小云讨论哟。
留言与评论(共有 0 条评论) “” |