真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

go語言生物模塊 go語言mod

GO語言(十一):開始使用多模塊工作區(qū)

本教程介紹 Go 中多模塊工作區(qū)的基礎知識。使用多模塊工作區(qū),您可以告訴 Go 命令您正在同時在多個模塊中編寫代碼,并輕松地在這些模塊中構建和運行代碼。

成都創(chuàng)新互聯(lián)公司長期為近1000家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為勐海企業(yè)提供專業(yè)的做網站、網站建設,勐海網站改版等技術服務。擁有十年豐富建站經驗和眾多成功案例,為您定制開發(fā)。

在本教程中,您將在共享的多模塊工作區(qū)中創(chuàng)建兩個模塊,對這些模塊進行更改,并在構建中查看這些更改的結果。

本教程需要 go1.18 或更高版本。使用go.dev/dl中的鏈接確保您已在 Go 1.18 或更高版本中安裝了 Go 。

首先,為您要編寫的代碼創(chuàng)建一個模塊。

1、打開命令提示符并切換到您的主目錄。

在 Linux 或 Mac 上:

在 Windows 上:

2、在命令提示符下,為您的代碼創(chuàng)建一個名為工作區(qū)的目錄。

3、初始化模塊

我們的示例將創(chuàng)建一個hello依賴于 golang.org/x/example 模塊的新模塊。

創(chuàng)建你好模塊:

使用 . 添加對 golang.org/x/example 模塊的依賴項go get。

在 hello 目錄下創(chuàng)建 hello.go,內容如下:

現(xiàn)在,運行 hello 程序:

在這一步中,我們將創(chuàng)建一個go.work文件來指定模塊的工作區(qū)。

在workspace目錄中,運行:

該go work init命令告訴為包含目錄中模塊的工作空間go創(chuàng)建一個文件 。go.work./hello

該go命令生成一個go.work如下所示的文件:

該go.work文件的語法與go.mod相同。

該go指令告訴 Go 應該使用哪個版本的 Go 來解釋文件。它類似于文件中的go指令go.mod 。

該use指令告訴 Go在進行構建時hello目錄中的模塊應該是主模塊。

所以在模塊的任何子目錄中workspace都會被激活。

2、運行工作區(qū)目錄下的程序

在workspace目錄中,運行:

Go 命令包括工作區(qū)中的所有模塊作為主模塊。這允許我們在模塊中引用一個包,即使在模塊之外。在模塊或工作區(qū)之外運行go run命令會導致錯誤,因為該go命令不知道要使用哪些模塊。

接下來,我們將golang.org/x/example模塊的本地副本添加到工作區(qū)。然后,我們將向stringutil包中添加一個新函數(shù),我們可以使用它來代替Reverse.

在這一步中,我們將下載包含該模塊的 Git 存儲庫的副本golang.org/x/example,將其添加到工作區(qū),然后向其中添加一個我們將從 hello 程序中使用的新函數(shù)。

1、克隆存儲庫

在工作區(qū)目錄中,運行git命令來克隆存儲庫:

2、將模塊添加到工作區(qū)

該go work use命令將一個新模塊添加到 go.work 文件中。它現(xiàn)在看起來像這樣:

