针对生物信息学分析的...

34
针对生物信息学分析的 Linux系统使用介绍 [email protected] http://shenwei.me

Upload: others

Post on 10-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

针对生物信息学分析的

Linux系统使用介绍

沈 伟

[email protected]

http://shenwei.me

Page 2: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

提 纲

• Linux介绍

– 介绍

– 安装与配置建议

• 常用Shell命令

– Shell介绍

– 文件管理(cd, ls, mkdir, rm, ln, glob)

– 文本文件处理(vim, cat, more, sed, awk, cut, grep)

– 压缩文件(tar, gzip, unzip)

– IO (stdin, stdout, pipe)

– 系统状态查看(top, free)

– 危险操作(rm,覆盖)

– 效率提高(for, parallel, xargs)

– 任务提交(screen, easy_qsub)

– 实例(表格文件,交集并集,fasta/q文件)

• 常见软件安装方法

– 环境变量配置

– 源码安装,预编译安装,Python,Perl类软件包安装

– 代理设置

Page 3: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

Linux操作系统

• 应用广泛

– 嵌入设备、个人电脑,超级计算机

• 特点

– 低成本

– 稳定,高效

– 多用户

– 支持广泛

• 生物信息领域

– 大多软件运行在Linux系统

Page 4: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

Linux操作系统

• 常见发行版

– Debian/Ubuntu/Linux Mint

– RHEL/Centos/fedora

– OpenSUSE

• 常见桌面环境

– GNOME/Cinnamon/Mate/Unity

– KDE

Page 5: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

准备

• 能通过SSH客户端连接Linux操作系统

– 不限发行版/桌面环境

– 不限运行环境(服务器/PC/虚拟机)

– 不限有无ROOT权限

Page 6: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

安装与配置建议

• 初学者在Windows系统安装虚拟机(VirtualBox)

• 安装分区

– /

– /boot

– swap

– /usr/local

– /home

• 配置建议

– 软件安装于home中,修改私有环境变量

Page 7: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

常用Shell命令

Page 8: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

Shell介绍

• Shell

– Unix/Linux操作系统下用户和计算机的交互界面

– 控制系统的脚本语言(bash,csh…)

• 获取Shell命令的使用说明

– 官方文档

– man COMMAND

– COMMAND -h/-help/--help

Page 9: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

Shell快捷键

• Tab补全命令

• 光标键向上、向下 翻阅历史命令

• Ctrl+R 搜索历史命令

• Ctrl+A 光标移动到命令开头

• Ctrl+E 光标移动到命令结尾

• Ctrl+U 清空光标前输入命令

• Ctrl+C 取消当前任务

Page 10: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

文件属性

http://vbird.dic.ksu.edu.tw/linux_basic/0210filepermission.php

严格的权限控制

Page 11: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

文件/目录操作

• 查看目录ls –lha

• 改变目录 cd dir, cd -, cd ~

• 创建文件(touch)/目录(mkdir)

– mkdir -p level1/devel2

– mkdir dir{a,b,c}

• 软连接(快捷方式)

– ln –s /file/path [name]

– rm name

• 删除文件/目录 rm file, rm -rf dir

• 复制文件/目录 cp [-r] file targetdir

• 移动/重命名 文件/目录 mv file newfile

• 目录大小 du -lh dir

Page 12: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

通配符

• 假设一个文件夹

a1.txt a4.txt ac1.txt b.txt.gz

• * 匹配 0 或多个字符

ls *.txt : a1.txt a4.txt ac1.txt

• ? 有且只有一个字符

ls a?.txt : a1.txt a4.txt

• [abc]/[!abc]/[0-9]/[a-z]

• {abc,123,asf}

Page 13: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

文本文件处理

• 编辑 vim/nano

• 查看

– cat / more / head -n 10 / tail -n 10

• sed, sed简明教程

– sed 's/abc/123/g' data.txt > file2

– sed 1d table > table_without_title

• awk, awk简明教程

– awk '$3==0 && $6==―LISTEN‖ ' file

– awk -F: '{print $1,$3,$6}' OFS="\t"

/etc/passwd

• grep -c '^>' seq.fa

• wc -l

Page 14: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

压缩文件

• 解压

– tar -zxvf test.tar.gz

– unzip test.zip

– gzip -d test.gz

• 压缩/打包

– tar -zcvf test.tar.gz dir

– zip -r dir test.gzip

– gzip -c test > test.gz

• 只打包不压缩

– zip -r -0 test.zip test

Page 15: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

IO与pipe

• 标准stdin, stdout, stderr

• 重定向

– cat < file

– cat file > newfile

– cat file >> newfile

• 管道(流水线)

– zcat seq.fa.gz | grep -c '^>'

• 命名管道(减少磁盘IO,更快)

– gzip –d *.gz; cat 1 2 > outputfile

– cat <(zcat 1.gz) <(zcat 2.gz) > outputfile

• 命名管道2(某些程序需要操作文件路径)

– mkfifo seq.fa

– zcat seq.fa.gz > seq.fa &

– command seq.fa

Page 16: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

系统状态

• 任务管理top/htop

• 进程查看ps au,结束进程kill PID

• 内存状态free -g

• 分区状态df -lh

Page 18: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

提高效率

• for

for f in *.fa; do script.pl $f; done

• xargs - build and execute command lines from standard input

find . -name "*.o" | xargs rm -rf

• parallel - build and execute shell command lines from standard input in parallel

ls *.fa | parallel -j 8 'cat {} | grep -c

