Infernal和hmmer程序的安装

再Rfam数据库对small RNA进行注释的过程中需要用到Infernal,但是安装遇到问题。configure之后,make不成功,报错“fatal error: config.h: No such file”,下面是解决方案。

hmmer就是一款比对软件,类似于blast等,它使用马尔可夫概率模型的方法。HMMER的目的是更准确的探测到远程同源序列,它提供的比对结果要比blast更加精确,相应的速度也要慢。在功能基因研究中需要使用到序列搜索,比如从序列数据库中,找同源的序列,或者对一个新的基因功能进行鉴定,使用hmmer比使用blast有着更高的灵敏度以及更高的搜索速度,但其应用还远没有blast普及。

hmmer安装的参考资料是:

curl -O ftp://selab.janelia.org/pub/software/hmmer3/3.1b1/hmmer-3.1b1.tar.gz
tar xzf hmmer-3.1b1.tar.gz
cd hmmer-3.1b1/
./configure --prefix=/usr && make && make install

但是我安装过程中报错:

make[2]: Entering directory '/home/fenglei/local/app/infernal/easel/miniapps'
 CC esl-afetch.o
 GEN esl-afetch
 CC esl-alimanip.o
In file included from /home/fenglei/local/include/assert.h:5:0,
 from esl-alimanip.c:8:
/home/fenglei/local/include/except.h:5:44: fatal error: config.h: No such file or directory
 #include  /* For HAVE_PTHREAD */
 ^
compilation terminated.
make[2]: *** [Makefile:123: esl-alimanip.o] Error 1
make[2]: Leaving directory '/home/fenglei/local/app/infernal/easel/miniapps'
make[1]: *** [Makefile:377: all] Error 2
make[1]: Leaving directory '/home/fenglei/local/app/infernal/easel'
make: *** [Makefile:103: all] Error 2 

原因:

现在较新的内核已经弃用了config.h,把这个文件新建上去即可。

解决办法:执行命令(注意路径的不同):

cd easel
vi config.h

在vi界面输入下述内容,随后保存退出。

 #ifndef _LINUX_CONFIG_H
 #define _LINUX_CONFIG_H
 #endif

随后成功安装。

make && make install

参考资料
http://2013-caltech-workshop.readthedocs.io/en/latest/prokka-annotation.html
https://lzw.me/a/linux-config-no-such-file-or-directory.html/comment-page-1#comment-80998

Advertisements
发表在 Bioinformatics, Linux

基因组|N50与N90的统计

背景

基因组组装的过程中,N50与N90是常用的评价指标。

方法

可以使用NGS QC Toolkit实现统计。
下载地址:
http://59.163.192.90:8080/ngsqctoolkit/

perl N50Stat.pl -i in.fa -o out.stat

N50Stat.pl

Tool to generate statistics for read/sequence data given in FASTA format (total number of reads/sequences, total bases and minimum, maximum, average, median, N25, N50, N75, N90 and N95 read/sequence length)

Citation

Patel RK, Jain M (2012). NGS QC Toolkit: A toolkit for quality control of next generation sequencing data. PLoS ONE, 7(2): e30619.

发表在 Bioinformatics

Mac OS X使用chflags命令隐藏文件

转载:Mac OS X如何使用chflags快速隐藏文件

Mac OS X 自带的命令行隐藏文件方法,使用chflags即可完成,打开终端程序,输入如下命令:

chflags hidden 文件绝对路径/ 相对路径

这样就设置隐藏属性了,进入相应的文件夹之后看不到该文件了。但是此时在Mac的『我的所有文件』下还是能看到被隐藏的文件,这是进入「系统偏好设置」-「Spotlight」-「隐私」- 添加被隐藏的文件夹或文件。

或是输入:chflags hidden [],再将文件直接拖入terminal的“[]”中也可。

重新显示文件使用:

chflags nohidden /xxx/yyy/file

再来回顾一下显示/隐藏finder所有隐藏文件的命令:

defaults write com.apple.finder AppleShowAllFiles -bool true(false) – killall finder(重启finder)

false 表示不显示『隐藏的文件』;true表示显示『隐藏的文件』。

发表在 Linux

基因名称在Excel中显示成了日期的问题

Excel会自动把基因名称纠正为日期或者数字,这些错误很难被修正。例如,名为SEPT2和MARCH1的基因就会被Excel自动纠正为‘2-Sep ’和‘1-Mar’。此外,Excel还会自动将RIKEN标识符转化为浮点数字(比如将‘ 2310009E13’变成‘2.31E+13’)。

解决办法:

1 不要用excel直接打开文件,而是用导入数据功能。

启动Excel,在Excel功能栏里选择“数据”,然后点击“自文本”,选择目的文本文件。

QQ截圖20170512181102

2选择文本文件,就会出来“文本导入向导”,点击有基因名称的那一列,数据格式选择“文本”即可。

QQ截圖20170512181305

 

~END~

 

 

发表在 Bioinformatics

Linux中对文本的行与列进行转换

命令:

awk ‘{for(i=0;++i<=NF;)a[i]=a[i]?a[i] FS $i:$i}END{for(i=0;i++<NF;)print a[i]}’  a.txt

 