該模塊現(xiàn)在包括example.com/hello模塊和 `golang.org/x/example 模塊。

這將允許我們使用我們將在模塊副本中編寫的新代碼,而不是使用命令stringutil下載的模塊緩存中的模塊版本。

3、添加新功能。

我們將向golang.org/x/example/stringutil包中添加一個新函數(shù)以將字符串大寫。

將新文件夾添加到workspace/example/stringutil包含以下內容的目錄:

4、修改hello程序以使用該功能。

修改workspace/hello/hello.go的內容以包含以下內容:

從工作區(qū)目錄,運行

Go 命令在go.work文件指定的hello目錄中查找命令行中指定的example.com/hello模塊 ,同樣使用go.work文件解析導入golang.org/x/example。

go.work可以用來代替添加replace 指令以跨多個模塊工作。

由于這兩個模塊在同一個工作區(qū)中,因此很容易在一個模塊中進行更改并在另一個模塊中使用它。

現(xiàn)在,要正確發(fā)布這些模塊,我們需要發(fā)布golang.org/x/example 模塊,例如在v0.1.0. 這通常通過在模塊的版本控制存儲庫上標記提交來完成。發(fā)布完成后,我們可以增加對 golang.org/x/example模塊的要求hello/go.mod:

這樣,該go命令可以正確解析工作區(qū)之外的模塊。

GO(Gene Ontology)

Ontology 首先是出現(xiàn)于哲學領域的一個詞匯,后來廣泛用于計算機領域,發(fā)揮了很重要的作用,再后來這個概念被引入生物領域。

gene Ontology 是生物中Ontology中一個重要應用。go項目最初是由研究三種模式生物(果蠅、小鼠和酵母)基因組的研究者共同發(fā)起。是生物信息分析中很重要的一個方法

go是在生物領域應用非常廣,可以幫助生物學家對基因產物進行準確的定義(功能、位置),節(jié)省時間。

因為在最開始的時候,生物學家們更多是專注于自己研究的物種/課題,而且每個生物學家對功能等的定義是存在差異的,導致不同實驗室/物種不能實現(xiàn)直接的對接(比如A物種內的x基因的功能使用的是a這個詞匯進行注釋,而B物種內的x基因的功能卻使用的是與a同義的詞匯b進行注釋,這種情況計算機無法識別),就像講兩種語言的人,無法直接進行語言交流。這種情況導致的問題是,出現(xiàn)了一種阻礙,讓問題復雜化了。所以就有了Ontology在生物領域中的應用,實現(xiàn)“書同文”。

go定義了基因/基因產物的功能(通過術語)且定義了它們各自之間功能是怎樣聯(lián)系的(關系)。它組成了一個具有大量term的詞匯庫,并定義各種term之間的關系(is_a part_of R)。

GO通過三個方面的術語對基因/基因產物的功能進行描述:分子功能(molecular function) -由基因/基因產物行使的分子水平上的功能; 細胞組件(cellular component)-基因/基因產物產生功能時其在細胞結構上的位置;生物學過程(biological process)-在哪個生物學通路/生物過程發(fā)揮作用。

目前,GO 注釋主要有兩種方法:

(1)序列相似性比對(BLAST):例如blast2go(將blast結果轉化為GO注釋)

(2)結構域相似性比對(InterProScan)

blast2go的本地化教程:

在blast2go軟件正確安裝的情況下,使用blast2go進行go注釋,出現(xiàn)無法得到注釋結果的問題:

另外還有可能出錯的原因是,blast2go無法識別blast高的版本號,當使用高版本的blast的時候,直接將版本號給修改為低版本的就行了,例如(BLASTX 2.2.25+)

GO 的圖形是一個有向無環(huán)圖

非模式生物GO、KEGG富集分析

GO、KEGG富集分析是我們做生信分析較為常用的部分,它可以將基因與功能相聯(lián)系起來。

GO指的是Gene Ontology,是基因功能國際標準分類體系。目的在于建立一個適用于各種物種的,對基因和蛋白質功能進行限定和描述的,并能隨著研究不斷深入而更新的語言詞匯標準。GO分為分子功能(Molecular Function)(MF)、生物過程(Biological Process)(BP)、和細胞組成(Cellular Component)(CC)三個部分。

KEGG指的是京都基因與基因組百科全書,通常我們使用KEGG中的pathway模塊,將基因映射到某些通路上,了解基因參與生物體中的代謝過程等。

對于模式生物,GO和KEGG富集分析實現(xiàn)起來比較容易,對于非模式生物來說還是需要花點時間和精力。對于模式生物的GO和KEGG富集分析,網上教程案例挺多的。對于非模式生物,以小麥為例,進行下面一些基本的富集分析。

做富集分析,我們需要了解一下幾個概念。

1、前景基因:指的是我們所要進行富集的基因,一般是基因的ID

2、背景基因:指的是前景基因在某個基因集合進行富集,這個基因集合就是背景基因

3、描述信息:每個GO的Term的屬性,或者是每個KO號或者map號的屬性。

我們具備前景基因,背景基因以及描述信息我們就可以做富集分析啦。

1、前景基因:這是必須的啦。有時候需要進行ID轉換,但是個人覺得ID轉換根據(jù)需要來就行。如果前景基因里面的基因ID是包括在背景基因里面,那就需要進行轉換。如果前景基因在是新的基因或者在背景基因沒有被注釋到的,就不用進行ID轉換。下面這個就是融合基因,在背景基因里面沒有注釋到的,那么我就不要轉換。

2、背景基因:一個基因可能具備多個GO term,一個基因也可能參與多個通路,與之相對應的有多個map號

這個案例中背景基因文件構建思路如下圖

3、描述文件

跑完之后就會得到一些結果:

生成一些簡單的氣泡圖,條形圖,GO二級分類圖

GO數(shù)據(jù)庫介紹(轉載)

類似于語義網絡。是為了生物界有一個統(tǒng)一的數(shù)據(jù)交流語言。 因為在生物學界,存在在種種同名異義、異議同名的現(xiàn)象。為此產生了GO項目。

GO是用一套統(tǒng)一的詞匯表來描述生物學中的分子功能、生物過程和細胞成分。其思想大概過程:對于一個基因產品(蛋白質或RNA),用某些詞匯來描述它是干什么的或位于細胞哪里、或者參與了哪個生物過程,而這些詞匯就是來自GO的Term。

(1)提供生物學功能(術語)的邏輯結構及其相互之間的關系,表現(xiàn)為有向無環(huán)圖

(2)給特定的基因產物(蛋白質,非編碼RNA或大分子復合體,簡稱為'基因')起一個特定的名字(唯一標識該基因)

Gene Ontology(GO)中最基本的概念是term。GO里面的每一個entry都有一個唯一的數(shù)字標記,形如GO:nnnnnnn,還有一個term名,比如"cell", "fibroblast growth factor receptor binding",或者"signal transduction"。每個term都屬于一個ontology,總共有三個ontology,它們分別是

細胞成分:細胞的部分或其細胞外環(huán)境;

分子功能:基因產物在分子水平上的元素活性,例如結合或催化;

生物過程:具有確定開始和結束的分子事件的操作或集合,與綜合生活單元的功能有關

理由一:

在基因表達譜分析中,GO常用于提供基因功能分類標簽和基因功能研究的背景知識。利用GO的知識體系和結構特點,旨在發(fā)掘與基因差異表達現(xiàn)象關聯(lián)的單個特征基因功能類或多個特征功能類的組合。

根據(jù)GO的知識體系,使用“功能類”(或者叫做“功能模塊”)這一概念具有以下優(yōu)點:我們認為,單個基因的表達情況的改變不足以反映特定功能/通路的整體變化情況。因為類似人類社會的組織結構,生物體的功能的實現(xiàn)決不僅僅是依靠一兩個基因功能的改變來實現(xiàn)的。因此過分著重單個基因表達變化,將會在后期結果處理中嚴重干擾對于結果的合理分析,導致偏倚性加大,而且是無法避免的。因此利用GO的結構體系,把參與同樣功能/通路的基因進行“功能類”層面的抽象和整合,提供比基因更高一層次的抽象結論,對理解疾病的發(fā)病機制或藥物的作用機理等更有幫助。

但是該方法也存在一定的不足,由于生物體內部的調控網絡可能具有“scale-free network”的特點,個別功能重要的基因(主效基因)具有“Hub節(jié)點”的重要特性,它的功能改變可能對于整個網絡來說是至關重要的,在這點上,這些重要的基因又具有一定的“自私獨裁”特點。而“功能類”之觀點模糊了這種差別特性,過于強調“共性”,而忽視了“個性”,這也是“功能類”的一個不足之處,這就需要結合相關的生物學知識才能夠實現(xiàn)

理由二:

GO(gene ontology)對大家而言也許會是一個相對陌生的名詞,但是它已經成為生物信息領域中一個極為重要的方法和工具,并正在逐步改變著我們對 biological data的組織和理解方式,它的存在已經大大加快了我們對所擁有的生物數(shù)據(jù)的整合和利用,我們應該逐步學會理解和掌握這種思想和工具。

眾所周知,sequence based biology中的核心內容即是對序列的Annotation(注釋),其中主要包含structural annotation和functional annotation,前者涉及分析sequence在genome中的locus以及exon,intron,promoter等的location,而后者則是推斷序列編碼產物的功能

隨著多種生物genome的相繼解碼,同時大量ESTs以及gene expression profile date的積累,使得annotation的工作量和復雜度大大增加。然而另一方面,大多數(shù)基因在不同真核生物中擁有共同的主要生物功能,通過在某些物種中獲得的基因或者蛋白質(shared protein)的生物學信息,可以用以解釋其他物種中對應的基因或蛋白(especially in comparative genomics)。由于這些繁復的功能信息主要是包含在積累的文獻之中,如何有效的提取和綜合這些信息就是我們面臨的核心困難,這也是GO所要著力解決的問題。通過建立一套具有動態(tài)形式的控制字集(controlled vocabulary),來解釋真核基因及蛋白在細胞內所扮演的角色,并隨著生命科學研究的進步,不斷積累和更新。一個ontology會被一個控制字集來描述并給予一定的名稱,通過制定“本體”ontologies并運用統(tǒng)計學方法及自然語言處理技術,可以實現(xiàn)知識管理的專家系統(tǒng)控制

總結:

Gene Ontology(GO)包含了基因參與的生物過程,所處的細胞位置,發(fā)揮的分子功能三方面功能信息,并將概念粗細不同的功能概念組織成DAG(有向無環(huán)圖)的結構。

Gene Ontology是一個使用有控制的詞匯表和嚴格定義的概念關系,以有向無環(huán)圖的形式統(tǒng)一表示各物種的基因功能分類體系,從而較全面地概括了基因的功能信息,糾正了傳統(tǒng)功能分類體系中常見的維度混淆問題。

在基因表達譜分析中,GO常用于提供基因功能分類標簽和基因功能研究的背景知識。利用GO的知識體系和結構特點,旨在發(fā)掘與基因差異表達現(xiàn)象關聯(lián)的單個特征基因功能類或多個特征功能類的組合。

原文:


網站欄目:go語言生物模塊 go語言mod
URL鏈接:http://weahome.cn/article/ddddhcd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部