類似于語(yǔ)義網(wǎng)絡(luò)。是為了生物界有一個(gè)統(tǒng)一的數(shù)據(jù)交流語(yǔ)言。 因?yàn)樵谏飳W(xué)界,存在在種種同名異義、異議同名的現(xiàn)象。為此產(chǎn)生了GO項(xiàng)目。
十多年的鞍山網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整鞍山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“鞍山網(wǎng)站設(shè)計(jì)”,“鞍山網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
GO是用一套統(tǒng)一的詞匯表來(lái)描述生物學(xué)中的分子功能、生物過(guò)程和細(xì)胞成分。其思想大概過(guò)程:對(duì)于一個(gè)基因產(chǎn)品(蛋白質(zhì)或RNA),用某些詞匯來(lái)描述它是干什么的或位于細(xì)胞哪里、或者參與了哪個(gè)生物過(guò)程,而這些詞匯就是來(lái)自GO的Term。
(1)提供生物學(xué)功能(術(shù)語(yǔ))的邏輯結(jié)構(gòu)及其相互之間的關(guān)系,表現(xiàn)為有向無(wú)環(huán)圖
(2)給特定的基因產(chǎn)物(蛋白質(zhì),非編碼RNA或大分子復(fù)合體,簡(jiǎn)稱為'基因')起一個(gè)特定的名字(唯一標(biāo)識(shí)該基因)
Gene Ontology(GO)中最基本的概念是term。GO里面的每一個(gè)entry都有一個(gè)唯一的數(shù)字標(biāo)記,形如GO:nnnnnnn,還有一個(gè)term名,比如"cell", "fibroblast growth factor receptor binding",或者"signal transduction"。每個(gè)term都屬于一個(gè)ontology,總共有三個(gè)ontology,它們分別是
細(xì)胞成分:細(xì)胞的部分或其細(xì)胞外環(huán)境;
分子功能:基因產(chǎn)物在分子水平上的元素活性,例如結(jié)合或催化;
生物過(guò)程:具有確定開始和結(jié)束的分子事件的操作或集合,與綜合生活單元的功能有關(guān)
理由一:
在基因表達(dá)譜分析中,GO常用于提供基因功能分類標(biāo)簽和基因功能研究的背景知識(shí)。利用GO的知識(shí)體系和結(jié)構(gòu)特點(diǎn),旨在發(fā)掘與基因差異表達(dá)現(xiàn)象關(guān)聯(lián)的單個(gè)特征基因功能類或多個(gè)特征功能類的組合。
根據(jù)GO的知識(shí)體系,使用“功能類”(或者叫做“功能模塊”)這一概念具有以下優(yōu)點(diǎn):我們認(rèn)為,單個(gè)基因的表達(dá)情況的改變不足以反映特定功能/通路的整體變化情況。因?yàn)轭愃迫祟惿鐣?huì)的組織結(jié)構(gòu),生物體的功能的實(shí)現(xiàn)決不僅僅是依靠一兩個(gè)基因功能的改變來(lái)實(shí)現(xiàn)的。因此過(guò)分著重單個(gè)基因表達(dá)變化,將會(huì)在后期結(jié)果處理中嚴(yán)重干擾對(duì)于結(jié)果的合理分析,導(dǎo)致偏倚性加大,而且是無(wú)法避免的。因此利用GO的結(jié)構(gòu)體系,把參與同樣功能/通路的基因進(jìn)行“功能類”層面的抽象和整合,提供比基因更高一層次的抽象結(jié)論,對(duì)理解疾病的發(fā)病機(jī)制或藥物的作用機(jī)理等更有幫助。
但是該方法也存在一定的不足,由于生物體內(nèi)部的調(diào)控網(wǎng)絡(luò)可能具有“scale-free network”的特點(diǎn),個(gè)別功能重要的基因(主效基因)具有“Hub節(jié)點(diǎn)”的重要特性,它的功能改變可能對(duì)于整個(gè)網(wǎng)絡(luò)來(lái)說(shuō)是至關(guān)重要的,在這點(diǎn)上,這些重要的基因又具有一定的“自私獨(dú)裁”特點(diǎn)。而“功能類”之觀點(diǎn)模糊了這種差別特性,過(guò)于強(qiáng)調(diào)“共性”,而忽視了“個(gè)性”,這也是“功能類”的一個(gè)不足之處,這就需要結(jié)合相關(guān)的生物學(xué)知識(shí)才能夠?qū)崿F(xiàn)
理由二:
GO(gene ontology)對(duì)大家而言也許會(huì)是一個(gè)相對(duì)陌生的名詞,但是它已經(jīng)成為生物信息領(lǐng)域中一個(gè)極為重要的方法和工具,并正在逐步改變著我們對(duì) biological data的組織和理解方式,它的存在已經(jīng)大大加快了我們對(duì)所擁有的生物數(shù)據(jù)的整合和利用,我們應(yīng)該逐步學(xué)會(huì)理解和掌握這種思想和工具。
眾所周知,sequence based biology中的核心內(nèi)容即是對(duì)序列的Annotation(注釋),其中主要包含structural annotation和functional annotation,前者涉及分析sequence在genome中的locus以及exon,intron,promoter等的location,而后者則是推斷序列編碼產(chǎn)物的功能
隨著多種生物genome的相繼解碼,同時(shí)大量ESTs以及gene expression profile date的積累,使得annotation的工作量和復(fù)雜度大大增加。然而另一方面,大多數(shù)基因在不同真核生物中擁有共同的主要生物功能,通過(guò)在某些物種中獲得的基因或者蛋白質(zhì)(shared protein)的生物學(xué)信息,可以用以解釋其他物種中對(duì)應(yīng)的基因或蛋白(especially in comparative genomics)。由于這些繁復(fù)的功能信息主要是包含在積累的文獻(xiàn)之中,如何有效的提取和綜合這些信息就是我們面臨的核心困難,這也是GO所要著力解決的問(wèn)題。通過(guò)建立一套具有動(dòng)態(tài)形式的控制字集(controlled vocabulary),來(lái)解釋真核基因及蛋白在細(xì)胞內(nèi)所扮演的角色,并隨著生命科學(xué)研究的進(jìn)步,不斷積累和更新。一個(gè)ontology會(huì)被一個(gè)控制字集來(lái)描述并給予一定的名稱,通過(guò)制定“本體”ontologies并運(yùn)用統(tǒng)計(jì)學(xué)方法及自然語(yǔ)言處理技術(shù),可以實(shí)現(xiàn)知識(shí)管理的專家系統(tǒng)控制
總結(jié):
Gene Ontology(GO)包含了基因參與的生物過(guò)程,所處的細(xì)胞位置,發(fā)揮的分子功能三方面功能信息,并將概念粗細(xì)不同的功能概念組織成DAG(有向無(wú)環(huán)圖)的結(jié)構(gòu)。
Gene Ontology是一個(gè)使用有控制的詞匯表和嚴(yán)格定義的概念關(guān)系,以有向無(wú)環(huán)圖的形式統(tǒng)一表示各物種的基因功能分類體系,從而較全面地概括了基因的功能信息,糾正了傳統(tǒng)功能分類體系中常見的維度混淆問(wèn)題。
在基因表達(dá)譜分析中,GO常用于提供基因功能分類標(biāo)簽和基因功能研究的背景知識(shí)。利用GO的知識(shí)體系和結(jié)構(gòu)特點(diǎn),旨在發(fā)掘與基因差異表達(dá)現(xiàn)象關(guān)聯(lián)的單個(gè)特征基因功能類或多個(gè)特征功能類的組合。
原文:
本教程介紹了使用 Godatabase/sql及其標(biāo)準(zhǔn)庫(kù)中的包訪問(wèn)關(guān)系數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)。
您將使用的database/sql包包括用于連接數(shù)據(jù)庫(kù)、執(zhí)行事務(wù)、取消正在進(jìn)行的操作等的類型和函數(shù)。
在本教程中,您將創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),然后編寫代碼來(lái)訪問(wèn)該數(shù)據(jù)庫(kù)。您的示例項(xiàng)目將是有關(guān)老式爵士樂(lè)唱片的數(shù)據(jù)存儲(chǔ)庫(kù)。
首先,為您要編寫的代碼創(chuàng)建一個(gè)文件夾。
1、打開命令提示符并切換到您的主目錄。
在 Linux 或 Mac 上:
在 Windows 上:
2、在命令提示符下,為您的代碼創(chuàng)建一個(gè)名為 data-access 的目錄。
3、創(chuàng)建一個(gè)模塊,您可以在其中管理將在本教程中添加的依賴項(xiàng)。
運(yùn)行g(shù)o mod init命令,為其提供新代碼的模塊路徑。
此命令創(chuàng)建一個(gè) go.mod 文件,您添加的依賴項(xiàng)將在其中列出以供跟蹤。
注意: 在實(shí)際開發(fā)中,您會(huì)指定一個(gè)更符合您自己需求的模塊路徑。有關(guān)更多信息,請(qǐng)參閱一下文章。
GO語(yǔ)言(二十五):管理依賴項(xiàng)(上)
GO語(yǔ)言(二十六):管理依賴項(xiàng)(中)
GO語(yǔ)言(二十七):管理依賴項(xiàng)(下)
接下來(lái),您將創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。
在此步驟中,您將創(chuàng)建要使用的數(shù)據(jù)庫(kù)。您將使用 DBMS 本身的 CLI 創(chuàng)建數(shù)據(jù)庫(kù)和表,以及添加數(shù)據(jù)。
您將創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),其中包含有關(guān)黑膠唱片上的老式爵士樂(lè)錄音的數(shù)據(jù)。
這里的代碼使用MySQL CLI,但大多數(shù) DBMS 都有自己的 CLI,具有類似的功能。
1、打開一個(gè)新的命令提示符。
在命令行,登錄到您的 DBMS,如下面的 MySQL 示例所示。
2、在mysql命令提示符下,創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。
3、切到您剛剛創(chuàng)建的數(shù)據(jù)庫(kù),以便您可以添加表。
4、在文本編輯器的 data-access 文件夾中,創(chuàng)建一個(gè)名為 create-tables.sql 的文件來(lái)保存用于添加表的 SQL 腳本。
將以下 SQL 代碼粘貼到文件中,然后保存文件。
在此 SQL 代碼中:
(1)刪除名為album表。 首先執(zhí)行此命令可以讓您更輕松地稍后重新運(yùn)行腳本。
(2)創(chuàng)建一個(gè)album包含四列的表:title、artist和price。每行的id值由 DBMS 自動(dòng)創(chuàng)建。
(3)添加帶有值的四行。
5、在mysql命令提示符下,運(yùn)行您剛剛創(chuàng)建的腳本。
您將使用以下形式的source命令:
6、在 DBMS 命令提示符處,使用SELECT語(yǔ)句來(lái)驗(yàn)證您是否已成功創(chuàng)建包含數(shù)據(jù)的表。
接下來(lái),您將編寫一些 Go 代碼進(jìn)行連接,以便進(jìn)行查詢。
現(xiàn)在你已經(jīng)有了一個(gè)包含一些數(shù)據(jù)的數(shù)據(jù)庫(kù),開始你的 Go 代碼。
找到并導(dǎo)入一個(gè)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序會(huì)將您通過(guò)database/sql包中的函數(shù)發(fā)出的請(qǐng)求轉(zhuǎn)換為數(shù)據(jù)庫(kù)可以理解的請(qǐng)求。
1、在您的瀏覽器中,訪問(wèn)SQLDrivers wiki 頁(yè)面以識(shí)別您可以使用的驅(qū)動(dòng)程序。
2、使用頁(yè)面上的列表來(lái)識(shí)別您將使用的驅(qū)動(dòng)程序。為了在本教程中訪問(wèn) MySQL,您將使用 Go-MySQL-Driver。
3、請(qǐng)注意驅(qū)動(dòng)程序的包名稱 - 此處為github.com/go-sql-driver/mysql.
4、使用您的文本編輯器,創(chuàng)建一個(gè)用于編寫 Go 代碼的文件,并將該文件作為 main.go 保存在您之前創(chuàng)建的數(shù)據(jù)訪問(wèn)目錄中。
5、進(jìn)入main.go,粘貼以下代碼導(dǎo)入驅(qū)動(dòng)包。
在此代碼中:
(1)將您的代碼添加到main包中,以便您可以獨(dú)立執(zhí)行它。
(2)導(dǎo)入 MySQL 驅(qū)動(dòng)程序github.com/go-sql-driver/mysql。
導(dǎo)入驅(qū)動(dòng)程序后,您將開始編寫代碼以訪問(wèn)數(shù)據(jù)庫(kù)。
現(xiàn)在編寫一些 Go 代碼,讓您使用數(shù)據(jù)庫(kù)句柄訪問(wèn)數(shù)據(jù)庫(kù)。
您將使用指向結(jié)構(gòu)的指針sql.DB,它表示對(duì)特定數(shù)據(jù)庫(kù)的訪問(wèn)。
編寫代碼
1、進(jìn)入 main.go,在import您剛剛添加的代碼下方,粘貼以下 Go 代碼以創(chuàng)建數(shù)據(jù)庫(kù)句柄。
在此代碼中:
(3)使用 MySQL 驅(qū)動(dòng)程序Config和FormatDSN類型以收集連接屬性并將它們格式化為連接字符串的 DSN。
該Config結(jié)構(gòu)使代碼比連接字符串更容易閱讀。
(4)調(diào)用sql.Open 初始化db變量,傳遞 FormatDSN。
(5)檢查來(lái)自 的錯(cuò)誤sql.Open。例如,如果您的數(shù)據(jù)庫(kù)連接細(xì)節(jié)格式不正確,它可能會(huì)失敗。
為了簡(jiǎn)化代碼,您調(diào)用log.Fatal結(jié)束執(zhí)行并將錯(cuò)誤打印到控制臺(tái)。在生產(chǎn)代碼中,您會(huì)希望以更優(yōu)雅的方式處理錯(cuò)誤。
(6)調(diào)用DB.Ping以確認(rèn)連接到數(shù)據(jù)庫(kù)有效。在運(yùn)行時(shí), sql.Open可能不會(huì)立即連接,具體取決于驅(qū)動(dòng)程序。您在Ping此處使用以確認(rèn) database/sql包可以在需要時(shí)連接。
(7)檢查來(lái)自Ping的錯(cuò)誤,以防連接失敗。
(8)Ping如果連接成功,則打印一條消息。
文件的頂部現(xiàn)在應(yīng)該如下所示:
3、保存 main.go。
1、開始跟蹤 MySQL 驅(qū)動(dòng)程序模塊作為依賴項(xiàng)。
使用go get 添加 github.com/go-sql-driver/mysql 模塊作為您自己模塊的依賴項(xiàng)。使用點(diǎn)參數(shù)表示“獲取當(dāng)前目錄中代碼的依賴項(xiàng)”。
2、在命令提示符下,設(shè)置Go 程序使用的DBUSER和DBPASS環(huán)境變量。
在 Linux 或 Mac 上:
在 Windows 上:
3、在包含 main.go 的目錄中的命令行中,通過(guò)鍵入go run來(lái)運(yùn)行代碼。
連接成功了!
接下來(lái),您將查詢一些數(shù)據(jù)。
本文介紹一些Go語(yǔ)言的基礎(chǔ)語(yǔ)法。
先來(lái)看一個(gè)簡(jiǎn)單的go語(yǔ)言代碼:
go語(yǔ)言的注釋方法:
代碼執(zhí)行結(jié)果:
下面來(lái)進(jìn)一步介紹go的基礎(chǔ)語(yǔ)法。
go語(yǔ)言中格式化輸出可以使用 fmt 和 log 這兩個(gè)標(biāo)準(zhǔn)庫(kù),
常用方法:
示例代碼:
執(zhí)行結(jié)果:
更多格式化方法可以訪問(wèn)中的fmt包。
log包實(shí)現(xiàn)了簡(jiǎn)單的日志服務(wù),也提供了一些格式化輸出的方法。
執(zhí)行結(jié)果:
下面來(lái)介紹一下go的數(shù)據(jù)類型
下表列出了go語(yǔ)言的數(shù)據(jù)類型:
int、float、bool、string、數(shù)組和struct屬于值類型,這些類型的變量直接指向存在內(nèi)存中的值;slice、map、chan、pointer等是引用類型,存儲(chǔ)的是一個(gè)地址,這個(gè)地址存儲(chǔ)最終的值。
常量是在程序編譯時(shí)就確定下來(lái)的值,程序運(yùn)行時(shí)無(wú)法改變。
執(zhí)行結(jié)果:
執(zhí)行結(jié)果:
Go 語(yǔ)言的運(yùn)算符主要包括算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、賦值運(yùn)算符以及指針相關(guān)運(yùn)算符。
算術(shù)運(yùn)算符:
關(guān)系運(yùn)算符:
邏輯運(yùn)算符:
位運(yùn)算符:
賦值運(yùn)算符:
指針相關(guān)運(yùn)算符:
下面介紹一下go語(yǔ)言中的if語(yǔ)句和switch語(yǔ)句。另外還有一種控制語(yǔ)句叫select語(yǔ)句,通常與通道聯(lián)用,這里不做介紹。
if語(yǔ)法格式如下:
if ... else :
else if:
示例代碼:
語(yǔ)法格式:
另外,添加 fallthrough 會(huì)強(qiáng)制執(zhí)行后面的 case 語(yǔ)句,不管下一條case語(yǔ)句是否為true。
示例代碼:
執(zhí)行結(jié)果:
下面介紹幾種循環(huán)語(yǔ)句:
執(zhí)行結(jié)果:
執(zhí)行結(jié)果:
也可以通過(guò)標(biāo)記退出循環(huán):
--THE END--
1. os.Getwd()函數(shù)
原型:func Getwd()(pwd string, err error)
作用:獲取當(dāng)前文件路徑
返回:當(dāng)前文件路徑的字符串和一個(gè)err信息
示例:
輸出:
當(dāng)前路徑: D:ProjectsGomGoLab01
2. os.Getenv()函數(shù)
原型:func Getenv(key string) string
作用:獲取系統(tǒng)環(huán)境變量的值
參數(shù):key - 系統(tǒng)環(huán)境變量名
返回:系統(tǒng)環(huán)境變量的值
示例:
輸出:
環(huán)境變量GOPATH的值是: D:/Projects/Go
3. os.Chdir()函數(shù)
原型:func Chdir(dir string) error
作用:將當(dāng)前文件路徑改變?yōu)槟繕?biāo)路徑(非真實(shí)改變)
參數(shù):dir - 目標(biāo)路徑(即改變之后的路徑)
返回:修改成功,返回 nil;修改失敗(如:目標(biāo)路徑不存在的情況),返回錯(cuò)誤信息。
示例一:
輸出:
起始路徑: D:ProjectsGomGoLab01
修改后的路徑: D:ProjectsGoDemo02
示例二:
輸出:
起始路徑: D:ProjectsGomGoLab01
error: chdir D:ProjectsGoDemo03: The system cannot find the file specified.
注:文件路徑,Window 系統(tǒng)下默認(rèn)是“”,寫在代碼中時(shí)要用“”或“/”代替。