最近想學(xué)一下生信編程悯周,但是由于自己是生物專業(yè)粒督,對計算機(jī)編程也不是太了解,所以感覺還是有很大困難禽翼。其實(shí)自己對編程還是有一定興趣屠橄,以前也有自學(xué)過JAVA,不過現(xiàn)在大家編程好像都用python了闰挡,所以在網(wǎng)上找了幾本在生物學(xué)中應(yīng)用python編程解決生物學(xué)問題的書籍學(xué)習(xí)一下锐墙,并想著通過寫筆記的方式督促并記錄自己的學(xué)習(xí)過程。
給自己的第一個任務(wù)是《Python for Bioinformatics》這本書长酗,作者是Sebastian Bassi溪北,是一位在軟件開發(fā)和生物信息學(xué)研究方面擁有豐富經(jīng)驗(yàn)的生物技術(shù)專家。
本書主要包括三個部分共22章內(nèi)容夺脾。
目錄:
第一部分 編程
第一章 介紹
第二章 安裝及初步了解python
第三章 基本編程:數(shù)據(jù)結(jié)構(gòu)
第四章 流程控制
第五章 文件處理
第六章 代碼模塊化
第七章 處理錯誤
第八章 面向?qū)ο缶幊探榻B
第九章 Biopython 介紹
第二部分 高級主題
第十章 網(wǎng)絡(luò)應(yīng)用
第十一章 Xml
第十二章 Python和數(shù)據(jù)庫
第十三章 正則表達(dá)式
第十四章 Python繪圖
第三部分 帶有注釋的Python源代碼
第十五章 批量序列操作
第十六章 過濾載體污染的Web應(yīng)用
第十七章 使用Primer3尋找pcr引物
第十八章 從引物集計算解鏈溫度
第十九章 從 GenBank 文件中過濾掉特定字段
第二十章 推斷剪切位點(diǎn)
第二十一章 多重對齊網(wǎng)絡(luò)服務(wù)器
第二十二章 使用存儲在數(shù)據(jù)庫中的數(shù)據(jù)繪制標(biāo)記位置
第一章之拨、介紹
1、使用本書
書上所有代碼都放在了github上咧叭,可以下載下來敦锌,如果安裝了Jupyter,可以使用Jupyter notebook打開運(yùn)行佳簸,這樣更加直觀乙墙。
地址:https://github.com/Serulab/Py4Bio
2颖变、為什么學(xué)習(xí)編程
- 計算機(jī)上的許多工作都是重復(fù)性的,比如收集數(shù)據(jù)听想,轉(zhuǎn)換文件格式腥刹,執(zhí)行和解釋BLAST結(jié)果等,編程能節(jié)省我們的精力汉买,又能避免錯誤衔峰。
- 編程還可以實(shí)現(xiàn)個性化的圖形,Web應(yīng)用和數(shù)據(jù)庫交互蛙粘。
3垫卤、編程基本概念
介紹基本概念,如指令出牧,數(shù)據(jù)類型穴肘,變量。
一個簡單的Python程序:
seq_1 = ’Hello,’
seq_2 = ’ you!’
total = seq_1 + seq_2
seq_size = len(total)
print(seq_size)
這個Python程序指把字符串‘Hello,’賦值給seq_1舔痕,把字符串’ you!’賦值給seq_2评抚,將seq_1和seq_2的字串相加然后把結(jié)果賦值給total,并將total字符串的長度賦值給seq_size伯复,打印seq_size的值慨代,最后輸出11。
print(seq_size)就是指令啸如;
數(shù)據(jù)類型:
- 數(shù)字(整型, integers侍匙,或浮點(diǎn)型,float)叮雳;
- 字符串想暗;
- 其它數(shù)據(jù)類型;
變量:
是一個名字债鸡,它可以代表一個值江滨,這個值在程序的運(yùn)行過程中可以改變铛纬;
注意var = value厌均,這里不是數(shù)學(xué)里相等的意思,相等具有交換性告唆,而在編程中棺弊,在右邊的項(xiàng)(value)只是取了左邊項(xiàng)(var)的名字。比如
seq_1 = ‘Hello,’
在賦值之后擒悬,變量seq_1就可以使用了模她,如
len(seq_1)
“返回一個名為seq_1的值的長度”,由于字串‘Hello,’具有六個字符懂牧,因此這個命令得到的值是6侈净。
4尊勿、為什么選Python
- 可讀性:可讀性高,容易理解畜侦;
- 自帶屬性:含有豐富的多用途的標(biāo)準(zhǔn)庫元扔,不需要用戶來下載分離的軟件包;
- 支持第三方模塊:如生物信息常用的biopython旋膳;
- 高級的自帶數(shù)據(jù)結(jié)構(gòu):字典澎语,集合,列表和元組验懊;
- 多范式編程:Python可以面向過程編程擅羞,也可以面向?qū)ο缶幊蹋?/li>
- 可擴(kuò)展性:Python可以擴(kuò)展來連接其它編程語言;
- 開放源碼:能免費(fèi)使用和分發(fā)义图;
- 跨平臺:Python程序可以在任何具有Python解釋器的計算機(jī)下運(yùn)行减俏;
- 社團(tuán):項(xiàng)目擁有更豐富的庫;