如何解決生物軟體報錯問題

2021-09-26 14:21:33 字數 2567 閱讀 7229

處理軟體錯誤分為兩步:

第一,診斷原因;

第二,尋找解決方案。

軟體為何會出錯?

在命令列模式下執行生物軟體,主要考慮三個因素。軟體,輸入檔案,選項引數。那麼可能出錯的地方也就在此。部分情況下也可能是硬體問題,比如資源不足。

1、command not found

這樣的錯誤,原因就是軟體沒有安裝,或者是軟體路徑沒有寫正確,還有一種可能是軟體名寫錯了,或者沒有區分大小寫;

解決方案:

1、檢測軟體是否安裝正確,有可執行程式,使用全路徑試一下;

2、將軟體可執行程式路徑新增到.bashrc 檔案中的path變數中

2、no such file or directory

如果敲軟體名,軟體可以執行,或者之前軟體都可以執行,那麼絕大部分就是輸入檔案的問題。輸入檔案經常出現「no such file or directory」,這就是因為輸入檔案路徑寫錯了,在r語言中「error: object 『x』 not found」的錯誤與之類似。那麼檢查一下這個物件是否存在,是否有值。

解決方案

檢查檔案路徑是否正確,檔案是否存在;

3、檔案格式

對於輸入檔案,另乙個比較重要的錯誤就是檔案格式。每一款軟體都需要嚴格的輸入檔案格式,比如fastq,fasta,sam,bam,vcf等,不能隨便輸入。還有就是數量的問題,軟體需要輸入三個檔案,你就不能輸入兩個,也不能輸入四個。

4、軟體選項引數

如果軟體和輸入檔案都沒有錯誤,那麼就有可能是選項引數的問題。檢查選項引數是否寫正確,-i 是否寫成-a了,是否忘了加空格。一般這種情況下,軟體不會執行,而是給出幫助資訊。

5、permission denied

這個是因為沒有寫的許可權,就會提示,「permission denied」,有些軟體預設安裝到系統目錄,普通使用者沒有許可權往這些路徑寫內容。

6、缺少lib***.so檔案

這種一般是缺少配置,可能是系統中沒有安裝相應的軟體包,也可能是安裝了,你沒有新增到到自己配置檔案中。這種問題一般都是google一下,或者bing一下錯誤,查一下到底缺的是哪個軟體包,這種一般都是系統檔案,找到之後通過yum或者apt安裝上軟體包就可以了。

如何解決錯誤?

如果是像上面介紹過的錯誤,一般容易發現,比較好解決。但是軟體、輸入檔案,選項引數都檢查過了,還是提示錯誤,該如何解決呢?

1、學會分析問題

好的軟體在內部都會有處理錯誤的機制,比如perl或者python的程式,一般會提示錯誤,面對錯誤,一定要做到,不要害怕。嘗試閱讀提示內容。如果發現裡面有memory,那麼就可能是和記憶體相關,是不是記憶體不夠用了。如果是包含socket,那麼可能是網路問題等;

2、google一下

你所遇到的問題,幾乎別人都遇到過,所以,google一下,或者bing一下錯誤,看一下別人同樣的問題是如何解決的,google幾乎可以找到所有的報錯內容。但是你最好要學會搜尋,不要把好幾頁的錯誤內容都去google,要學會使用關鍵字,至於如何使用個關鍵字搜尋,這個你自己google一下吧。

3、控制單因素變數測試

如果以上方法都試了,還是找不到錯誤,就嘗試控制單因素變數,進行測試。例如有這樣的**,

barplot(x,xlab=』』, ylab=「genexpression」,names.arg=c(「control」,「cold」, 「osmotic」, 「salt」, 「drought」, 「genotoxic」, 「oxidative」, 「uv-b」, 「wounding」,「heat」),col = c(brewer.pal(9,「blues」)[1],brewer.pal(9,「blues」)[2],brewer.pal(9,「blues」)[3],brewer.pal(9,「blues」)[4],brewer.pal(9,「blues」)[5],brewer.pal(9,「blues」)[6],brewer.pal(9,「blues」)[7],brewer.pal(9,「blues」)[8],brewer.pal(9,「blues」)[9]),cex.axis=1.5,cex.names=1.5,legend.text= c(「0 hour」, 「after 0.25 hour」, 「after 0.5 hour」, 「after 1 hour」, 「after 3 hours」, 「after 4 hours」, 「after 6 hours」, 「after 12 hours」, 「after 24 hours」

),args.legend =list(x = 「right」,cex=1),beside=true)

abline(h=0)

上面是一條很長的繪圖函式。一次執行會出錯,那麼怎麼辦呢。這個時候就一點點篩選,到底是哪個地方出現了問題。

首先barplot(x)

如果沒有問題,在一點點加選項,直到找到出錯的地方為止,就是這樣。而不是全部**中去查詢。

4、擷取部分資料測試

如果感覺資料有問題,就換另外的小資料測試一下,或者擷取部分進行測試。比如人基因組很大的資料,如果執行程式出錯了,可以用head命令每個擷取一部分進行測試。

總結以上只是我個人的一些總結,實際過程中,軟體的錯誤是千變萬化,五花八門的。這個還需要自己多去實踐,嘗試學會自己解決問題,因為,你每解決乙個問題,就是一次很大的提高,每個人都是這麼走過來的,唐僧也是需要經歷九九八十一難才成佛的。

深度學習如何解決生物除錯問題?

編者按 深度學習在近幾年實現了巨大的突破,而這一方法也被應用到越來越多的領域,用於解決過去在這些領域難以解決的問題。可以預見,在未來的科研中 深度學習 學科應用 將得到更廣闊的應用,生物學現在面臨著除錯的困難。生化系統 細胞 很複雜,深入研究它是十分有意義的。觀察你所了解的化合物是很有難度的,想要看...

如何解決藍屏問題

第一步 公升級筆記本bios 一般說來筆記本在出廠的時候很可能設計上存在某些的瑕疵,而廠商通常會採用公升級bios的方法來解決這些bug。如果我們在使用筆記本腦的過程中遇到了藍屏的情況,那麼我們可以採取公升級bios的辦法來解決藍屏的故障。第二步 正確安裝硬體驅動 在重新整理了bios以後,部分筆記...

如何解決fpga high fanout問題

fanout,即扇出,指模組直接呼叫的下級模組的個數,如果這個數值過大的話,在fpga直接表現為net delay較大,不利於時序收斂。因此,在寫 時應盡量避免高扇出的情況。但是,在某些特殊情況下,受到整體結構設計的需要或者無法修改 的限制,則需要通過其它優化手段解決高扇出帶來的問題。以下就介紹三個...