04

linux服务器管理–系统服务设置命令systemctl

因为买过一个超算云服务器,所以前面我讲过Ubuntu服务器管理系列知识,正好最近要搞了个阿里云,用来做shiny服务器,发现服务器管理居然进化了好多,以前的知识都过时了,再记录一笔吧,真的是学习如逆水行舟,不进则退呀!

我的阿里云服务器版本是CentOS 6.5.,属于(RedHat 7, Ubuntu 15.04+, SLES 12+)  系列,是目前最新版本的服务器管理,所以大家重点是记住这个systemctl 即可:

Continue reading

23

生信分析人员如何系统入门linux?

生信分析人员如何系统入门linux?

linux系统在生物信息学数据处理中的重要性就不用我多说了,鉴于一直有学生问我一些很显而易见的问题,对系统性的学习并理解了linux系统操作的专业人士来说是显而易见的。
我在这里仅以过来人的角度给大家总结一下linux该如何学,该学什么,该花多少工夫,学习重点是什么?
就我个人这么多年处理生物信息学数据经验来看,可以把linux的学习过程分成三个阶段:
一是把linux系统玩得跟windows系统一样顺畅。
这一阶段的主要目的就是去可视化,熟悉黑白命令行界面。
如何连接服务器(xshell,putty,VNC~~~),了解你在服务器上面有什么权限。
左右鼠标单击双击如何实现?磁盘文件浏览如何实现?文件操作如何实现?绝对路径和相对路径区别?
需要了解的命令有下面这些:
pwd/ls/cd/mv/rm/cp/mkdir/rmdir/man/locate/head/tail/less/more
cut/paste/join/sort/uniq/wc/cat/diff/cmp/alias
wget/ssh/scp/curl/ftp/lftp/mysql/
大家可以搜索(每天一个linux命令的博客)来跟着练习,或者看一些linux视频(百度云盘(http://pan.baidu.com/s/1jIvwRD8 )共享了一大堆,建议看鸟哥linux私房菜),或者关注一些linux学习相关公众号,加入一些linux社区,论坛,当然如果你只是简单了解,搞生物信息学其实没必要那么深入理解,跟着一本像样的入门书籍,完整的学习即可!
不懂的名词,赶紧谷歌搜索,多记笔记。
需要深度理解的概念有:
软硬链接区别
文本编辑,文件权限设置
打包压缩解压操作(tar/gzip/bzip/ x-j x-c vf)
软件的快捷方式如何实现?
软件如何安装(源码软件,二进制可执行软件,perl/R/python/java软件)
软件版本如何管理,各种编程语言环境如何管理,模块如何管理?(尤其是大部分没有root权限)
这些知识需要深度理解,所以一般初学者肯定会遇到问题,自己要多看教程和视频跟着了练习,但总会有一些不是你立即就能解决的,不要纠结,继续学习,不久之后回过头来就明白了。
翻译成生物信息学语言就是:测序文件在哪里?测序文件有多大?测序文件的格式fastq/fasta是什么?
前几行怎么看,参考基因组如何下载?参考基因组如何建立比对索引?blast软件如何安装以及使用?
比对结果如何看?结果如何过滤?两次结果如何比较?
建议自己安装bio-linux系统,里面会自带很多生物信息学测试数据(fastq,fasta,sam,bam,vcf,gff,gtf,bed,MAF......),安装系统的过程也是熟悉linux的过程,熟悉这些数据格式既能加强生物信息学技巧,也能练习linux操作。
不懂的名词,赶紧谷歌搜索,多记笔记。

二是shell脚本,类似于windows的bat批处理文件

懂很多预定义变量 .bashrc/env/HOME/
学会一些控制语句 while/if/for/ 批量执行命令
开始自定义函数,避免重复造轮子。
了解 awk/sed/grep等文件操作语言,短小精悍,很多时候可以不需要编程。
正则匹配技巧,find函数使用
了解编程技巧 ()[]{} $$ 等符合如何使用,技巧有哪些,加快你数据处理能力(建议看shell 13问)
翻译成生物信息学语言就是:要深度组合这些命令,并且通过shell脚本,把它们在实际生物信息学数据处理中应用起来,需要很多的实践操作,可以借鉴EMBOSS软件套件,fastx-toolkit等基础软件,实现并且模仿该软件的功能。
尤其是SMS2/exonerate/里面的一些常见功能,还有DNA2.0 Bioinformatics Toolbox的一些工具。
不懂的名词,感觉谷歌搜索,多记笔记。
基本上要了解到这里才能勉强算是一个合格的生物信息学工程师。

三是高级运维技巧

w/last/top/qsub/condor/apache/socket/IO/ps/who/uid/
磁盘挂载/格式化/重启系统/文件清理/IP查看/网络管理/用户管理/目录结构了解/计划任务
各种库文件了解。
这个强烈建议初学者不要过于纠结,稍微了解为佳。
不懂的名词,赶紧谷歌搜索,多记笔记。
学习linux基础知识的同时,就可以开始项目实战,在实战的过程中要随时思考记录如何应用linux知识辅助生物信息数据处理?
并整理学习笔记以及经验分享。
十一 05

在linux系统里面安装matlab运行环境mcr

matlab毕竟是收费软件,而且是有界面的。所以搞生物信息的都用R和linux替代了,但是很多高大上的单位,比如大名鼎鼎的broadinstitute,是用matlab的,所以他们开发的程序也会以matlab代码的形式发布。但是考虑到大多研究者用不起matlab,或者不会用,所以就用linux系统里面安装matlab运行环境来解决这个问题,我们仍然可以把人家写的matlab程序,在linux命令行下面,当做一个脚本来运行!

比如,这次我就需要用broadinstitute的一个软件:Mutsig,找cancer driver gene的,http://www.broadinstitute.org/cancer/cga/mutsig_run,但是我看了说明才发现,它是用matlab写的,所以我要想在我的服务器用,就必须按照安装matlab运行环境,在官网可以下载:http://www.mathworks.com/products/compiler/mcr/

Capture3

我这里选择的是R2013a (8.1),下载之后解压是这样的,压缩包约四百多M

Capture1

然后直接在解压后的目录里面运行那个install即可,然后如果你的linux可以传送图像,那么就会想安装windows软件一样方便!如果你的linux是纯粹的命令行,那么,就需要一步步的命令行交互,选择安装地址,等等来安装了。

记住你安装之后,会显示一些环境变量给你,请千万要记住,然后自己去修改自己的环境变量,如果你忘记了,就需要搜索来解决环境变量的问题啦!安装之后是这样的:

Capture2

请记住你的安装目录,以后你运行其它matlab相关的程序,都需要把这个安装目录,当做一个参数传给你的其它程序的!!!

如果你没有设置环境变量,就会出各种各样的错误,用下面这个脚本可以设置

其中MCRROOT一般是$path/biosoft/matlab_running/v81/ 这样的东西,请务必注意,LD_LIBRARY_PATH非常重要,非常重要,非常重要!!!!

MCRROOT=$1
echo ---
LD_LIBRARY_PATH=.:${MCRROOT}/runtime/glnxa64 ;
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRROOT}/bin/glnxa64 ;
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRROOT}/sys/os/glnxa64;
MCRJRE=${MCRROOT}/sys/java/jre/glnxa64/jre/lib/amd64 ;
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRJRE}/native_threads ;
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRJRE}/server ;
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRJRE}/client ;
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${MCRJRE} ;
XAPPLRESDIR=${MCRROOT}/X11/app-defaults ;
export LD_LIBRARY_PATH;
export XAPPLRESDIR;
echo LD_LIBRARY_PATH is ${LD_LIBRARY_PATH};

