mysql和ORTHOMCL_Orthomcl的详细使用

参考了众多文章并结合实际操作后的感想。

Orthomcl需要的linux详细配置,简单叙述。

系统:unix

BLAST

Database:oracle 或 mysql

内存4G,硬盘100G

perl: DBI module 和 DBD-mysql

MCL程序

详细操作过程及需要注意的点:

1.数据库安装和配置

我用的mysql,为避免mysql运行出问题,最好修改mysql配置文件:

1.设置myisam_sort_buffer_size为可用内存的一半

2.设置myisam_max_sort_file_size为orthomclBlastParser程序生成文件similarSequences.txt的5倍大小

3.设置read_buffer_size的值为???,或者尽量大

2.安装MCL

$ ./configure

$ make

$ make install

#注意出现make[] Nothing to be done for '***'

make[] leaving directory '/*/*/***'

不是make错误!make时最好用root权限

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 四个文件夹

把bin目录加到环境变量里,方便以后操作

$ vim .bashrc #在~目录下执行此操作

在最后一行加 export PATH=$PATH:/home/abc/.../orthomclSoftware/bin

$source .bashrc

在Orthomcl software主文件夹下创建文件夹my_orthomcl_dir作为工作目录,把/doc/OrthoMCLEngine/Main/orthomcl.config.template文件复制到my_orthomcl_dir下,命令如下:[当前路径在my_orthomcl_dir]

$ mkdir my_orthomcl_dir

$ cd my_orthomcl_dir

$ cp ../doc/OrthoMCLEngine/Main/orthomcl.config.template orthomcl.config #重命名为orthomcl.config

打开orthomcl.config:

##

dbVendor=mysql  #使用的数据库为mysql,若为oracle,则改成oracle

dbConnectString=dbi:mysql:orthomcl  #连接到mysql里的orthomcl数据库

dbLogin=test  #数据库的用户名

dbPassword=123  #与用户名相对应的密码

orthologTable=Ortholog

inParalogTable=InParalog

coOrthologTable=CoOrtholog

interTaxonMatchView=InterTaxonMatch

percentMatchCutoff=50

evalueExponentCutoff=-5

oracleIndexTblSpc=NONE

4.在mysql中创建数据库,并创建表

$ mysql -u root -p  #先用root登录创建名为orthomcl的数据库(如果test用户有权限创建数据库的话就用test用户登录创建)

mysql> create database orthomcl;

mysql> grant all on orthomcl.* to 'test'@'%';  #赋予test用户操作orthomcl数据库的所有权限,test处为用户名,%代表任何主机

$ orthomclInstallSchema orthomcl.config mysql.log species  #执行orthomclInstallSchema命令,按照orthomcl.config的配置,在数据库中创建表,mysql.log记录日志文件(选) species为每个表名后加物种名(选)

5.格式化orthomcl输入文件

orthomcl的输入文件要求为fasta格式,且需满足一定的要求,格式要求为如下:

>taxoncode|unique_protein_id  #taxoncode为物种代码一般为3-4个字母;unique_protein_id为蛋白id,taxoncode和蛋白id之间用|隔开

MFAXGETHFD..........

如:

>Dha|CAG25565

MKFGHA...........

使用orthomclAdjustFasta程序可以把从NCBI上下载下来的序列文件转换成orthomcl的标准格式,转换格式前先在my_orthomcl_dir目录下创建名为compliantFasta的文件夹,命令如下:[当前路径为my_orthomcl_dir]

$ mkdir compliantFasta

$ cd compliantFasta

$ orthomclAdjustFasta hsa ../Homo_sapiens.NCBI36.53.pep.all.fa 1  #hsa为物种代码;***.fa为序列文件,存放在my_orthomcl_dir目录下;1代表在id前加物种名和|

执行完上述命令后,产生的文件为hsa.fasta存放在compliantFasta目录下,格式如下:

