一道信息分析面试题的分析

前几天接到一个公司的电话面试,当天晚上HR发来一道题,限三日内完成并发回。我看了下,正好用到的知识自己都熟悉,花了几个钟头就给发回去了 :-)

原题大意这样 写一个程序,分别计算一个目录里所有fasta格式的核酸序列的GC含量,然后按照GC含量由低到高显示,并把结果写入一个文件
显示序列信息的格式为:
文件名 序列名 GC含量
hem.fasta hem1 24.3%

这道题挺简单的,细看之下主要有这么几点:

  • 计算序列GC含量,可以用一个函数实现
  • 列出目录下的所有文件,然后判断他们是不是fasta格式文件。前者用os模块的listdir就可,后者就是要看文件的首行是不是形如“>at1g23490”开头,即是否“>”开头,后面紧跟字符,正则就行了。
  • 结果排序。这个应该是这道简单笔试题最难的部分了。正好之前从一个博客读到解决排序的办法,就依样做了。把每条序列的结果存到一个列表里,然后对列表排序。

这是我的代码 信息分析面试

EOF