专栏名称: 弗雷赛斯
Freescience由浙江大学医学院几个硕博士发起创建,旨在最广泛分享有价值的科研技能和知识;FreeScience的宗旨:“科学自由分享、人人平等,共求真理”。
目录
相关文章推荐
科研大匠  ·  157项!又一自科学基金立项清单发布 ·  4 天前  
科研大匠  ·  DeepSeek参考文献“胡编”怎么办? ·  3 天前  
募格学术  ·  换帅!中国工程院院士,任985校长! ·  2 天前  
募格学术  ·  官宣:硕博奖学金,涨了! ·  2 天前  
51好读  ›  专栏  ›  弗雷赛斯

【生信学习周】生物信息Python从入门到精通

弗雷赛斯  · 公众号  · 科研  · 2017-08-05 12:03

正文

Python开发的方向太多了,有机器学习,数据挖掘,网络开发,爬虫等等。其实在生信领域,Python还显现不出绝对的优势,生信的大部分软件流程都是用shell或Perl写的,而且已经足够好用了。我选Python是因为我想顺便学点数据挖掘和机器学习的东西,而且Python这些年越来越火,发展势头远超其他脚本语言,所以学它肯定是没错的。

一、入门标准

入门比较难定义,什么程度才算入门呢?

  1. 掌握基本的语法,熟练使用python的内置类型、内置函数和数据结构。

  2. 了解一些基本的模块的使用,能够实现一些简单的需求。

后面有一个实例,如果你能简单的做完,那我敢肯定你已经入门了。

二、基本知识点

1.基本语法

缩进 :Python是通过代码缩进来决定代码层次逻辑的,一般约定使用4个空格

版本问题 :主要包括2.x系列的和3.x系列的,两者语法不同且不兼容,有的模块只能在指定版本下安装。建议使用3.x Python,碰到特殊问题再去使用指定版本

文件编码声明 :python会去环境变量里寻找python解释器。如果代码里有中文,则要以utf-8编码

  1. #!/usr/bin/env python

  2. #-*- coding: utf-8 –*-

变量定义 :使用前要先定义

dir():列出一个数据类型或对象的所有方法,非常好用,同help()

文件操作 :f = open(),f.close();with open() as f: ,os.path.exists(),os.path.isfile(),os.path.abspath()

目录操作 :os.mkdir(),os.rmdir(),os.listdir(),os.chdir()

开发环境选择

  • Sublime Text 对Python支持挺好,轻量级生化武器(推荐)

  • Eclipse+Pydev比较厚重,大型开发比较适合

  • Vim/Atom

  • PyCharm

  • IPython

  • WingIDE

2.处理数据

2.1 基本数据类型:布尔;整型;浮点型;字符串

  1. # 字符串的内置函数,都比较有用

  2. 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace' , 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'

2.2 基本数据结构:列表、元组、字典、集合。

数据结构就是一种容器,用于在内存中存放我们的数据。

列表 :任意元素组成的顺序序列,以位置为索引。

  1. # 列表的内置函数

  2. 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'

元组 :相当于不可变的列表,防止错误修改,节省内存开销。元组解包

  1. # 元组的内置函数

  2. 'count', 'index'

字典 :键值对,没有顺序,键必须是常量。

  1. # 字典内置函数

  2. 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'

集合 :没有顺序,元素之间没有重复,相当于舍弃了值的字典。集合操作(&,|,-,^,,>=)

  1. # 集合内置函数

  2. 'add', 'clear', 'copy', 'discard', 'pop', 'remove', 'update'

  3. 'isdisjoint','issuperset','issubset','symmetric_difference','difference','union', 'intersection', 'symmetric_difference_update','intersection_update','difference_update',

2.3 控制语句

条件 :if…else…

循环 :for,while,break,continue

2.4 模块使用

Python有着非常友好的模块安装方法,一个pip install命令几乎可以安装绝大多数的模块。建议使用模块前多看相关API文档。

最常用的模块有:sys,os,re,csv,gzip,fileinput,random,collections,time;百度上有很多很好的模块使用入门教程。

  • 正则表达式 re

  • 有序字典 collections.OrderedDict()

  • 调用系统命令 subprocess.call()

三、入门实例

题目 :从大量FASTA文件中提取指定序列,并对提取到的序列做某些处理(如求反向互补序列)

描述 :假设你有很多测序数据,分别存储在不同文件夹的不同文件里,现在给你一些序列名,要求你从众多数据中提取出特定的序列。

PS:这里本来应该有 大量实例







请到「今天看啥」查看全文