>hsa|TIG25566

MHSJKXG..........

compliantFasta文件夹下存放各个物种的蛋白组,如Hsa.fasta Dha.fasta Ali.fasta Kla.fasta......

当然,,,自己编写的脚本也很容易完成格式转换,,,

6.过滤序列

使用orthomclFilterFasta命令对compliantFasta文件夹下的序列进行过滤,orthomcl的推荐规则是允许protein序列最短长度为10,stop coden占的最大比例为20%,命令会在my_orthomcl_dir目录下产生goodProteins.fasta和poorProteins.fasta,goodProteins.fasta文件中包含所有comliantFasta文件夹下经过筛选的物种蛋白组。[当前路径为my_orthomcl_dir]

$ orthomclFilterFasta compliantFasta/ 10 20

7.创建blast数据库,对goodProteins.fasta做blastp

下载最新版本blast+,安装成功根据需求下载蛋白数据库,以我自己为例,我只需要compliantFasta文件夹下的几个物种蛋白组,即只需要goodProteins.fasta作为数据库

把blast添加到环境变量后,执行如下命令:[当前路径为blast主目录]

$ mkdir db  #创建文件夹db,作为blast数据库文件夹

$ cd db

$ makeblastdb -in goodProteins.fasta -dbtype prot -title orthomcl -parse_seqids -out orthomcl -logfile orthomcl.log  #以goodProteins.fasta为序列文件,创建名为orthomcl的blast数据库[当前路径为db]

$ blastp -db orthomcl -query goodProteins.fasta -seg yes -out orthomcl.blastout -evalue 1e-5 -outfmt 7 -num_threads 24  #goodProteins.fasta对orthomcl库做blast,产生的结果文件为orthomcl.blastout(自身对自身做blast,找出目标物种间的同源基因)

8.处理blast产生的结果(参考)[当前路径为db]

$ grep -P "^[^#]" orthomcl.blastout > blastresult  #将orthomcl.blastout中的注释行去掉,产生新文件blastresult。

$ cp blastresult /home/abc/.../orthomclSoftware/my_orthomcl_dir  #把blastresult复制到orthomcl工作目录下

$ cd /home/abc/.../orthomclSoftware/my_orthomcl_dir  #转到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修改为正确的分类名

$ perl -p -i -e 's/0\t0/1\t-181/' similarSequences.txt  #修改evalue_mant, evalue_exp,将evalue为0修改为1e-181,为在后续步骤寻找pairwise relationships

9.将similarSequences.txt文件中的相似性序列载入mysql数据库中[当前路径为my_orthomcl_dir]

$ orthomclLoadBlast orthomcl.config similarSequences.txt  #将数据导入数据库中

10.寻找成对蛋白质[当前路径为my_orthomcl_dir]

$ orthomclPairs orthomcl.config orthomcl_pairs.log cleanup=no  #此命令对数据库中的空表进行操作

11.将数据从mysql数据库中导出[当前路径为my_orthomcl_dir]

$ orthomclDumpPairsFiles orthomcl.config  #此命令会在my_orthomcl_dir下生成一个mclInput文件和一个pairs文件夹,pairs文件夹下包含coorthologs.txt和inparalogs.txt和orthologs.txt三个文件

12.使用mcl对pairs进行聚类[当前路径为my_orthomcl_dir]

$ mcl mclInput --abc -I 1.5 -o mclOutput

13.提取mcl的结果,生成group.txt文件[当前路径为my_orthomcl_dir]

$ orthomclMclToGroups Fungi 1 < mclOutput > groups.txt  #生成groups.txt文件,每个同源组的编号从Fungi1开始,依次递增

至此orthomcl程序运行完毕,产生的groups.txt即为最终结果文件,可对其进行各种数据操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手撕包菜 mysql_手撕包菜搭建

