你好,歡迎進(jìn)入江蘇優(yōu)軟數(shù)字科技有限公司官網(wǎng)!
發(fā)布時間:2023-07-10
瀏覽次數(shù):0
好吧,我還是成功地用標(biāo)題吸引了你。
雖然,這個稱號只是一個旗幟。
這是我第一次寫這些非教程推文(可能不會是最后一次)。
明天我們給大家介紹一款非常小的(不知道有多?。┑纳钚?a href='/industry/61.html' title='工業(yè)軟件保持高速增長' target='_blank'>軟件。
嗯,這似乎是另一個軟件教程。 。 。
畢業(yè)季,我們總是匆匆告別。 許多盛信軟件的忠實(shí)(特殊)用戶(粉絲)也畢業(yè)了。 與生活必需品QQ、微信相比,如果畢業(yè)生不再從事相關(guān)領(lǐng)域的研究,就意味著這種軟件將失去這些曾經(jīng)一起努力的同學(xué),即使他們以前有過。
就失去了這么一位資深用戶——課題組里做濕實(shí)驗(yàn)的Y師弟。 每次Y師弟對我的產(chǎn)品提出新的要求時,我總是表現(xiàn)出不屑(不屑)(困難)和專注(實(shí)現(xiàn))。 而每次Y師弟說“師弟,你要珍惜我這個唯一的用戶”,總是讓我乖乖跑去折騰代碼。
一開始我使用的是內(nèi)置的接口包,可以滿足大部分功能,但是有一點(diǎn)很不方便。 每次都要點(diǎn)擊按鈕導(dǎo)出輸入文件(好像大部分軟件都是這樣)。 而對于科研任務(wù)極其繁忙的Y師弟(筆記本里的文件很多)來說,每次在哪個彈窗中查找文件都需要很長時間。 于是Y師弟就問是否支持拖拽文件導(dǎo)出?
不只是Y師弟,我也覺得它太弱了,沒有拖拽文件的功能。 而且查了很久資料,發(fā)現(xiàn)這個框架其實(shí)很簡單易學(xué),適合入門。 不過,以后要實(shí)現(xiàn)文件拖拽雖然不容易,雖然能實(shí)現(xiàn),但是代碼也不好寫。 另外,我還希望有一個界面提示文字,即鍵盤連接到某個按鈕或者輸入框等控件,它可以顯示我想要告訴用戶的內(nèi)容。
所以,我決定改變框架(使用PyQt5)并重新打包。
不過,雖然我沒有時間重畫,但是我已經(jīng)直接通過腳本實(shí)現(xiàn)了很多緊急任務(wù),并且將腳本封裝到界面中需要很長時間。 除了把接口寫進(jìn)代碼之外,還需要寫出用戶容錯風(fēng)暴,需要不斷地調(diào)試。
直到疫情期間,我終于有時間做這件事了。 于是,我學(xué)習(xí)了PyQt5的使用,并應(yīng)用到了它上面。 我從頭開始重新繪制它并添加了新功能。 最大的改變是在部分功能的實(shí)現(xiàn)上增加了多線程機(jī)制。
可惜Y師弟煥然一新的時候就已經(jīng)畢業(yè)離開了。 。 。
說了這么多,好像還沒介紹呢?
它是一款生物信息學(xué)的小軟件,用于基因序列數(shù)據(jù)的處理,特別是病毒基因組的變異分析。 1.0版本開發(fā)已于2020年4月完成,目前仍在更新和建立中(非常歡迎需求或建議)。
現(xiàn)在,我們來翻譯一下該軟件目前可用的說明書,看看它有哪些功能。
說實(shí)話,這是我第一次先把英文手冊翻譯成中文,然后再翻譯回來。 。 。
1 軟件下載地址
該軟件可免費(fèi)下載并免費(fèi)使用:
引用參考文獻(xiàn)(目前僅預(yù)印本):
2 弱函數(shù) 2.1 序列格式轉(zhuǎn)換
其實(shí)很多生物信息軟件都有這個共同的功能,所以它也有。
通過拖放(推薦)或按鍵直接導(dǎo)出基因序列文件,可進(jìn)行不同格式之間的相互轉(zhuǎn)換。 目前可相互轉(zhuǎn)換的格式有Fasta、Nexus、Paml。 僅當(dāng)目標(biāo)格式為“Nexus”時,“序列類型(數(shù)據(jù)類型)”選項(xiàng)才可用。
那么將Fasta格式轉(zhuǎn)換為Fasta格式有什么用呢? 最大的好處就是將非標(biāo)準(zhǔn)的fast格式(比如占用多行的序列)轉(zhuǎn)換為標(biāo)準(zhǔn)的fasta格式(對于每個序列,序列名稱占用一行,而序列只占用一行)。
2.2 序列變體
該接口共有8個子功能,分別是提取序列名()、統(tǒng)一序列名寬度()、序列反向()、序列反向補(bǔ)全()、RNA轉(zhuǎn)DNA序列(UtoT)、DNA轉(zhuǎn)RNA序列(TtoU) ),統(tǒng)計序列寬度和GC濃度(+GC%),DNA和蛋白質(zhì)對照表()。
注意,如果選擇“”選項(xiàng)處理基因序列,則要求輸入序列是編碼區(qū)的基因,并根據(jù)密碼子形式進(jìn)行比對。 至于這個功能是做什么的,大家自己嘗試一下就知道了。
2.3 序列名稱重命名
功能就像標(biāo)題一樣,不過這個名字雖然可以有多個斷句,但是適用范圍也不同(序列“名字重命名”、“序列名字”重命名)。 我更喜歡用它來處理樹文件而不是處理序列。 特別是對于用于發(fā)表的進(jìn)化樹圖片,我們一般需要按照一定的格式對樹的分類單元進(jìn)行統(tǒng)一命名。 因此,首先直接批量替換樹文件中的序列名稱,省去后面使用矢量圖形工具(例如AI)的麻煩。 做出改變的麻煩。
2.4 剪切序列片段
該函數(shù)用于批量截取指定范圍內(nèi)的基因片段,有兩種不同的模式:每個序列指定一個范圍(range)截取,以及等距截取()。 如果選擇“范圍”,則需要在文本框中粘貼每個序列對應(yīng)的信息:序列名稱、起始位置和結(jié)束位置,以制表符分隔,每個序列的信息搶占文本框中的一行。 如果是等距攔截,如上圖。
2.5 串聯(lián)基因
該函數(shù)用于將多個基因序列連接成一個。 您可以先將不同基因的序列數(shù)據(jù)(fasta格式)倒入同一個文件夾中,然后將文件夾推入輸入框,然后點(diǎn)擊“”,軟件會將每個基因?qū)?yīng)的序列文件路徑導(dǎo)出到文本框中。 可以通過自動調(diào)整文本框中文件路徑的順序來更改基因的順序。
2.6 基因的可視化提取
使用此功能之前,必須先將其安裝在筆記本電腦上,然后點(diǎn)擊菜單欄上的“基因”按鈕,會出現(xiàn)如下界面:
這個功能以本地化網(wǎng)頁工具的形式呈現(xiàn),因?yàn)槲矣X得網(wǎng)頁模式很酷。 怎么用,我舉一個反例。 我突然想起來這條推文是我以前寫過的,所以看看:
沒錯,當(dāng)時我把這個推文前面的腳本給了,還有很多做濕實(shí)驗(yàn)的朋友不會用,所以我就建了這個函數(shù),做成了一個界面,現(xiàn)在直接就可以搞定了通過單擊鼠標(biāo)。 這個功能的本質(zhì)就是通過提供的基因名稱列表,從序列名稱中批量匹配提取對應(yīng)的序列,具體看它如何靈活操作,相信用戶比我更會用。
3 勉強(qiáng)能用
下面第二部分的功能純粹是用來陪襯的,接下來我會介紹一些勉強(qiáng)有道理的功能。
3.1 快速注釋
為什么要寫這個函數(shù)呢?
NCBI上的很多基因組序列都沒有注釋,我們在科學(xué)研究中有時需要用到這樣的未注釋序列,尤其是上面的某個基因序列。 言外之意就是我們必須對自己上傳的序列進(jìn)行注釋。 是的,這些序列不是你的。 (強(qiáng)烈建議研究人員在將每個序列提交給 NCBI 時對其進(jìn)行注釋)。
序列注釋的軟件有很多,就不一一列舉了。 無論是本地化軟件還是在線軟件,基本原理都是相似的。 首先,找到帶有注釋信息的參考序列。 這個序列需要和你要注釋的序列相同 序列整體比較相似,然后放在一起進(jìn)行多序列比對,根據(jù)參考序列的注釋信息進(jìn)行比對,然后確定(截?。┑幕騾^(qū)域你的順序。
標(biāo)注單個序列還可以dnastar序列比對,任何軟件都可以任意操作,估計量也不大。
當(dāng)需要注釋多個甚至數(shù)千、數(shù)萬個序列時,問題當(dāng)然會復(fù)雜一些。
在我這幾年的研究生涯中,當(dāng)遇到需要注釋幾十個甚至更多同源序列或者從大量未注釋的全基因組序列中提取一個基因序列時,我一般采用以下實(shí)驗(yàn)方法:先下載一個或更多.gb格式的參考序列(帶注釋信息),與不帶注釋的序列(自己實(shí)驗(yàn)室下載或擴(kuò)增的)一起拖入本軟件中,然后使用內(nèi)置的序列比對工具(如如Mucle或MAFFT),然后根據(jù)參考序列的注釋信息,可以對這些未注釋的全基因組序列進(jìn)行注釋或者截取所需的基因片段。
(參考序列與待注釋序列比對后的部分截圖)
當(dāng)需要注釋的序列很少時,這很方便。
但當(dāng)序列較多時,也會出現(xiàn)問題。 當(dāng)我處理從它下載的3000多個未注釋的新冠序列時,執(zhí)行序列比較實(shí)際上非常慢,即使它在服務(wù)器上運(yùn)行。 如上所述,它是內(nèi)置的或者是序列比較工具,例如Mucle。 說白了,Mucle本身就是一個獨(dú)立的可執(zhí)行程序(干過這個的人都應(yīng)該知道),用這個獨(dú)立的程序直接比較速度更快。
然而,如果使用單獨(dú)的程序進(jìn)行比對,雖然無法與參考序列的注釋信息關(guān)聯(lián)起來。 雖然我知道也有一個在命令行運(yùn)行的注釋程序,但這里就不介紹了。
于是,寫了一個簡單的功能,還是實(shí)用的。
原理很簡單。 由于序列比對工具非常多,而且功能也比較完善,我們可以先用它們來進(jìn)行多序列比對,所以關(guān)鍵點(diǎn)就是將待注釋的序列與參考序列關(guān)聯(lián)起來。 而且,如上所述,注釋必須以同源性高的序列為參考。 所以,你可以這樣做:
對于來自相同或高度相關(guān)物種的那些菌株(或弧菌)序列,核酸同一性通常相對較高。 為此,序列注釋可以基于與參考序列基因信息的多重序列比對。 提供快速序列注釋功能,通過導(dǎo)出已與其他軟件多序列比對的全基因組序列集(fasta格式),并將用于注釋的參考序列調(diào)整到文件頂部。 將參考序列對應(yīng)的基因名稱、起始字符串和結(jié)束字符串粘貼到文本框中,并用“,”分隔,即可批量注釋基因。 請注意,基因的起始字符串或結(jié)束字符串的寬度沒有要求,并且該字符串必須且僅需要在參考序列中是唯一的。 據(jù)悉,序列之間的相似度越高,注釋的準(zhǔn)確性就越高。
如上所述,如何知道參考序列中哪些字符串是唯一的? 這個比較簡單,用記事本或者++之類的文本工具,打開比對的全基因組序列,Ctrl+F,將字符串粘貼進(jìn)去,然后搜索。
3.2 序列單位矩陣
在很多文章中,我們都可以看到核酸(nt)或者多肽(aa)的()矩陣(對于序列同一性和相似性()的聯(lián)系和區(qū)別,請自行百度),比如下面這樣:
(LiJin-Yan 等人,2020)
或者它顯示核酸和肽的同一性,如下所示:
(周鵬等人,2020)
在它出現(xiàn)之前,我曾經(jīng)使用這個軟件來估計序列同一性。 但它有一個很大的局限性,就是之前的核酸+肽單位矩陣??表,無法一步生成。 它首先必須單獨(dú)估計核酸或肽身份表,然后自動(對于不懂編程的人)或通過腳本(對于懂編程的人)合并。
工欲善其事,必先利其器。
今天,這是完全可能的。
點(diǎn)擊 中的菜單,出現(xiàn)下界面,然后推入按照標(biāo)準(zhǔn)密碼子形式()比對的編碼基因序列文件(也可以通過按鍵加載),選擇“”。
然后,點(diǎn)擊“開始”,直接輸出表格(輸出結(jié)果在輸入文件對應(yīng)的文件夾下):
分析結(jié)果快速準(zhǔn)確,表格稍加整理即可直接用于文章發(fā)表。 除此之外,它還提供了壓縮間隙函數(shù)(gap),用于估計編碼區(qū)基因核酸序列的同一性。 事實(shí)上,這是一個選擇。 如果選中該選項(xiàng),則比對序列中每3個連續(xù)插入或刪除(缺口)的核苷酸將被視為1個,然后將估計成對序列同一性。 有生物學(xué)背景的朋友可以稍微思考一下。 通過這樣做的原因。
3.3 去除高度相似的序列
雖然這條推文的標(biāo)題是一個橫幅(因?yàn)槲覒械孟霕?biāo)題),而且這個函數(shù)實(shí)際上存在于 .
在我們的科研工作中,有時會遇到兩個需求:
(1) 消除相同的序列,只保留一個。 除此之外,有時您想知道哪些序列是相同的。 這里的相同是指兩個序列的同一性或相似性為100%。
(2)雖然有些序列相似度低于100%,但它們可能是99%或更高,例如99.99%。 有時,當(dāng)我們使用這個序列作為進(jìn)化樹中的參考序列時,我們可能只需要一個序列,而高度相似的則需要被淘汰。
那么,相似度達(dá)到多少才算是高度相似呢? 其實(shí)沒有標(biāo)準(zhǔn),也不需要標(biāo)準(zhǔn),要看研究的背景和目的。 此外,需要消除高度相似的序列。
雖然網(wǎng)上有工具可以處理,而且我用過,覺得不是很好用。
因此,您可以再次執(zhí)行此操作 (>-H-):
應(yīng)該強(qiáng)調(diào)的是,提供了 6 種不同的算法來估計序列相似性。 需要注意的是,“”和“”距離方法要求輸入序列已經(jīng)被多個序列比對。 同時,也建議使用這兩種方法來消除高度相似的序列。 因?yàn)樗俣缺容^快,所以特別推薦“”算法。 這個方法經(jīng)過我大量的打磨。 對于剩下的4種方法,最好不要提前對輸入序列進(jìn)行比對,因?yàn)樵撍惴ň哂行蛄斜葘δ堋?用戶可以通過指定閾值()來定義要消除多高相似度的序列。 請注意,輸入閾值也包含在該范圍內(nèi)。
為此,如果將閾值設(shè)置為100,程序就會啟動消除重復(fù)序列的功能。 此時,雖然無論選擇哪種算法都是一樣的,因?yàn)槌绦虿捎昧肆硪环N高效的處理機(jī)制。
這就是結(jié)局? 還沒有,如果你在程序頁面的空白鍵盤上點(diǎn)擊右鍵,那么恭喜你,你已經(jīng)啟用了隱藏功能。 您可以使用這個隱藏函數(shù)來獲得每個算法估計的序列相似度矩陣。 事實(shí)上,對于“”算法,確切地說是恒等式。 不再有截圖進(jìn)行演示。
4個不太好的功能
說實(shí)話,我總覺得有類似的軟件可以實(shí)現(xiàn)上述的功能,但是我沒有見過,也沒有用過,很有可能是我在重新發(fā)明輪子(重新發(fā)明輪子是必然的,一波分析(如果需要用戶在不同的軟件之間來回切換就不好了),或者它們的功能不是比較健全。 其實(shí)有創(chuàng)新,但還不夠,編程難度也不夠。 不過,下面要提到的三個組合功能都經(jīng)過了殘酷的實(shí)踐檢驗(yàn)。
如果你能從頭到尾聽到這句話,那么你一定是鐵粉,或者你很佩服推文的作者(偷偷觀察……)。
讓我們從復(fù)合函數(shù)中的第一個函數(shù)開始:
4.1 計分器
是的,又是這些極簡風(fēng)格。 雖然有時我想讓界面變得更復(fù)雜,多一些按鈕和參數(shù)設(shè)置框,但總覺得太復(fù)雜了,不利于用戶快速上手。 根據(jù)我自己的經(jīng)驗(yàn),在分析和處理數(shù)據(jù)時,大部分時間都花在學(xué)習(xí)如何使用分析軟件和處理程序錯誤上。 其實(shí)這也和我寫的功能都是一些技術(shù)集中度太高的小功能有關(guān)。
言歸正傳,上圖中的“Site”是做什么用的?
翻譯過來就是“site ”,就是一個簡單的統(tǒng)計功能。 正如軟件手冊中所寫:
這可以是每個堿基(或氨基酸)的類型、數(shù)量和數(shù)量。
網(wǎng)站為. 在,威拉
基于每個位點(diǎn)的堿基(或氨基酸)。
分析結(jié)果以表格形式輸出。 我比較后導(dǎo)出了堿基序列,運(yùn)行程序進(jìn)行分析后,我取出其中一份結(jié)果(*.csv),簡單地用Excel自帶的圖畫出來。 它看起來像這樣:
橫坐標(biāo)是基因位點(diǎn),縱坐標(biāo)是濃度,顏色代表不同的核苷酸。
雖然我在一些高水平的SCI論文中看到過這些圖片,但其實(shí)我并沒有看到這種展示能帶來的學(xué)術(shù)效果,而且足夠漂亮和炫酷。
4.2 突變分析
生物體,尤其是病毒,尤其是RNA病毒,遺傳變異是司空見慣的事情。 為此,我們經(jīng)常使用比較基因組學(xué)。 再深入一點(diǎn),基因組或單基因多序列比對的工具也很常見,例如MAFFT。
然而,有一件非常奇怪的事情。 雖然序列比對的工具很常見,但直接用于基因變異分析的下游軟件卻很少。 可能是因?yàn)檫@個功能往往比較簡單,懂編程的大鱷用腳本就可以搞定,不需要做接口程序,而不懂編程的人,比如大多數(shù)濕實(shí)驗(yàn)者,是無法開發(fā)的它。
或者M(jìn)EGA、、、(付費(fèi)軟件)等軟件自帶序列顯示功能,也可以瀏覽變異位點(diǎn)的情況。 而且,少量的序列還可以,如果有幾萬個,雖然檢查這些變異很不方便,尤其是在很長一段時間后。
疫情期間,我接到一個任務(wù),要分析3000多條新冠序列(粗細(xì)左右)的突變狀態(tài),需要全面細(xì)致的分析,精確到每一個密碼子、核苷酸位置,不僅是全基因組層面,而是也在全基因組水平上。 每個編碼基因也需要進(jìn)行分析(上面提到的快速注釋功能就是在這樣的條件下開發(fā)出來的),特別是要快速定位突變熱點(diǎn)或熱點(diǎn),能夠識別不同類型的突變(如同義突變、非同義突變)突變、提前終止),除此之外,還需要鑒定多肽的性質(zhì)是否發(fā)生變化,最后分析結(jié)果需要高度概括,更重要的是要快! 。
雖然,我早已忘記了當(dāng)時導(dǎo)師所說的“快”是催促我快速分析(自動或使用現(xiàn)有軟件),還是暗示我要開發(fā)軟件進(jìn)行快速分析。 然而,經(jīng)過深思熟慮,我搜索并沒有找到合適的現(xiàn)有軟件可以完全完成這項(xiàng)工作。 真的會自動處理嗎?
果然,無論導(dǎo)師的意思是什么,我都只能選擇前者。
“要做研究,就用最好的工具,如果沒有,那就構(gòu)建它”——這是我寫軟件的初衷和動機(jī)。
因此,使用以下函數(shù):
該函數(shù)用于剖析單個編碼基因或編碼基因組合的突變特征。 輸入的序列需要提前使用其他軟件并基于標(biāo)準(zhǔn)密碼子方法(需要fasta格式)進(jìn)行比對,然后掃描序列數(shù)據(jù)集中的每個密碼子位點(diǎn),將序列集中的第一個序列用作參考序列。 識別 5 種不同的突變類型,包括同義、非同義、插入、刪除和終止密碼子,還可以標(biāo)記簡并核苷酸。
最后,所有的突變位點(diǎn)、突變類型以及對應(yīng)位點(diǎn)的突變頻率都會以表格的形式高度概括。 對于非同義替換位點(diǎn),可以鑒定突變多肽的性質(zhì)(例如極性或電荷)是否發(fā)生變化,這可以幫助我們識別一些重要的變異位點(diǎn)。 除此之外,還提供了一個單獨(dú)的文件dnastar序列比對,標(biāo)記了突變位點(diǎn)對應(yīng)的突變菌株(弧菌),方便參考。
其實(shí)如果只有前面的功能的話,還是有點(diǎn)弱。
雖然我們知道有多少個突變位點(diǎn)、有哪些位點(diǎn),但這還不夠,因?yàn)橛行┪稽c(diǎn)的突變可能只出現(xiàn)在少數(shù)序列中(即突變頻率較低),甚至有些位點(diǎn)的突變只出現(xiàn)在少數(shù)序列中(即突變頻率較低)。出現(xiàn)在單個序列中(突變頻率為1),可能是測序錯誤造成的。 為此,我們需要一些東西來幫助我們確定是否存在大規(guī)模的突變。
這個東西,最好有圖片,因?yàn)檫@樣更直觀。
因此,提供一鍵突變頻率分布圖(僅包括同義突變位點(diǎn)和非同義突變位點(diǎn))。 參數(shù)示例如上圖所示,結(jié)果為矢量地圖供發(fā)布。 文本框中的每一行代表一組替換頻率,最小值和最大值由制表符分隔。 請注意,每組的最小值不包括在頻率范圍內(nèi)。
需要注意的是,替換頻率分布圖是由R語言繪制的,因此要使用該功能,需要先在筆記本電腦上安裝R,然后通過插件功能向其添加.exe程序。 如果.exe沒有成功綁定,運(yùn)行時會手動提示。
上述結(jié)果的一個例子如下:
(突變位點(diǎn)總結(jié))
(突變位點(diǎn)+突變株)
(突變頻率分布圖)
4.3 站點(diǎn)過濾
關(guān)于這個函數(shù),通過一個反例可以更好的理解。
例如,對上述突變進(jìn)行分析后發(fā)現(xiàn),第1314位點(diǎn)是突變熱點(diǎn),富含A和C兩種核苷酸,分別占40%和60%。 現(xiàn)在需要提取該位點(diǎn)的所有核苷酸C序列以進(jìn)行后續(xù)分析。
或者,你發(fā)現(xiàn)有3個位點(diǎn)突變頻率比較高,而且突變的核苷酸總是互相出現(xiàn),這有點(diǎn)像連鎖不平衡遺傳(具體百度一下),所以你根據(jù)這三個位點(diǎn)提取對應(yīng)的序列。
所以,你可以這樣做:
只需要以fasta格式導(dǎo)出序列集,在文本框中輸入要提取的位點(diǎn)和核苷酸(或多肽),用英文冒號分隔,一行寫出一個位點(diǎn)的信息,不同的站點(diǎn)只需將其寫在不同的行上即可。
最后5句話
目前它還有限且簡單,并將不斷發(fā)展。 如果您有興趣,請告訴我。 特別歡迎您提出需求或建議,需求帶動生產(chǎn)。
我建了一個QQ群,供用戶交流。 如果您需要反饋程序bug,或者詢問需求,或者建議,或者其他等等,都可以加入。 組號:.
6 最后 最后
前面的故事似乎還沒有講完。 Y師弟離開中學(xué)前,第一件事就是用U盤從我的筆記本上拷貝最新版本,然后再拷貝其他的東西。 他很感動。
感謝所有直接或間接做出貢獻(xiàn)或提出建議的人,即使你們沒有直接參與開發(fā),我為你們編寫的大部分腳本都在其中使用。 目前還很小,未來還有很長的路要走。 它的功能擴(kuò)展和建立需要您的貢獻(xiàn)和建議。
如有侵權(quán)請聯(lián)系刪除!
Copyright ? 2023 江蘇優(yōu)軟數(shù)字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服務(wù)提供商
13262879759
微信二維碼