如果你没有设置正确,那么会报一下的错误!

error while loading shared libraries: libmwmclmcrrt.so.8.1: cannot o pen shared object file: No such file or directory

error while loading shared libraries: libmwlaunchermain.so: cannot o pen shared object file: No such file or directory

等等!!!

 

16

推荐linux学习博客-每日一linux命令

竹子-博客(.NET/Java/Linux/架构/管理/敏捷)

思索、感悟、践行!走向高效,快乐,平衡!

http://www.cnblogs.com/peida/tag/%E6%AF%8F%E6%97%A5%E4%B8%80linux%E5%91%BD%E4%BB%A4/default.html?page=1

已下目录是本人用爬虫爬取的!

每天一个linux命令(61):wget命令

每天一个linux命令(60):scp命令

每天一个linux命令(59):rcp命令

每天一个linux命令(58):telnet命令

每天一个linux命令(57):ss命令

每天一个linux命令(56):netstat命令

每天一个linux命令(55):traceroute命令

每天一个linux命令(54):ping命令

每天一个linux命令(53):route命令

每天一个linux命令(52):ifconfig命令

每天一个linux命令(51):lsof命令

每天一个linux命令(50):crontab命令

每天一个linux命令(49):at命令

每天一个linux命令(48):watch命令

每天一个linux命令(47):iostat命令