Ref:

http://blog.csdn.net/reyleon/article/details/13018119

 

发表在 Linux

安装R 3.3.3 — Linux (RedHat)无root 权限

系统自带的GCC版本太低了(gcc version 4.4.7),不能够编译最新的R 3.3.3

首先在个人目录下安装了较新版本的GCC(gcc version 6.3.0),无需root权限。在安装GCC之前,必要条件是先要安装mpc、mpfr和gpm。

然后安装GCC的命令是:

 ./configure –prefix=/home/fenglei/local/ –with-mpc=/home/fenglei/local/ –with-mpfr=/home/fenglei/local/ –with-gmp=/home/fenglei/local/ –with-libelf=/home/fenglei/local/ –disable-multilib

make -j 10 && make install

随后开始准备安装R 3.3.3,下载了源码并在用户目录下安装,configure的过程遇到了缺失zlib、bzip2、xz、pcre、openssl和curl等问题。需要逐个下载并安装这些包。

在R的configure之前注意设定环境变量。具体如下。或者将其写入~/.bash_profile

LD_LIBRARY_PATH=/home/fenglei/local/lib:/home/fenglei/local/lib64

export CFLAGS=”-I/home/fenglei/local/include”

export LDFLAGS=”-L/home/fenglei/local/lib”

R的安装:

./configure –prefix=/home/fenglei/local/ –enable-R-shlib

make -j 10 && make install

现在R终于可以启动了,然而在安装devtools等包的时候还是报错!错误信息:

libssl.so.1.0.0: cannot open shared object file: No such file or directory

我猜想可能是openssl软件版本的问题,于是卸载openssl.1.1.0,安装openssl.1.0.0。然而编译openssl.1.0.0时还是报错:

POD document had syntax errors

参考网上的文章解决了该问题,网上(链接一链接二)的建议是删除 pod2man文件。我的解决方法是对pod2man文件进行了重命名:

sudo mv  /usr/bin/pod2man  /usr/bin/pod2man~

这时候再启动R软件,还是不能安装devtools,想到curl包是依赖openssl的,那么重新安装openssl之后也同样需要重新安装curl。卸载原来的curl,并且重新安装。然后启动R ,终于可以安装git2r和devtools了!

附安装zlib和bzip2等软件包的流程:

# step1:下载安装zlib

$ wget http://www.zlib.net/zlib-1.2.11.tar.gz

$ tar zlib-1.2.11.tar.gz

$ cd zlib-1.2.11.tar.gz

$ ./configure –prefix=/opt/packages

$ make

$ make install

# step2:下载和安装bzip2:

# bzip2不是标准的GNU包,根据下载的安装文件的说明文档,执行以下命令:

$ wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz

$ tar xzvf bzip2-1.0.6.tar.gz

$ cd bzip2-1.0.6

$ make -f Makefile-libbz2_so

$ make clean

$ make

$ make install PREFIX=/opt/packages

# 注意:这里下载完bzip2后,需要修改Makefile文件,在CFLAGS这个变量后面添加:-fPIC,否则后面安装R的时候会报错。

export CFLAGS=”-fPIC -I/home/fenglei/local/include”

export LDFLAGS=”-fPIC -L/home/fenglei/local/lib”

# step3:安装xz包:

$ wget http://tukaani.org/xz/xz-5.2.2.tar.gz

$ tar xzvf xz-5.2.2.tar.gz

$ cd xz-5.2.2

$ ./configure –prefix=/opt/packages

$ make -j3

$ make install

# step4:安装pcre包:

$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz

$ tar xzvf pcre-8.38.tar.gz

$ cd pcre-8.38

$ ./configure –enable-utf8 –prefix=/opt/packages

$ make -j3

$ make install

OPENSSL

./config -fPIC –prefix=/home/fenglei/local/ enable-shared

./config -t

make

make install

# 如何安装OPENSSL  http://www.jianshu.com/p/291294ad0ee7

# step5:安装curl包:

$ wget –no-check-certificate http://curl.haxx.se/download/curl-7.51.0.tar.gz

$ tar -zxf curl-7.51.0.tar.gz

$ cd curl-7.51.0

$ ./configure –prefix=/opt/packages

$ make -j3

$ make install

# step6:设置安装好的包的环境变量,将下面命令写入~/.bash_profile(这步重要):

# 前两个是“configure”过程需要用到的,后一个是安装R的“make”过程需要用到的。

export CFLAGS=”-I/home/fenglei/local/include”

export LDFLAGS=”-L/home/fenglei/local/lib”

LD_LIBRARY_PATH=/home/fenglei/local/lib:/home/fenglei/local/lib64

 

 

~END~

 

 

 

发表在 Linux

Linux shell: 对特定时间的文件执行操作

有时候目录下文件数目比较多,手动逐个操作费时费力,因此可以通过查找文件的生成时间找到这些文件,随后执行删除、转移等操作。

例如需要找到09点92分的文件并转移到tmp文件夹:

for filename in `ls`;

do

if [ `date -r $filename +%H%M` == “0952” ];

then mv $filename ./tmp;

fi;

done

发表在 Linux