美文网首页生物信息学与算法
生信编程实战第4题(python)

生信编程实战第4题(python)

作者: 天秤座的机器狗 | 来源:发表于2018-08-12 18:19 被阅读18次

题目来自生信技能树论坛

image.png

从这题开始,我决定只用python做
python很强大,熟练了可以做其他语言能做的大部分事情

import glob
import collections
mydict=collections.OrderedDict()
list_dirs=glob.glob("./*.txt")
for i in list_dirs:
   for line in open (i):
      array=line.strip().split("\t")
      if array[0] not in mydict:
           mydict[array[0]]=[array[1]]    #注意array[1]外面的中括号
      else:
           mydict[array[0]].append(array[1])    #字典中,对一个key增加多个value的方法

for gene_name in mydict:
    print("%s\t%s"%(gene_name,"\t".join(mydict[gene_name])))

部分结果如下


image.png

总结一下知识点:
1.关于glob
这个题目一开始困扰我的问题就是文件读取的问题,因为目录下有太多文件要合并
这边提供的一个思路就是把所有待读取文件的路径存到列表中然后对列表遍历。这里所用到的就是python中glob包中的glob函数
list_dirs=glob.glob("./")
当前文件下的
文件路径读取到列表中

2.一个key对应多个value,而value形成一个列表。
对第一个文件就是建立单一的键值对
注意!!!
因为我们知道后面的value会形成list,所有这里键值对的构建中value要加[]
dict[key]=[value1]
同一个key,添加新的value的方法是
dict[key].append(value2)

3.一个key,多个value,怎么打印的问题
一般我们打印字典中所有的键值对的时候,用的是
for k,v in dict.items():
print(k,v)
但这里只有一个key,所以是
for key in dict:
print("%s\t%s"%(key,"\t".join(dict[key])))

"t".join()可以把list中的value用"\t"连接起来

相关文章

  • 生信编程实战第4题(python)

    题目来自生信技能树论坛 从这题开始,我决定只用python做python很强大,熟练了可以做其他语言能做的大部分事...

  • 生信编程实战第6题(python)

    题目来自生信技能树论坛 下载好的文件大概格式如下 简单的了解一下都有什么 A开头的 B开头的 C开头的(这一行是p...

  • 生信编程实战第1题(python)

    题目来自生信技能树统计人类外显子长度坐标的文件可如下下载: 打开文件如下 于是写了如下脚本 然后运行 正则表达式再...

  • 生信编程实战第11题(python)

    题目来自生信技能树论坛 题目不难,先给出代码 这里主要说几个问题: python中写入文件可以用的模式如下:f=o...

  • 生信编程实战第9题(python)

    题目来自生信技能树论坛 这个题目不难,但是我想说明的是大的数据集和小的数据集的脚本很多时候是不一样的 比如这道题,...

  • 生信编程实战第10题(python)

    题目来自生信技能树论坛 先下载tss文件 然后针对这些位点操作 脚本如下: 根据不同的情景,对倒数第二行的if条件...

  • 生信编程实战第8题(python)

    题目来自生信技能树论坛 这道题很简单,但是应该更重要的是学会用R的方法,我后面会用R把这个系列的题目重做一遍,这里...

  • 生信编程实战第5题(python)

    题目来自生信技能树论坛 先从hg38的gtf中提取"ANXA1"基因 在题目之前先分析要处理的数据的结构是什么样的...

  • 生信编程实战第3题(python)

    题目来自生信技能树论坛 做题之前我们先看看文件的内容是什么 gtf有9列1.染色体名 2.注释信息的来源,比如”G...

  • 生信编程实战第7题(python)

    题目来自生信技能树论坛 做这个题目之间必须要了解一些背景知识 1.超几何分布超几何分布是统计学上一种离散概率分布。...

网友评论

    本文标题:生信编程实战第4题(python)

    本文链接:https://www.haomeiwen.com/subject/erwsbftx.html