每天一个linux命令(46):vmstat命令

每天一个linux命令(45):free 命令

每天一个linux命令(44):top命令

每天一个linux命令(43):killall命令

每天一个linux命令(42):kill命令

每天一个linux命令(41):ps命令

每天一个linux命令(40):wc命令

每天一个linux命令(39):grep 命令

每天一个linux命令(38):cal 命令

每天一个linux命令(37):date命令

每天一个linux命令(36):diff 命令

每天一个linux命令(35):ln 命令

每天一个linux命令(34):du 命令

每天一个linux命令(33):df 命令

每天一个linux命令(32):gzip命令

每天一个linux命令(31): /etc/group文件详解

每天一个linux命令(30): chown命令

每天一个linux命令(29):chgrp命令

每天一个linux命令(28):tar命令

每天一个linux命令(27):linux chmod命令

每天一个linux命令(26):用SecureCRT来上传和下载文件

每天一个linux命令(25):linux文件属性详解

每天一个linux命令(24):Linux文件类型与扩展名

每天一个linux命令(23):Linux 目录结构

每天一个linux命令(22):find 命令的参数详解

每天一个linux命令(21):find命令之xargs

每天一个linux命令(20):find命令之exec

每天一个linux命令(19):find 命令概览

每天一个linux命令(18):locate 命令

每天一个linux命令(17):whereis 命令

每天一个linux命令(16):which命令

每天一个linux命令(15):tail 命令

每天一个linux命令(14):head 命令

每天一个linux命令(13):less 命令

每天一个linux命令(12):more命令

每天一个linux命令(11):nl命令

每天一个linux命令(10):cat 命令

每天一个linux命令(9):touch 命令

每天一个linux命令(8):cp 命令

每天一个linux命令(7):mv命令

每天一个linux命令(6):rmdir 命令

每天一个linux命令(5):rm 命令

每天一个linux命令(4):mkdir命令

每天一个linux命令(3):pwd命令

每天一个linux命令(2):cd命令

每天一个linux命令(1):ls命令

 

22

WordPress博客统计文章阅读次数及访客数并刷访问数

需要插件和自己修改主题下面的foot.php代码。

参考 http://jingyan.baidu.com/article/ae97a646ce37c2bbfd461d01.html

步骤如下:

1、登陆到wp后台,鼠标移动到左侧菜单的“插件”链接上,会弹出子菜单,点击子菜单的“安装插件”链接

2、WP-PostViews插件显示wordpress文章点击浏览量

在“安装插件”链接页面的搜索框中输入“WP-PostViews”,然后回车

3、WP-PostViews插件显示wordpress文章点击浏览量

在搜索结果页面点击“WP-PostViews”插件内容区域的“现在安装”按钮

4、WP-PostViews插件显示wordpress文章点击浏览量

程序自动下载插件到服务器并解压安装,一直等到安装成功信息出现,然后在安装成功提示页面点击“启动插件”链接。

5、WP-PostViews插件显示wordpress文章点击浏览量

页面会自动跳转到“已安装插件”页面,在已安装插件列表中我们可以看到“Form Manager”插件已经处于启用状态(插件名下是“停用”链接)。

Wordpress博客统计文章阅读次数及访客数并刷访问数599

有了这个插件之后,我们的整个网页环境里面就多了一个 the_views()函数,它统计着每个文章的点击数,这样我们之前的网页就能显示点击数了。

Wordpress博客统计文章阅读次数及访客数并刷访问数673

这个是我现在用的主题的php代码,把文章用span标记隔开了,而且显示着上面php代码里面的每一个内容包括日期,分类,标签,评论等等

Wordpress博客统计文章阅读次数及访客数并刷访问数742

其中thez-view()这个函数返回的不仅仅是一个访客数,但是我的文章的访客都太少了,所以我写了一个脚本帮我刷一刷流量。

[perl]

use List::MoreUtils qw(uniq);

$page='http://www.bio-info-trainee.com/?paged=';

foreach (1..5){   #我的文章比较少,就42个,所以只有5个页面

$url_page=$page.$_;

$tmp=`curl $url_page`;

#@p=$tmp=~/p=(\d+)/;

$tmp =~ s/(p=\d+)/push @p, $1/eg; #寻找p=数字这样的标签组合成新的网页地址

}

@p=uniq @p;

print "$_\n" foreach @p; #可以找到所有42个网页的地址

