「轉發翻譯」爲生物信息學設計的Python(2011年版)


這本書斷斷續續的譯了一年多,本來是新書的,都變成老書了。Python發展這麼快,有些內容都趕不上形勢了。最近工作比較忙,沒有時間把它翻譯完了,幸好正文部分已完,就此截止了吧。翻譯過程中學到了很多東西,也有許多感觸,在這裡記錄一下。

我接觸Python是在讀博士後的實驗室之後,之前用了六年的perl和C。新的實驗室的氛圍是用Python,所以就下決心轉了過來的。最初用Python,它的強制縮進讓我用起來很不舒服,有一種拘束感,這或許是用perl習慣的原因吧;但是,經過了更長時間的使用後,特別是現在,發現三年前寫的代碼,現在重新啟用,還能看得很清楚,確實讓人覺得很爽的。這在用perl時,是沒有過的。

Python在生物信息中有很好的應用,正如我在ChinaUnix論壇的討論中提到的:

“ 1,Python的學習曲線很好。對於沒有接觸編程的人能很快上手,對有編程經驗的人更是容易寫。

Python代碼的閱讀性好,學習別人寫的Python,像在讀一本小說一樣流暢,這一點是別的語言比不了的。

2,Python的數據結構特別適合生物信息。比如Python的序列用於生物序列的分析是得天獨厚的,其字典功能的強大更不用說了。

Python的面向對象很好,能很容易把生物信息學中的數據對象化。

3,Python有諸多的軟件包支持,擴展性很好。除了有廣泛的計算機科學的軟件支持外,生物信息學中需要的許多模塊有Biopython,pygr支持,還有matplotlib,networkx,scipy等科學計算、研究中強大的軟件包支持,python是一種很好的膠水語言,與R有rpy的接口,能提供很好的統計學支持。

4,Python同樣支持正則表達式,使得它在文本處理方面,能力不比perl差。

”(其他關於Python的這個應用調查見http://bbs.chinaunix.net/thread-3760935-1-1.html)

提到Python就不得不提perl。關於生物信息的perl和Python的比較和爭論由來已久,這裡我僅給出幾個鏈接,看看大家怎麼說的:

http://quwubin.is-programmer.com/posts/4039.html

http://www.yelinsky.com/blog/archives/344.html

http://www.dxy.cn/bbs/topic/8440360

http://www.zhihu.com/question/20091346

http://www.douban.com/group/topic/31254327/

這本書的翻譯的過程中,有幾個特點使我印象深刻:

1,本書對Python做了深入淺出的介紹,儘量避免了許多專業的編程術語,從生物信息應用的角度出發來教編程。同時它又旁徵博引,為深入的學習提供了可能。課後的習題可以加深對本章概念的理解。

2,它不僅是Python的基礎教程,還有大量的第三方應用包的介紹,使讀者能很快的適應python的開發環境做一些小的應用。在開發中學編程是最好的學編程的方法。

3,作者對所有的書中的代碼都有網上的鏈接。可以直接下載使用,便於讀者的學習。

4,作者的某些章節的介紹,說理清楚,例子舉得恰當。比如數據庫一章,通過循序漸進的例子,把數據庫設計分析得條條是道,很另人佩服。

當然它也有一些不足,就重要的說幾點,

  1. 本書對python初學者是一個很好的教材,但是它對於如何使用help和dir卻沒有介紹,不能說不是一個重要疏漏。這裡我補充一下:

在python交互方式下,對任何一個對象,包、函數或類,都可以用help(ObjectName)的形式,顯示其函數的幫助。用dir(ObjectName)的方法,可以顯示對象的屬性和方法列表。

這個兩個函數在用Python在工作中是必備的。

  1. 本書講的是生物信息學的應用,有幾個軟件包是用的非常多的,它卻沒有提及,比如:

a.rpy/rpy2, Python和R的接口,可以在Python中調用R的對象和函數;

b.numpy/scipy, 用於科學計算的軟件包;

c.matplotlib,Python的科學繪圖包,圖形酷似matlab的圖,非常漂亮。

d.networkx,複雜網絡研究的軟件包,系統生物學用的很多。

  1. 原書內容,排版和拼寫中還有些錯誤,不多,我在譯文已儘量改正了。

當然我這裡是有點雞蛋裡面挑骨頭了,一本書不可能包羅萬象。這本書涵蓋的內容已經讓我受益匪淺,只是願望中這樣的好書希望它能無瑕疵罷了。

有網友提到是不是能把文稿打成pdf,以便於學習,很抱歉最近工作太忙,實在沒有時間整理了。本書的第四部分的若干程序,由於網上有代碼,就不在這裡排版了,偷懶了,呵呵。

非常感謝Yummy對譯本提出的大量修改意見,還有各位朋友的關注和意見。譯文中肯定還有很多不足和錯誤,這裡僅供參考,還請讀者對照原文閱讀。請方家多加指正。

前言

第一部分 編程

第一章 介紹

第二章 初識Python

第三章 基本編程:數據結構

第四章 編程:流程控制

第五章 處理文件

第六章 代碼模塊化

第七章 錯誤處理

第八章 面向對象編程(OOP)介紹

第九章 正則表達式

第二部分 Biopython

第十章 Biopython (I)

第十章 Biopython (II)

第三部分 高級主題

第十一章 網絡應用

第十二章 XML

第十三章 Python和數據庫

第十四章 合作開發:版本控制

第四部分 帶註釋代碼的Python菜譜 第十五章 批量操作序列

第十六章 過濾載體汙染的網絡應用

第十七章 用Prime3尋找PCR引物

第十八章 對引物集計算解鏈溫度

第十九章 從Genbank過濾出特定字段

第二十章 轉換XML BLAST文件到HTML

第廿一章 推導剪切位點

第廿二章 用限制性內切酶處理DNA突變

第廿三章 多序列聯配的網絡服務器

第廿四章 用存儲在數據庫中數據來畫標記位置


分享到:


相關文章: