软件安装及 bowtie 的使用
查看磁盘空间
df -hl
软件类型
一般来说,下载的linux 软件分成两类,1)二进制软件;2)源码软件。
二进制软件
一般来说,二进制软件已经是预编译的版本了,这类软件对新手非常的友好,也是最方便的,解压就可以直接使用了。(zip, gz, bzip2等等压缩类型)
源码软件
相比起二进制软件,这类软件是作者直接分享了它们的源代码,因此我们需要将它们通过编译器编译它们,从而让计算机读懂它们。
一般来说有三个步骤。
1)配置;2)编译;3)安装。
1)配置
配置部分一般的代码为
./configure --prefix= 安装路径
这个安装路径是用于指定软件编译后的可执行文件所放的目录,而默认的路径需要有root权限。
2)编译
一般通过make 命令对文件进行编译,但经常会出现库文件的缺失,比如bwa的zlib。通常来说这也是其比较头疼的地方。
3)安装
make install,直接安装到相应目录就好啦。
用conda 做你的软件管家
和苹果的app store, 手机的软件管家一样,linux 也提供了conda(miniconda)这样一个软件中心。
我们可以在里面找到各种工具,实现快速的一键式安装,而且可以通过设定不同的环境,使各自依赖的环境相互隔离,不至于使内部安装环境乱成一团。通过conda install
便可实现各种软件的安装。
安装第一个软件
创建并进入文件夹
mkdir bowtie2 && cd bowtie2
版本
软件安装提供了各种版本,因此需要注意合适的版本选择。
下载
可以使用wget
下载
首先进入安装目录下
mkdir xxx && cd xxx
接着安装,直接找到文件的下载地址通过wget
下载即可。
wget 下载地址
通过ftp 上传文件到服务器
由于我通过wget
方式文件下载速度过于感人,我选择先将它下载至电脑上,再上传到服务器中。
- 通过ftp 连接
sftp root@your_sever_id
- 登陆完成后,通过put 上传
put local-file [remote-file]
更多内容参考
https://blog.csdn.net/q1596948728/article/details/23859879
通过FileZilla 连接远程服务器
FileZilla是一个FTP 连接服务器的软件,提供linux、mac、win 等各个平台
https://filezilla-project.org/
注意一般服务器只提供SFTP 的连接方式。
设定好服务器公网ID,连接,输入用户密码就可以登录了。
你可以直接直接将本地服务器的内容拖拽进去。
解压与使用
https://sourceforge.net/projects/bowtie-bio/files/bowtie2/2.2.9/bowtie2-2.2.9-linux-x86_64.zip
我是通过filezilla 下载了bowtie(一个短序列比对工具),并将它存放在了biosofts/bowtie2目录下。
先来解压
下载的文件是bowtie2-2.2.9-linux-x86_64.zip,直接用unzip 就好。
unzip bowtie2-2.2.9-linux-x86_64.zip
查看文件文档
可以看到,bowtie2 文件用绿色标记出来了,这表示它是一个可执行文件,因此我们可以通过输入绝对路径的方式调用它(没有添加环境),通过调用,我们可以看到bowtie2 的使用说明。
/root/biosofts/bowtie2/bowtie2-2.2.9/bowtie2 # 我的路径
阅读帮助文件,发现有许许多多的参数。
使用文件
- 你可以参考我的环境与路径笔记,设置相关的调用文件的参数
https://www.jianshu.com/p/36b28cd9ad8e
查看范例文件
一般来说文件里会附带一个example,可以作为练习。
果不其然
可以查看一些文件的大小等信息
其中可以先查看其中一个reads 文件。
$less reads/reads_1.fq
通过less 可以上下滚动阅读文本。
我截取其中一个序列。至于如何解读fastq 文件,你可以参考我的笔记,
https://www.yuque.com/mugpeng/nwmnq7/ug9fg8#36bd89cf
@r1
CCAGCCGGACTTCAGGCCTGCCATCCAGTTCCCGCGAAGCTGGTCTTCAGCCGCCCAGGTCTTTTTCTGCTCTGACACGACGTTATTCAGCGCCAGCGGATTATCGCCATACTGTTCCTTCAGGCGCTGTTCCGTGGCTTCCCGTTCTGCCTGCCGGTCAGTCAGCCCCCGGCTTTTCGCATCAATGGCGGCCC
+
7%&%E,3@->*/4>0):4)17/4A=H<3!72"$97HDB(*66B(,&$+41&A,8+=,7/216,C=2#B6!>)"?&D44/6+@))30A91BA&=@(%0&-E.1-=959!B,",,#FA94,7.B+-)2@5H;6E**#EA&;"3F920A>1:<:8F-1.<A4.-/HE$02%1>;0HA6.*@(=37<:.E93+;52+8
bowtie 的使用规范
首先可以看看版本和帮助界面。
bowtie2 --help ## 帮助文件,且我已经设定了bowtie 的alias。
bowtie2 --version ## 查看版本。
bowtie2 是一个用于短序列比对的工具。
http://bowtie-bio.sourceforge.net/index.shtml
Usage:
bowtie2 [options]* -x <bt2-idx> {-1 <m1> -2 <m2> | -U <r>} [-S <sam>]
<bt2-idx> Index filename prefix (minus trailing .X.bt2).
NOTE: Bowtie 1 and Bowtie 2 indexes are not compatible.
<m1> Files with #1 mates, paired with files in <m2>.
Could be gzip'ed (extension: .gz) or bzip2'ed (extension: .bz2).
<m2> Files with #2 mates, paired with files in <m1>.
Could be gzip'ed (extension: .gz) or bzip2'ed (extension: .bz2).
<r> Files with unpaired reads.
Could be gzip'ed (extension: .gz) or bzip2'ed (extension: .bz2).
<sam> File for SAM output (default: stdout)
<m1>, <m2>, <r> can be comma-separated lists (no whitespace) and can be
specified many times. E.g. '-U file1.fq,file2.fq -U file3.fq'.
Options (defaults in parentheses):
Input:
-q query input files are FASTQ .fq/.fastq (default)
--qseq query input files are in Illumina's qseq format
-f query input files are (multi-)FASTA .fa/.mfa
-r query input files are raw one-sequence-per-line
-c <m1>, <m2>, <r> are sequences themselves, not files
-s/--skip <int> skip the first <int> reads/pairs in the input (none)
-u/--upto <int> stop after first <int> reads/pairs (no limit)
-5/--trim5 <int> trim <int> bases from 5'/left end of reads (0)
-3/--trim3 <int> trim <int> bases from 3'/right end of reads (0)
--phred33 qualities are Phred+33 (default)
--phred64 qualities are Phred+64
--int-quals qualities encoded as space-delimited integers
使用bowtie2构建索引
$bowtie2-build reference/lambda_virus.fa temp
我们可以通过md5sum
比较一下生成的index 和默认的index 的文件差距。
md5sum
是一套linux 下的算法,可以被用来验证网络文件传输的完整性,防止被他们篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5)。
$md5sum index/lambda_virus.1.bt2
9c033d93b13e5106347b4d39ccf33af8 index/lambda_virus.1.bt2
$md5sum temp.1.bt2
9160769174cc604412693aff33b76f88 temp.1.bt2
其实二者还是有区别的。
进行序列比对
完成索引的构建后,便可以按照usage 的方式进行序列比对。
$bowtie2 -x temp -1 reads/reads_1.fq -2 reads/reads_2.fq -S temp.sam
查看比对结果
less -S temp.sam
ps: 我也不懂各个参数的意义,留给未来吧!