"^>" > {.}.num '

• crun - Run workflow

crun -t 4 -s job1 -c job2 -c job3 -c job4

-s job5 -s job6

Page 19: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

提交任务

• 后台运行,more

– screen -dmS job; screen -r job

– # do some thing

– ctrl+a+d

• qsub/qstat/qdel/qalter

– easy_qsub

easy_qsub -n 8 -m 2GB 'mkdir -p

QC/{%^.fq.gz}.fastqc; zcat {} | fastqc -o

QC/{%^.fq.gz}.fastqc stdin' *.fq.gz

Page 20: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

交集/并集/差集/重复

• 并集,重复的只保留一份记录

– cat a b | sort | uniq

• 交集,只留下同时存在于两个文件中的记录

– cat a b | sort | uniq -d

• 删除交集,留下其他

– cat a b | sort | uniq -u

• 差集(a中有,b中没有)

– Grep –F –f b a

– grep -F -f b -v a

Page 21: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

例子 - 表格文件

• 按年龄从大到小,再按照姓名排序

– sed 1d staff | sort -k4,4nr -k2,2

• 按浮点数排序

– sed 1d staff | sort -k5,5g

• 筛选年龄大于20的人

– cat staff | sed 1d | awk '$4>20' | cut -f 2

• 合并两个表(csvkit)

– csvjoin -t -c name staff passwd

• 查询

Page 22: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

根据id过滤表格

用id2来查询

Page 24: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

Fasta/q文件操作

• fasta_extract_by_pattern.pl

Page 25: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

软件安装

Page 26: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

可执行程序

• 文件权限

– 具有可执行权限的文件

• 路径 which

• 依赖

– 动态编译程序依赖于动态库

Page 27: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

环境变量配置

• 配置文件

– ~/.bashrc, ~/.profile, /etc/bashrc,

/etc/profile

• 环境变量

– export PATH=~/local/bin:$PATH(可执行程序搜索目录)

– export

LD_LIBRARY_PATH=~/local/lib:$LD_LIBRARY_PAT

H

• 别名alias

– export ll='ls -lh –color=auto'

• 生效配置

– source ~/.bashrc

Page 29: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

软件安装(2) - 源码安装(C/C++)

• 编译器安装

– sudo apt-get install build-essential

– sudo yum groupinstall "Development tools"

• 三部曲

1. configure, 根据提示安装缺失的库(下页)

2. make

3. make install

• 例(samtools)

– wget https://github.com/samtools/samtools/releases/download/1.2/samtools-1.2.tar.bz2

– tar –jxvf samtools-1.2.tar.bz2

– cd samtools-1.2

– make –j 4

– cp samtools ~/local/bin

谨遵INSTALL/README

Page 30: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

软件安装(2) – lib not found

• 有root权限 – apt-get/yum 安装 ***-devel包

– [运行sudo ldconfig]

• 无root权限, more 1. 源码安装库

2. 将其lib目录加入环境变量LD_LIBRARY_PATH

3. include目录加入C_INCLUDE_PATH和CPLUS_INCLUDE_PATH

• 例(libevent) 1. wget

https://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz

2. tar -zxvf libevent-2.0.22-stable.tar.gz

3. cd libevent-2.0.22-stable

4. ./configure --prefix=/home/shenwei/local/

5. make

6. make install

7. echo "export LD_LIBRARY_PATH =/home/shenwei/local/lib:\$ LD_LIBRARY_PATH " >> ~/.bashrc

8. echo "export C_INCLUDE_PATH =/home/shenwei/local/include:\$ C_INCLUDE_PATH " >> ~/.bashrc

9. echo "export CPLUS_INCLUDE_PATH =/home/shenwei/local/include:\$ CPLUS_INCLUDE_PATH " >> ~/.bashrc

10. source ~/.bashrc

Page 31: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

软件安装(3) - Python

• 安装pip

– pip install app

• Python程序,detail

1. python setup.py [--prefix] [--user]

2. make

3. make install

Page 32: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

软件安装(4) - Perl

• 下载

– 运行,查看是否有错误提示

• Can't locate abc.pm in @INC (you may need to

install the abc module) (@INC contains:

/usr/local/lib64/perl5 /usr/local/share/perl5

/usr/lib64/perl5/vendor_perl

/usr/share/perl5/vendor_perl /usr/lib64/perl5

/usr/share/perl5 .).

• BEGIN failed--compilation aborted.

• cpan安装缺失的包

1. cpan

2. 第一次需根据提示配置,

3. search.cpan.org或i /bioperl/搜索

4. install BioUtil

Page 33: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

代理设置

• user

– vim ~/.bashrc

– export http_proxy=http://192.168.1.101:808

– export ftp_proxy=http://192.168.1.101:2121

• apt-get

– vim /etc/apt/apt.conf.d/00aptitude

– Acquire::http::proxy "http://192.168.1.101:808";

– Acquire::ftp::proxy "ftp://192.168.1.101:2121";

• yum

– sudo vim /etc/yum.conf

– proxy=http://192.168.1.101:808

• cpan

– cpan

– o conf init /proxy/

• Linux configuration memo

Page 34: 针对生物信息学分析的 Linux系统使用介绍blog.shenwei.me/pdf/linux-intro-for-bioinformatics.pdf软件安装(2) - 源码安装(C/C++) • 编译器安装 –sudo apt-get

结束语

• 多Google,多实践

• 感谢Bioinformatcis*中国的群友