foreach (@p){

$new_url='http://www.bio-info-trainee.com/?'.$_;

`curl $new_url` foreach (1..100); #每个网页刷一百次

}

[/perl]

大家可以看到这个网页被刷的过程,从15到21到27直到100
Wordpress博客统计文章阅读次数及访客数并刷访问数1231

大家现在再去看我的网页,就每个文章都有一百的访问量啦!

http://www.bio-info-trainee.com/

 

21

Linux服务器基础知识

想了想,既然是菜鸟教程,那就索性再介绍点更基础的东西,基本上只要是大学毕业的都能看懂,不需要懂计算机了。首先讲讲linux服务器吧,因为生物信息也算是半个大数据分析,所以我们平常的办公电脑一般都是不能满足需求的,大部分实验室及公司都会自己配置好服务器给菜鸟们用,菜鸟们首先要拿到服务器的IP和高手给你的用户名和密码。

一般我们讲服务器,大多是linux系统,而我这里所讲的linux系统呢,特指ubuntu,其余的我懒得管了,大家也不要耗费无谓的时间纠结那些名词的不同!

登录到服务器有两种方法,一种是ssh,传输你的命令给服务器执行,另一种是ftp,和服务器交换文件。而ssh我们通常用putty,xshell等等。ftp呢,我们可以用winscp,xshell,所以我一直都用xshell,因为它两者都能搞定!

Xshell软件自行搜索下载,打开之后新建一个连接,然后登陆即可。

Linux服务器基础知识405

然后输入以下命令,可以查看服务器配置,包括cpu。内存,还有硬盘

cat /proc/cpuinfo |grep pro|wc -l

free -g

df -h

Linux服务器基础知识488

 

这个服务器配置好一点,有80个cpu,内存256G,硬盘有2个11T的,是比较成熟的配置。

Linux服务器基础知识536

 

这个是一个小型服务器。也就24个核,64G的内存,但是存储量有点小呀,其实可以随便花几百块钱买个1T的硬盘挂载上去的。

然后linux的其它命令大家就得自己去搜索一个个使用,然后熟悉,记牢,然后创新啦!

我随便敲几个我常用的吧: ls cd mkdir rm cp cat head tail more less diff grep awk sed grep perl 等等!

呀,突然间发现我才介绍了ssh的方法登陆服务器并且发送命令在服务器上面运行,下面贴图如何传输文件。一般xshell的菜单里面有绿的文件夹形式的标签就是打开ftp文件传输,这种可视化的软件,大家慢慢摸索吧!

Linux服务器基础知识830

 

 

 

 

19

Linux基础之shell脚本的批处理

脚本类似于下面的样子,大家可以读懂之后就仿写

for i in *sra

do

echo $i

/home/jmzeng/bio-soft/sratoolkit.2.3.5-2-ubuntu64/bin/fastq-dump --split-3 $i

Done

这个脚本是把当前目录下所有的NCBI下载的sra文件都加压开来成测序fastq格式文件

有这些数据,分布在不同的目录,如果是写命令一个个文件处理,很麻烦,如果有几百个那就更麻烦了,所以需要用shell脚本

Linux基础之shell脚本的批处理254

这样只需要bash这个脚本即可一次性处理所有的数据

Linux基础之shell脚本的批处理282

还有很多类似的脚本,非常简单的

for i in *fq

do

echo $i

bowtie2 -p 13 -x ../../RNA.fa -U $i -S  $i.sam

done

 

for i in */accepted_hits.bam

do

echo $i

out=`echo $i |cut -d'/' -f 1`_clout

samtools mpileup -guSDf  /home/immune/refer_genome/hg19/hg19.fa $i  | bcftools view -cvNg - >snp-vcf/$out.vcf

done

 

 

while read id

do

echo $id

out=`echo $id |cut -d'/' -f 2`

reads=`echo $id |cut -d'/' -f 3|sed 's/\r//g'`

tophat2 -p 13 -o $out /home/immune/refer_genome/hg19/hg19 $reads

done <$1

 

等等

18

查某个基因家族在某物种的具体信息

查某个基因家族在某物种的具体信息

我很伤心,不知道是不是我写的教程还是不够人性化,一个朋友在群里面问如何知道NAC基因家族在拟南芥里面的105个基因信息,我随便给他示范了一下在人类里面如何找,希望他能触类旁通,结果他不会linux,啥生信基础都没有,我只会诱导他简单学习一下,希望他至少明白什么的taxid。所以我给了他我之前写的教程,只希望他告诉我拟南芥的taxid我就帮他把那105个基因找出来。 Continue reading