生物信息之程序學習

2021-02-25 生信寶典

作為本科學生物,後來轉行生物信息的人,經常會被人問起,為啥學習生物信息了呢?這背後通常會帶著一些困惑,生物信息分析好不好學?

我讀書的時候,實驗室純計算機出身的人員只佔很小比例,更多的是大學期間學生物的;特別的,有個做的挺好的師兄,本科是商科出身。從這來看,像我這樣本科學生物轉行生物信息還不算是有跨度的。這也從一個側面說明,專業背景不是能否學好生信的決定因素。

想想自己大學開始自學生信的時候,可以說是一頭霧水,只知道先學習編程,查了查資料,是要學習 perl語言,但是不知道要在什麼地方寫,怎麼去運行。費了些勁,在windows上安裝好perl,寫個文本文件,改下後綴,發現文件的圖標變成了perl的圖標,雙擊就可以運行了,不會寫命令行參數,不會輸出重定向,一種傻呵呵的體驗。

後來接觸了Linux系統,體驗到在終端輸入命令的快意,才找到了編程的感覺。不過,深深印在腦海裡的還是作為一個生信小白的時候,寫一個程序不知道在哪寫,在哪運行。看過不少的教程都默認學習者會打開終端,會使用終端,會在終端運行命令。而我卻是個例外,什麼都不會。程序可以照著教程寫下來,卻不知道怎麼運行。所以在我後來寫python教程的時候(後臺回復 python 可獲取),第一部分就是介紹程序在哪兒寫,在哪兒運行,怎麼運行。(最開始學習perl,在研一時在QQ群一個同一大學學長的忽悠下,嘗試了下python,那時有些編程基礎,寒假在家看了遍《python簡明教程》就可以寫了,以後也就習慣了這個語言)。

我個人是個理解能力比較差的,尤其是在接觸新的領域時,閱讀不少教程,總覺得這些教程都是給有些基礎的人寫的,自己去學習時,需要多方嘗試,多多綜合,才能找到門路。為了方便自己學習,也為了記述學習過程,就開始寫博客去記錄,力爭從一個小白的視角、從最基礎的角度去寫作,記述哪怕是最簡單的一步操作,一個錯誤,提供一個近乎人人可以直接上手的教程 (比如虛擬系統Docker的使用教程和任務流控制管理的Airflow教程,這些文章被轉載後,在同一平臺相比於同類的教程閱讀量多了10倍,我想這正是因為簡單、可操作,為初學者接觸這些工具提供了最大的便利)。

在初步知道程序語言怎麼運行並能成功運行完示例後,就要系統地讀一本簡明教程;簡明的教程不多見,因為一般的教程都涵蓋的面比較廣,而我們初期只需要關注最基本的就好 (所以我提取了我個人認為比較重要的基礎內容,形成教程),可以找本經典書,請身邊朋友劃下重點,先從頭到尾讀一遍,不管理解多少,然後再讀一遍。讀不下去,就抄寫一遍。最好的自學方式就是守住一本教材,一遍一遍地去讀去熟悉,每看一遍都會有一些了解,從陌生到熟悉,慢慢就串起來了。然後就開始自己去寫代碼,代碼就是我們思想的體現;我在教人寫代碼時,總會讓他先描述下如果沒有程序,我們自己是如何一步步的手動處理這個問題的,模擬的是程序運行的過程。理清一遍思路之後,怎麼想的就怎麼寫,只要你敢寫,就成功了。

當然這個時候一般會遇到初學者經常犯的錯誤,寫完代碼,覺得自己寫的很對,但運行時卻總是提示錯誤。絕大多數情況下,錯誤是我們自己寫作的錯誤;起碼在最開始時,要相信是自己的錯誤,不是程序語言設計的錯誤。錯誤的種類就這麼幾種,比如引號未配對、縮進不對、少了空格、文件名不對、變量名字不一致等。這時需仔細看屏幕提示的錯誤信息,在提示的錯誤行附近反覆去查看。在之前的python教程和後續的文章中,都有或會提到經常出現的錯誤和解決辦法。

