mysql和ORTHOMCL_Orthomcl的详细使用
參考了眾多文章并結(jié)合實(shí)際操作后的感想。
Orthomcl需要的linux詳細(xì)配置,簡(jiǎn)單敘述。
系統(tǒng):unix
BLAST
Database:oracle 或 mysql
內(nèi)存4G,硬盤(pán)100G
perl: DBI module 和 DBD-mysql
MCL程序
詳細(xì)操作過(guò)程及需要注意的點(diǎn):
1.數(shù)據(jù)庫(kù)安裝和配置
我用的mysql,為避免mysql運(yùn)行出問(wèn)題,最好修改mysql配置文件:
1.設(shè)置myisam_sort_buffer_size為可用內(nèi)存的一半
2.設(shè)置myisam_max_sort_file_size為orthomclBlastParser程序生成文件similarSequences.txt的5倍大小
3.設(shè)置read_buffer_size的值為???,或者盡量大
2.安裝MCL
$ ./configure
$ make
$ make install
#注意出現(xiàn)make[] Nothing to be done for '***'
make[] leaving directory '/*/*/***'
不是make錯(cuò)誤!make時(shí)最好用root權(quán)限
3.安裝配置Orthomcl software
下載地址?http://orthomcl.org/common/downloads/software/v2.0/ 我下的是orthomclSoftware-v2.0.9.tar.gz
下載完成后解壓文件 $ tar -xf?orthomclSoftware-v2.0.9.tar.gz,解壓完成后包括bin config doc lib 四個(gè)文件夾
把bin目錄加到環(huán)境變量里,方便以后操作
$ vim .bashrc #在~目錄下執(zhí)行此操作
在最后一行加 export PATH=$PATH:/home/abc/.../orthomclSoftware/bin
$source .bashrc
在Orthomcl software主文件夾下創(chuàng)建文件夾my_orthomcl_dir作為工作目錄,把/doc/OrthoMCLEngine/Main/orthomcl.config.template文件復(fù)制到my_orthomcl_dir下,命令如下:[當(dāng)前路徑在my_orthomcl_dir]
$ mkdir?my_orthomcl_dir
$ cd?my_orthomcl_dir
$ cp ../doc/OrthoMCLEngine/Main/orthomcl.config.template orthomcl.config #重命名為orthomcl.config
打開(kāi)orthomcl.config:
##
dbVendor=mysql #使用的數(shù)據(jù)庫(kù)為mysql,若為oracle,則改成oracle
dbConnectString=dbi:mysql:orthomcl #連接到mysql里的orthomcl數(shù)據(jù)庫(kù)
dbLogin=test #數(shù)據(jù)庫(kù)的用戶(hù)名
dbPassword=123 #與用戶(hù)名相對(duì)應(yīng)的密碼
orthologTable=Ortholog
inParalogTable=InParalog
coOrthologTable=CoOrtholog
interTaxonMatchView=InterTaxonMatch
percentMatchCutoff=50
evalueExponentCutoff=-5
oracleIndexTblSpc=NONE
4.在mysql中創(chuàng)建數(shù)據(jù)庫(kù),并創(chuàng)建表
$ mysql -u root -p #先用root登錄創(chuàng)建名為orthomcl的數(shù)據(jù)庫(kù)(如果test用戶(hù)有權(quán)限創(chuàng)建數(shù)據(jù)庫(kù)的話(huà)就用test用戶(hù)登錄創(chuàng)建)
mysql> create database orthomcl;
mysql> grant all on orthomcl.* to 'test'@'%'; #賦予test用戶(hù)操作orthomcl數(shù)據(jù)庫(kù)的所有權(quán)限,test處為用戶(hù)名,%代表任何主機(jī)
$?orthomclInstallSchema orthomcl.config mysql.log species #執(zhí)行orthomclInstallSchema命令,按照orthomcl.config的配置,在數(shù)據(jù)庫(kù)中創(chuàng)建表,mysql.log記錄日志文件(選) species為每個(gè)表名后加物種名(選)
5.格式化orthomcl輸入文件
orthomcl的輸入文件要求為fasta格式,且需滿(mǎn)足一定的要求,格式要求為如下:
>taxoncode|unique_protein_id #taxoncode為物種代碼一般為3-4個(gè)字母;unique_protein_id為蛋白id,taxoncode和蛋白id之間用|隔開(kāi)
MFAXGETHFD..........
如:
>Dha|CAG25565
MKFGHA...........
使用orthomclAdjustFasta程序可以把從NCBI上下載下來(lái)的序列文件轉(zhuǎn)換成orthomcl的標(biāo)準(zhǔn)格式,轉(zhuǎn)換格式前先在my_orthomcl_dir目錄下創(chuàng)建名為compliantFasta的文件夾,命令如下:[當(dāng)前路徑為my_orthomcl_dir]
$ mkdir?compliantFasta
$?cd?compliantFasta
$?orthomclAdjustFasta hsa ../Homo_sapiens.NCBI36.53.pep.all.fa 1 #hsa為物種代碼;***.fa為序列文件,存放在my_orthomcl_dir目錄下;1代表在id前加物種名和|
執(zhí)行完上述命令后,產(chǎn)生的文件為hsa.fasta存放在compliantFasta目錄下,格式如下:
>hsa|TIG25566
MHSJKXG..........
compliantFasta文件夾下存放各個(gè)物種的蛋白組,如Hsa.fasta Dha.fasta Ali.fasta Kla.fasta......
當(dāng)然,,,自己編寫(xiě)的腳本也很容易完成格式轉(zhuǎn)換,,,
6.過(guò)濾序列
使用orthomclFilterFasta命令對(duì)compliantFasta文件夾下的序列進(jìn)行過(guò)濾,orthomcl的推薦規(guī)則是允許protein序列最短長(zhǎng)度為10,stop coden占的最大比例為20%,命令會(huì)在my_orthomcl_dir目錄下產(chǎn)生goodProteins.fasta和poorProteins.fasta,goodProteins.fasta文件中包含所有comliantFasta文件夾下經(jīng)過(guò)篩選的物種蛋白組。[當(dāng)前路徑為my_orthomcl_dir]
$?orthomclFilterFasta?compliantFasta/ 10 20
7.創(chuàng)建blast數(shù)據(jù)庫(kù),對(duì)goodProteins.fasta做blastp
下載最新版本blast+,安裝成功根據(jù)需求下載蛋白數(shù)據(jù)庫(kù),以我自己為例,我只需要compliantFasta文件夾下的幾個(gè)物種蛋白組,即只需要goodProteins.fasta作為數(shù)據(jù)庫(kù)
把blast添加到環(huán)境變量后,執(zhí)行如下命令:[當(dāng)前路徑為blast主目錄](méi)
$ mkdir db #創(chuàng)建文件夾db,作為blast數(shù)據(jù)庫(kù)文件夾
$ cd db
$?makeblastdb -in goodProteins.fasta -dbtype prot -title orthomcl -parse_seqids -out orthomcl -logfile orthomcl.log #以goodProteins.fasta為序列文件,創(chuàng)建名為orthomcl的blast數(shù)據(jù)庫(kù)[當(dāng)前路徑為db]
$?blastp -db orthomcl -query goodProteins.fasta -seg yes -out orthomcl.blastout -evalue 1e-5 -outfmt 7 -num_threads 24 #goodProteins.fasta對(duì)orthomcl庫(kù)做blast,產(chǎn)生的結(jié)果文件為orthomcl.blastout(自身對(duì)自身做blast,找出目標(biāo)物種間的同源基因)
8.處理blast產(chǎn)生的結(jié)果(參考)[當(dāng)前路徑為db]
$ grep -P "^[^#]" orthomcl.blastout > blastresult #將orthomcl.blastout中的注釋行去掉,產(chǎn)生新文件blastresult。
$ cp?blastresult /home/abc/.../orthomclSoftware/my_orthomcl_dir #把blastresult復(fù)制到orthomcl工作目錄下
$ cd?/home/abc/.../orthomclSoftware/my_orthomcl_dir #轉(zhuǎn)到orthomcl工作目錄
$ sed -i s/"gnl|"/""/g blastresult
$ orthomclBlastParser blastresult compliantFasta > similarSequences.txt #使用orthomclBlastParser命令引入compliantFasta文件夾下文件,生成similarSequences.txt文件,找出相似性序列,從第1列到第8列分別是:query_id, subject_id, query_taxon, subject_taxon, evalue_mant, evalue_exp, percent_ident, percent_match。
$ perl -p -i -e 's/\t(\w+)(\|.*)orthomcl/\t$1$2$1/' similarSequences.txt #將subject_taxon修改為正確的分類(lèi)名
$ perl -p -i -e 's/0\t0/1\t-181/' similarSequences.txt #修改evalue_mant, evalue_exp,將evalue為0修改為1e-181,為在后續(xù)步驟尋找pairwise relationships
9.將similarSequences.txt文件中的相似性序列載入mysql數(shù)據(jù)庫(kù)中[當(dāng)前路徑為my_orthomcl_dir]
$ orthomclLoadBlast orthomcl.config similarSequences.txt #將數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)中
10.尋找成對(duì)蛋白質(zhì)[當(dāng)前路徑為my_orthomcl_dir]
$?orthomclPairs orthomcl.config orthomcl_pairs.log cleanup=no #此命令對(duì)數(shù)據(jù)庫(kù)中的空表進(jìn)行操作
11.將數(shù)據(jù)從mysql數(shù)據(jù)庫(kù)中導(dǎo)出[當(dāng)前路徑為my_orthomcl_dir]
$ orthomclDumpPairsFiles orthomcl.config #此命令會(huì)在my_orthomcl_dir下生成一個(gè)mclInput文件和一個(gè)pairs文件夾,pairs文件夾下包含coorthologs.txt和inparalogs.txt和orthologs.txt三個(gè)文件
12.使用mcl對(duì)pairs進(jìn)行聚類(lèi)[當(dāng)前路徑為my_orthomcl_dir]
$?mcl mclInput --abc -I 1.5 -o mclOutput
13.提取mcl的結(jié)果,生成group.txt文件[當(dāng)前路徑為my_orthomcl_dir]
$ orthomclMclToGroups Fungi 1 < mclOutput > groups.txt #生成groups.txt文件,每個(gè)同源組的編號(hào)從Fungi1開(kāi)始,依次遞增
至此orthomcl程序運(yùn)行完畢,產(chǎn)生的groups.txt即為最終結(jié)果文件,可對(duì)其進(jìn)行各種數(shù)據(jù)操作
總結(jié)
以上是生活随笔為你收集整理的mysql和ORTHOMCL_Orthomcl的详细使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 生活 list.php,list.php
- 下一篇: 2048java课程设计报告_软件工程—