概述最近做了两件事&#xff0c;一件事就是买了块1t硬盘&#xff0c;第二件事就是买了个百度云会员&#xff0c;无奈找不到资源下载&#xff0c;那就没办法了&#xff0c;搭建一个磁力链接搜索引擎来爬去链接&#xff0c;然后去找资源。说道磁力链接搜索引擎&#xff0c;最好的…

word流程图怎么使箭头对齐_word 流程图 怎么把箭头对整齐啊?

word里画流程图把箭bai头画直du,可通过shift键实现画出zhi垂直或水平的直箭头。方法步dao骤如下:回1、打开需要答操作的WORD文档,选中需要画出箭头的流程图框图,点解绘图工具中的“排列对齐”,然后选中“左右居中”对齐。2、在插入形状中找到并点击箭头,使用箭头形状工具…

java 多线程同步_详解Java多线程编程中的线程同步方法

1、多线程的同步&#xff1a;1.1、同步机制&#xff1a;在多线程中&#xff0c;可能有多个线程试图访问一个有限的资源&#xff0c;必须预防这种情况的发生。所以引入了同步机制&#xff1a;在线程使用一个资源时为其加锁&#xff0c;这样其他的线程便不能访问那个资源了&#…

java商品管理系统_【Java Web】简易商品信息管理系统——首个Web项目

正文之前在学习了一段时间的Java Web的内容之后&#xff0c;当然需要有个项目来练练手&#xff0c;我相信大多数人的首选项目都是信息管理系统吧&#xff0c;所以我选择了商品信息管理系统目前项目源码已全部上传至GitHub&#xff0c;欢迎大家来fork —— 商品信息管理系统正文…

java 向上舍入_介绍Java的大数类(BigDecimal)和八种舍入模式

1.BigDecimal简介BigDecimal 由任意精度的整数非标度值 和32 位的整数标度 (scale) 组成。如果为零或正数&#xff0c;则标度是小数点后的位数。如果为负数&#xff0c;则将该数的非标度值乘以 10 的负scale 次幂。因此&#xff0c;BigDecimal表示的数值是(unscaledValue 10-s…

java循环的内部改变循环变量的值_java在for循环中怎样修改参数值?

// 待认证QueryFilter queryFilter0 new QueryFilter();queryFilter0.addCommand(new Command("busStatus", Op.EQ, "0"));int taxStatus0 taxInfoDao.getCount(queryFilter0);int businessStatus0 businessInfoDao.getCount(queryFilter0);int socialS…

java redis rpush_Redis Rpush 命令

Redis Rpush 命令Redis Rpush 命令用于将一个或多个值插入到列表的尾部(最右边)。如果列表不存在&#xff0c;一个空列表会被创建并执行 RPUSH 操作。当列表存在但不是列表类型时&#xff0c;返回一个错误。注意&#xff1a;在 Redis 2.4 版本以前的 RPUSH 命令&#xff0c;都只…

java jstat 命令_java高分局之jstat命令使用(转)

转自:http://blog.csdn.net/h_025/article/details/52813817java高分局之jstat命令使用jstat命令可以查看堆内存各部分的使用量&#xff0c;以及加载类的数量。命令的格式如下&#xff1a;jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]注意&#xff1a;使用的jdk版本是…

java判_java中判空

一、概述java中判等似乎很简单&#xff0c;用来判断对象引用(内存地址)是否相同&#xff0c;equals用来判断值是否相同。你可以试用String对象轻松区分这一点。那么在null判等(也就是判空操作)时呢&#xff1f;可以通过如下代码明白两个判等的比较&#xff1a;String name nul…

java启动应用_java 学习:在java中启动其他应用,由jenkins想到的

在jenkins的实践中遇到了一个问题&#xff1a;我的项目依赖其他第三方应用的地方比较多&#xff0c;而且会占用多个端口&#xff0c;如何处理端口和启动/关闭第三方应用成了难题。初级解决方案&#xff1a;在服务端上面写一堆bat文件&#xff0c;&#xff0c;&#xff0c;&…