能讓程序提示的錯誤都算不上大的錯誤,而程序運行成功,不等同於程序的邏輯是對的,獲得的結果是對的。程序是我們設計的,多數情況,我們對程序的輸出結果是可以預估和判斷的,不符合預期的結果是我們最應該慎重對待的。

在能獨立寫作程序後,一方面是學以致用,在解決問題中逐步學習;這時谷歌是你最好的幫手,把你遇到的錯誤或想解決的問題的關鍵字提取出,一鍵搜索,可以幫你解決大部分問題。另一方面,則是去學習別人的代碼、學習初學時跳過的內容,利用社區中提供的優秀的模塊或包來簡化、加速自己的操作。入了門,就不需要像剛開始時,什麼操作都自己去寫了,俗語叫「自己造輪子」;可以用很多經驗更豐富的開發人員做好的輪子解決我們的問題。

關於學習周期,如果能靜下心去學習的話,1個月的時間是足夠的。如果不時還能有人給你點播,2-3周就差不多了。關鍵的關鍵是去背、去抄,書讀百遍其義自見。

生信寶典至今除了寫文章,也能提供些幫助。

程序學習心得

生物信息之程序學習

Linux 學習

Linux學習-文件和目錄

Linux學習-文件操作

Linux學習 - 文件內容操作(1)

Linux學習 - 管道、標準輸入輸出

Linux學習-常見錯誤和快捷操作

Linux學習-環境變量和可執行屬性

Linux學習-文件排序和FASTA文件操作

Linux伺服器數據定期同步和備份方式

查看伺服器配置信息

ssh免密碼登錄遠程伺服器

R繪圖學習

R語言學習 - 入門環境Rstudio

R語言學習 - 入門環境Rstudio

R語言學習 - 熱圖繪製 (heatmap)

R語言學習 - 基礎概念和矩陣操作

R語言學習 - 熱圖美化

R語言學習 - 熱圖簡化

Python學習

Pandas,讓Python像R一樣處理數據,但快

Python學習極簡教程 (一)

Python學習教程(二)

Python學習教程(三)

Python學習教程 (四)

Python學習教程(五)

Python學習教程 (六)

生信傻瓜

生信寶典之傻瓜式 (一) 如何提取指定位置的基因組序列

生信寶典之傻瓜式 (二) 如何快速查找指定基因的調控網絡

生信寶典之傻瓜式 (三) 我的基因在哪裡發光 - 如何查找基因在發表研究中的表達

生信人寫程序

生信人寫程序1. Perl語言模板及配置

生信人寫程序2. Editplus添加Perl, Shell, R, markdown模板和語法高亮

NGS軟體

測序數據可視化 (一)

測序數據可視化 (二)- IGV

測序數據可視化 (三) - UCSC genomebrowser

測序數據可視化 (四)- Epigenomebrowser

Cytoscape教程(一)

RepeatMasker安裝和使用

Rfam 12.0+本地使用 (最新版教程)

測序文章數據上傳找哪裡

輕鬆繪製各種Venn圖

ETE構建、繪製進化樹

分子對接

來一場蛋白和小分子的風花雪月

不是原配也可以-對接非原生配體

簡單可視化-送你一雙發現美的眼睛

你需要知道的那些前奏

其它

用了Docker,媽媽再也不擔心我的軟體安裝了 - 基礎篇

參考文獻中雜誌名字格式混亂問題一次解決

