究竟為什么要學(xué)編程疮丛,可能每個(gè)人在行動(dòng)之前都會(huì)有這樣的疑問(wèn)幔嫂。因?yàn)殪趴幔梢匝b逼誊薄,熒幕上的黑客都帥呆了履恩;因?yàn)槌绷鳎麄€(gè)社會(huì)都在宣傳學(xué)編程呢蔫,各種廣告鋪天蓋地切心,再不學(xué)就out了。誠(chéng)然片吊,這些理由都不錯(cuò)绽昏,但這些是大眾學(xué)編程的原因,而不是你學(xué)編程的理由俏脊。我絕對(duì)學(xué)習(xí)一樣技能全谤,一定要有強(qiáng)烈的主觀愿望,尤其是編程爷贫,如果不是靠興趣驅(qū)動(dòng)认然,真的會(huì)很痛苦。如何才能有強(qiáng)烈的主觀愿望呢沸久?興趣是基礎(chǔ)季眷,然后在學(xué)習(xí)的過(guò)程中不斷地獲得正反饋,越學(xué)越有意思卷胯,越來(lái)越爽。
我們就用幾個(gè)小例子來(lái)展示一下編程能給我們的工作生活帶來(lái)怎樣意想不到的便利威酒。希望通過(guò)適當(dāng)?shù)囊龑?dǎo)窑睁,大家能體會(huì)編程的爽挺峡,樂(lè)在其中,享受編碼的樂(lè)趣担钮。
首先聲明橱赠,我們的原則是,一切機(jī)械的重復(fù)性的工作都應(yīng)該自動(dòng)化箫津,牢記這一條狭姨。
代碼已上傳至GitHub,想直接看代碼的點(diǎn)這里苏遥。
場(chǎng)景一
我們想研究某個(gè)基因家族饼拍,比如說(shuō)人類的HSP家族,首先我們需要獲取該家族的所有成員以及他們的序列田炭。我們可以這樣做师抄,在NCBI上搜索“heat shock protein”,物種設(shè)置為“Homo Sapiens”教硫,逐條記錄點(diǎn)進(jìn)去叨吮,將序列拷下來(lái),粘貼到記事本中瞬矩,整理成fasta格式茶鉴。上期講過(guò),編程就是通過(guò)編程語(yǔ)言告訴計(jì)算機(jī)我們想怎么做景用,讓機(jī)器替我們?nèi)ジ煽嗔Ω蛲夥抛约旱碾p手和時(shí)間。現(xiàn)在我們把自己手動(dòng)執(zhí)行的過(guò)程轉(zhuǎn)換成代碼丛肢。我這里簡(jiǎn)化了围肥,直接從refgene數(shù)據(jù)庫(kù)提取HSP家族各成員相應(yīng)的轉(zhuǎn)錄本編號(hào),再利用這個(gè)編號(hào)去NCBI上獲取序列蜂怎。場(chǎng)景二
我們需要對(duì)上一步得到的序列設(shè)計(jì)引物穆刻,用于后續(xù)的研究。從程序輸出的log可以看到杠步,一共有39條序列氢伟,一條一條拖進(jìn)primer5,調(diào)整好參數(shù)幽歼,鼠標(biāo)一點(diǎn)一點(diǎn)拖過(guò)去朵锣,天啦嚕,干完眼睛都要瞎了(回想起自己當(dāng)年一遍一遍重復(fù)這個(gè)操作甸私,瑟瑟發(fā)抖诚些。。。)诬烹。龜叔告訴我們砸烦,生活不應(yīng)該是這個(gè)樣子的。我們有primer3-py庫(kù)啊绞吁,只需要適度的封裝幢痘,別說(shuō)39條,就算39萬(wàn)條都不帶眨眼睛的家破。
示例代碼比較糙颜说,只為了說(shuō)明問(wèn)題。完全可以在這基礎(chǔ)上優(yōu)化汰聋,比如調(diào)整參數(shù)门粪,結(jié)果過(guò)濾,篩選出最優(yōu)的primer马僻,使其成為實(shí)際可用的代碼庄拇。
場(chǎng)景三
引物設(shè)計(jì)完了,需要送去合成韭邓,也可以用代碼搞定措近。將上一步的結(jié)果發(fā)送給生物公司的銷售,并抄送老師女淑。來(lái)看看是不是真的發(fā)送成功了
以上三個(gè)場(chǎng)景是一個(gè)連貫性的操作瞭郑,完全可以整合到一起,實(shí)現(xiàn)完全自動(dòng)化鸭你。只需要敲完命令屈张,回車,剩下的就不用關(guān)心了袱巨。除了第一步比較耗時(shí)阁谆,因?yàn)橐ㄟ^(guò)網(wǎng)絡(luò)請(qǐng)求,需要62s愉老,二三兩步不超過(guò)5s场绿,總耗時(shí)不過(guò)70s,節(jié)省了大量的時(shí)間精力嫉入。這么美好的時(shí)光焰盗,干點(diǎn)啥不好啊,看劇看文獻(xiàn)咒林,打球做實(shí)驗(yàn)熬拒,撩妹寫(xiě)文章都行啊。
當(dāng)然編程的應(yīng)用場(chǎng)景遠(yuǎn)不止這些垫竞,這里拋磚引玉澎粟。其實(shí)很多問(wèn)題都有第三方的庫(kù),這也是python如此受歡迎的原因之一,Google一下捌议,說(shuō)不定就有你想要的哼拔,直接拿過(guò)來(lái)用就好了引有。還有些問(wèn)題瓣颅,不怕想不到,就怕實(shí)現(xiàn)不了譬正。只要能力爐(lan)火(ai)純(wan)青(qi)宫补,你用python煮咖啡也不是不可以噢。
當(dāng)然了,這種事還是在家干型诚,在學(xué)習(xí)室這么搶網(wǎng)速會(huì)被懟的客燕。但是在學(xué)習(xí)室,他的分析流程要跑12h狰贯,我就比他NB,我只要4h跑完涵紊,這種事情絕對(duì)是喜聞樂(lè)見(jiàn)的。我們后面會(huì)討論如何構(gòu)建一個(gè)高效的分析流程摸柄,請(qǐng)保持關(guān)注哦颤练。
今天就到這里了昔案,see you!
更多精彩內(nèi)容請(qǐng)關(guān)注公眾號(hào):易微升