java逻辑编程题_用Java编程解决一道逻辑推理题

package mytest;import java.util.Scanner;public class Test14 {/*** 竞赛结果表明&#xff0c;他们都说对了一半&#xff0c;说错了一半&#xff0c;并且无并列名次&#xff0c;试编程输出a,b,c,d的各个名次。* 分析&#xff1a;* 我们将老师的预测列成二维数组形式。行数是老…

python3线程池爬虫_python3爬虫中多线程的优势总结

有些小伙伴跟小编讨论了python中使用多线程原理的问题&#xff0c;就聊到了关于python多线程的弊端问题&#xff0c;这点可能在使用的过程中大家会能感觉到。而且之前讲过的GIL也是对python多线程的一种限制。那么&#xff0c;我们为什么还要用多线程呢&#xff1f;当然是多线程…

java表格的创建_Java创建表格实例详解 原创

表格是最常用的数据统计形式之一&#xff0c;在 swing 中 由 JTable 类实现表格。接下来&#xff0c;我们看看怎么利用 JTable 创建表格。在 JTable 类中除了默认的构造方法外&#xff0c;还提供了利用指定表格列名数组和表格数据数组创建表格的构造方法&#xff0c;代码如下&a…

java insert方法_【Oracle/Java】以Insert ALL方式向表中插入百万条记录,耗时9分17秒...

packagecom.hy;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.text.MessageFormat;/*** 百万数据插入Oracle表中*authorhorn1**/public classMillionInserter {//连接到…

nodejs mac java home_Mac上搭建nodejs开发环境

###Mac上搭建nodejs开发环境####安装homebrew123ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"brew updatebrew doctor####安装nodejs通过brew安装nodejs和grunt12brew install nodenpm install -g grunt-cli安装成功…

java spring mvc_java spring mvc 全注解

本人苦逼学生一枚,马上就要毕业,面临找工作,实在是不想离开学校.在老师的教导下学习了spring mvc ,配置文件实在繁琐,因此网上百度学习了spring mvc 全注解方式完成spring的装配工作;废话不多说了上干货,其实我也没怎么理解不过简单的运行了一个spring mvc 全注解项目,也不能说…

java note项目_Java Request.setNote方法代码示例

import org.apache.catalina.connector.Request; //导入方法依赖的package包/类/*** Perform single-sign-on support processing for this request.** param request The servlet request we are processing* param response The servlet response we are creating** exceptio…

java 检索编号输出信息_java,_java 如何解析txt文档,输入检索信息,然后输出,java - phpStudy...

java 如何解析txt文档&#xff0c;输入检索信息&#xff0c;然后输出请输入代码需求&#xff1a;请解析config.txt&#xff0c;文件格式包括段落名称、字段名称和字段值。段落名称的值为&#xff1a;"segment:"右边的字符串&#xff0c;在一个文件中不会有重复的段落…

java语言有没有平台无关性_Java语言具有良好的安全性和可移植性及平台无关性。...

【判断题】在类的定义中如果不明确给出父类,那么默认父类是Object类。【判断题】数组一旦创建大小不可改变。【单选题】手绘天花布置图的表示方法中,凡是剖到的墙、柱的断面轮廓线用( )绘制。【单选题】天花表面有进退关系的处理形式,常常采用暗灯槽,以及与各种类型的吊灯、吸顶…

java 配置hdfs集群_Hadoop集群搭建-04安装配置HDFS

HDFS是配合Hadoop使用的分布式文件系统&#xff0c;分为namenode: nn1.hadoop nn2.hadoopdatanode: s1.hadoop s2.hadoop s3.hadoop(看不明白这5台虚拟机的请看前面 01前期准备 )解压配置文件[hadoopnn1 hadoop_base_op]$ ./ssh_all.sh mv /usr/local/hadoop/etc/hadoop /usr/l…