相關焦點

  • 生物信息學之初學者(四)
    其實妨礙大家進行生物信息學學習的一個比較關鍵的地方就是編程了。
  • 生物信息分析入門全攻略
    生物信息學是生命科學研究的重大前沿領域,未來將佔據生命科學研究的半壁江山。已經有越來越多的小夥伴投入到生物信息的學習中,但是入門難、深入慢、摸不到方向等都成為持續學習的攔路虎。本文根據生物信息技術大牛成長經歷和華大人才培養經驗總結入門攻略,帶領小夥伴們全面破解生物信息學習難題。
  • 生物信息學專業:生物+計算機(高考家長每日必讀),No.85
    學什麼呢:最核心課程三大部分:生物學、數學、計算機科學課程有:生物化學、分子生物學、概率統計、數據結構及實驗、基因組信息學、轉錄組信息學、蛋白質組信息學、計算機輔助藥物發現、現代統計與生物信息學。所以,還是那句話,除非你特別明確想研究生物,否則生物信息學慎重考慮。而且,從當初高中老師的角度來講,學生物信息學可就不如學生物科學好了。
  • 我的專業你選擇|生物醫學工程與信息學院
    鑑於生物信息學的重要基礎研究價值和良好產業化前景,生物信息學專業人才廣受青睞,就業前景良好。培養目標培養適應社會主義現代化建設需要,德、智、體全面發展,具有良好職業素質,掌握生物信息學的基礎理論和科學方法,獲得終身學習能力,富有創新精神,能夠從事生物信息學教學、科研、產業應用及科技開發等相關工作的專門人才。
  • 天津醫科大學生物醫學工程專業<生物技術與生物信息專業方向、四年...
    培養學生具備生命科學、基礎醫學、現代生物技術、生物信息學和計算機技術等方面的基礎理論與基本實踐技能,使學生既具有基礎醫學和生物學基礎知識,又掌握現代生物技術與生物信息學等方面的基礎理論、基礎知識與基本實踐技能,能適應在21世紀生物技術、醫藥衛生、生物信息等高新技術部門從事技術開發、產業化、教學與科研工作的交叉學科專業人才。
  • 在加拿大境內遞籤的臨時籤證申請人將豁免生物識別信息採集
    在加拿大境內遞籤的臨時籤證申請人將豁免生物識別信息採集從凌晨開始,陸續接到以及看到來自加拿大的秦老師、李老師和袁老師發的相關的信息,也看到學生家長發來的加拿大媒體上的相關信息,內容只有一個,而且是一個很大的喜訊:在加拿大境內遞交各類申請將豁免生物識別信息的採集
  • 生物信息就該這麼學(6):我唯一推薦的生物信息書籍
    這麼多年總有人想讓我推薦一些生物信息的書籍,想通過閱讀書籍來學習生物信息。
  • 生物信息 awk 簡明教程和基本用法
    配圖來源:Julia Evens----/ START /----awk 是處理文本文件的一個應用程式,幾乎所有的Linux以及MacOS都自帶這個程序。在這篇文章中,我想給大家介紹如何用這個程序來解決一些基本的生物信息數據處理和文本處理的問題,特別適合對此不熟悉的同學和讀者朋友。
  • 【高中生物】必考知識點之生物的呼吸作用
    4、呼吸作用的意義:為生物的生命活動提供能量。為其它化合物合成提供原料。5、關於呼吸作用的計算規律是:①消耗等量的葡萄糖時,無氧呼吸與有氧呼吸產生的二氧化碳物質的量之比為1:3②產生同樣數量的ATP時無氧呼吸與有氧呼吸的葡萄糖物質的量之比為19:1。
  • 加拿大學習許可 -「兩步走程序」問題答疑
    加拿大學習許可 - 「兩步走程序」問題答疑 聲明:信息來自:加拿大大使館官方微博 08-10 17:43 ​加拿大移民,難民及公民部(IRCC)回答有關學習許可審理中新實施的「兩步走程序」問題並提供更多有關留學生的旅行限制及豁免的信息。
  • 【專業解讀】生物信息學:培養生物醫學大數據分析人才
    南方醫科大學於2005年在生物醫學工程學院開辦了生物信息學本科專業,2009年10月生物信息學本科專業移交基礎醫學院管理,2010年10月在基礎醫學院成立了生物信息學系,以加強對生物信息學本科專業的教學管理和學生培養。2012年申報設置了生物信息學二級交叉碩士、博士學位授予點。生物信息學系目前具有學士、碩士和博士的系列培養能力。
  • 生物信息學常用研究軟體(二)
    生物信息學(Bioinformatics)是計算機科學與生命科學的交叉學科。
  • 如何提高初中生對生物學習的興趣
    實驗是生物學教學的重要組成部分,是提高生物教學質量的重要環節。生物學實驗可以向學生提供生物界的感性認識,培養學生學習的基本技能和觀察、分析綜合運用生物學知識的能力。可以激發學生學習生物學的興趣。新一輪課程改革的基本理念是改變人才培養模式,倡導探究性學習。我的做法和體會是:  一、明確實驗內容,引導學習興趣  初中學生年齡較小,知覺的無意識性和情緒化比較明顯。
  • 新人教版高一生物必修1學習要點:遺傳信息的攜帶者—核酸
    現在請跟著我,一起熟悉新人教版高一生物必修1學習要點。新人教版高一生物必修1學習要點:遺傳信息的攜帶者—核酸一、核酸的種類:脫氧核糖核酸(DNA)和核糖核酸(RNA)二、核 酸:是細胞內攜帶遺傳信息的物質,對於生物的遺傳、變異和蛋白質的合成具有重要作用。
  • AMD和戴爾支持波蘭華沙大學生物信息學研究
    S9150伺服器GPU為波蘭華沙大學新技術中心新一代測序中心(NGSC)提供超過1.5 petaFLOPS計算性能,以支持新一代測序相關的生物信息學研究。研究應用程式,高效節能集群可以高速高效地計算基因組數據,適用於一系列基因組和生物信息學研究。    AMD公司副總裁兼AMD專業顯卡總經理Sean Burke表示:"AMD是計算應用程式,工具和技術方面最重要的供應商,我們正在致力於建設高性能計算行業領導地位。
  • 【高中生物】1.2基因工程的基本操作程序
    考綱細化1.基因工程的原理及技術(含PCR技術)(Ⅱ)(1)概述基因工程的基本操作程序(4步)3.外源基因在受體內表達的理論基礎(1)基因是控制生物性狀的獨立遺傳單位;(2)遺傳信息的傳遞都遵循中心法則闡述的信息流動方向;(3)生物界共用一套遺傳密碼。4. 將目的基因導入受體細胞:植物用農桿菌轉化法、基因槍法、花粉管通道法,動物用顯微注射法,原核生物用Ca2+處理法。植物用體細胞作受體,動物用受精卵作受體。
  • 「專業解讀」生物信息學:培養生物醫學大數據分析人才
    所有這些優質資源為生物信息學本科專業的學生培養提供了良好的學術氛圍和發展平臺。生物信息學專業課教學生物信息學本科專業的專業課教學和學生培養由生物信息學系承擔。同時生物信息學系還和南方醫院、珠江醫院以及基礎醫學院其他科室的生物信息學相關教授合作培養學生,目前南方醫科大學生物信息學方向有博士生導師7名。
  • Facebook基於機器學習的應用程式
    Facebook使用機器學習的方法,使計算機能夠進行文本分類以及圖像識別。人們可能會好奇Facebook是如何用仿人類的學習方法來研發應用程式的呢?本文就簡要介紹了Facebook的兩個應用程式,分別是DeepText和Moments。DeepText-賦予文本意義每天,有上億人使用臉書,有上萬億的狀態更新,活動邀請,相冊更新。
  • 生物信息神奇網站系列(十八):w3school
    做生物信息,有時候不得不多學習一些計算機語言,例如學習html語言將數據分析結果更友好的展示,也方便自動化;學習svg語言,可以繪製高質量的數據可視化圖
  • 輸入法——程序
    程序探討(之一)我們先學習師父給弟子編的程序:長功開慧四大條件:第一個條件:當你為他人、為民族、為國家、為社會作出重大貢獻的時候,你就能夠開慧長功。開慧是指開悟講,心的方面獲得相對的解放和自由,「長功」是指身體的方面,功力上長,功能功力出。