生物資訊Python 從入門到精通

2021-09-29 11:31:56 字數 3393 閱讀 7094

生物資訊python-從入門到精通?

python開發的方向太多了,有機器學習,資料探勘,網路開發,爬蟲等等。其實在生信領域,python還顯現不出絕對的優勢,生信的大部分軟體流程都是用shell或perl寫的,而且已經足夠好用了。我選python是因為我想順便學點資料探勘和機器學習的東西,而且python這些年越來越火,發展勢頭遠超其他指令碼語言,所以學它肯定是沒錯的。

一、入門標準

入門比較難定義,什麼程度才算入門呢?

掌握基本的語法,熟練使用python的內建型別、內建函式和資料結構。

了解一些基本的模組的使用,能夠實現一些簡單的需求。

後面有乙個例項,如果你能簡單的做完,那我敢肯定你已經入門了。

二、基本知識點

1.基本語法

縮排:python是通過**縮進來決定**層次邏輯的,一般約定使用4個空格

版本問題:主要包括2.x系列的和3.x系列的,兩者語法不同且不相容,有的模組只能在指定版本下安裝。建議使用3.x python,碰到特殊問題再去使用指定版本

檔案編碼宣告:python會去環境變數裡尋找python直譯器。如果**裡有中文,則要以utf-8編碼

#!/usr/bin/env python

#-- 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 基本資料型別:布林;整型;浮點型;字串

複製**

『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 基本資料結構:列表、元組、字典、集合。資料結構就是一種容器,用於在記憶體中存放我們的資料。

列表:任意元素組成的順序序列,以位置為索引。

『count』, 『index』

字典:鍵值對,沒有順序,鍵必須是常量。

『clear』, 『copy』, 『fromkeys』, 『get』, 『items』, 『keys』, 『pop』, 『popitem』, 『setdefault』, 『update』, 『values』

集合:沒有順序,元素之間沒有重複,相當於捨棄了值的字典。集合操作(&,|,-,^,<,<=,>,>=)

『add』, 『clear』, 『copy』, 『discard』, 『pop』, 『remove』, 『update』

『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文件。

正規表示式 re

有序字典 collections.ordereddict()

呼叫系統命令 subprocess.call()

三、入門例項

題目:從大量fasta檔案中提取指定序列,並對提取到的序列做某些處理(如求反向互補序列)

描述:假設你有很多測序資料,分別儲存在不同資料夾的不同檔案裡,現在給你一些序列名,要求你從眾多資料中提取出特定的序列。

image

image

思路:遍歷每乙個資料夾;遍歷每乙個檔案;讀取檔案,判斷序列,輸出序列(處理),關閉檔案;處理資料,新增乙個函式即可。

四、精通標準

當然這只是個噱頭,精通的道路是無止境的,下面只是羅列了一些常見的高階特性。

切片,推導式,生成器,異常處理

高階模組:threading(多執行緒),ctypes(呼叫c程式優化效能),logging(日誌)

專業模組:pysam - 處理基因組資料(fasta/fastq/bam/vcf)的python模組

biopython:python的計算分子生物學和生物資訊學工具包

編寫自己的package:解決某個特定需求,上傳到 pypi,然後你就成為大神了

程式設計規範:寫出規範化的** google python coding style

函式式程式設計:即使**量暴增也不會影響**的可讀性,除錯和debug也會變得非常簡單。

物件導向程式設計:最高端的程式設計方法,對函式進行分類和封裝,讓開發「更快更好更強…」

五、最後

python只是一門程式語言,一種實現工具,我們可以用很多種語言來替換它,我們之所以選擇python,是因為我們喜歡它給我們帶來的便捷。如果你想深入某個領域,其實真正重要的是技術背後的演算法。

六、推薦資源

python教程 - 廖雪峰的官方**

python初級教程:入門詳解

python 物件導向(初級篇)

python | codecademy

google python編碼風格

python正規表示式指南

《python學習手冊》

《python程式設計金典》

《bioinformatics programming using python》

python注釋 Python學習入門到精通 注釋

如果你多了解一些程式語言,你就能夠發現乙個特別神奇的現象,所有的程式語言都允許你寫注釋,而在很多初學者眼中,注釋並不是什麼重要的東西,學習過程中幾乎沒有太多的關注。但在實際工作中,注釋是非常重要的,甚至有觀點認為注釋是程式的一部分,為什麼在專業人士眼中,注釋如此重要呢?其實原因很簡單,你今天寫的 7...

Scrapy爬蟲從入門到例項精講(上)

最近幾天一直在學習scrapy這個框架,打算用幾篇文章來總結一下自己這段時間學習的知識。首先我們需要簡單介紹一下scrapy是個什麼東西。先來看一張圖,是從官網上弄下來的。scrapy是乙個框架,這個框架是用來爬取 資料的,並且該框架為我們提供了各種介面,包括爬蟲介面,管道介面,資料 儲存介面以及資...

C 面向服務WebService從入門到精通

一 c 遠端呼叫技術webservice修煉手冊 基礎篇 本次分享課您將學習到以下乾貨知識點 1 webservice技術呼叫原理圖。2 c webservice常用的幾種呼叫方式。3 c webservice除錯小技巧和開發必備工具分享。4 實戰演練之如何通過優雅的方式進行webservice呼叫...