生信实战分析中常用的Linux命令(一)

写在开头:我曾经跟过各种视频教程详细学习Linux的系统使用,各位老师讲解得也非常详细,但很多内容对于我一个初学者来说非常晦涩难懂,并且很多实际的测序数据分析过程也用不到。我的此次分享主要是讲解生信分析实战过程中常用的Linux操作。

我们以bulk转录组为例

首先我们拿到了公司返回的测序fastq文件,如C1_R1.fq.gz,需要建立一个文件夹(也叫目录)来存放本次分析所用到数据、得到的结果

mkdir RNA-seq
mkdir fastq 
#或者加上-p参数,可以实现创建连续多层级的目录
mkdir -p RNA-seq/fastq
#创建成功后使用ls命令查看目录下的所有文件夹和文件,-l用于显示该目录中的文件和文件夹的详细列表。
ls -l 
#如果目录创建错误,使用rm命令删除,其中-r参数是向下递归 删除RNA-seq目录及其下所有文件夹和文件,如果只删除文件不用加上-r,-f是直接强行删除,无任何提示,慎用。
rm -rf RNA-seq

#注意无论是删除目录还是文件,都需要进入到它的上级目录下才能成功删除,用cd命令切换路径
cd /home/RNA-seq/ 
#目前是处于home目录下的RNA-seq目录,需要返回到home目录下,再删除RNA-seq目录下的所有内容。其中第一个/是根目录,是Linux系统中所有目录和文件的起始点
cd /home/ #可以写绝对路径
cd ../ #也可以使用相对路径,../是返回上一级目录,./是当前目录

接下来
需要安装用于分析的包。首选使用conda,Conda是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。可以避免包的版本冲突,可以快速安装、运行和更新软件包及其依赖项。避免由于包的依赖包未安装导致包不能使用。
其次对于不能使用conda下载的安装包或者网站上的文件等,使用wget命令,wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。

#首先去清华镜像源去下载conda (https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/),-c是可以继续中断的下载
wget –c https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2022.10-Linux-x86_64.sh
#更改文件的权限
chmod 777 Anaconda3-2022.10-Linux-x86_64.sh

linux下的文件的权限包括可读(r=4),可写(w=2),可执行(x=1)。图中就是ls -l命令输出的详细信息,第1列就是文件夹(d)或文件(-)调用的权限,调用权限分为三级 : 文件所有者(Owner)、同组用户(Group)、其它用户(Other Users),每一级都有r w x三种权限。第2列是链接数,表示有多少不同的文件名指向同一个节点。第3列是文件或目录的所有者的用户名。第4列是文件或目录的所属的组名。第5列是文件的大小(以字节为单位)。第6列是最后修改时间。第7列是文件或目录的名称。

ls -l命令
文件权限.png
#运行安装,刚刚下载的文件是一个安装脚本(.sh)
bash Anaconda3-2022.10-Linux-x86_64.sh

安装完成后,选择 yes,自动初始化 Anaconda3 环境


conda安装

退出终端,重新登录,可以看到用户名前出现 (base) 提示,说明已经成功激活 Anaconda 环境


成功安装
#为了保证各种版本的包之间有兼容性,conda 环境管理器允许用户创建多个隔离环境,通过虚拟环境实现。
#列出conda下的环境
conda env list
#创建名为bulk_RNA-seq的新环境,并在该环境下安装名python 3.10版本
conda create -n bulk_RNA-seq python=3.10
#激活该环境
conda activate bulk_RNA-seq
#退出该环境
conda deactivate
#删除环境
conda remove --name bulk_RNA-seq
#删除特定环境下的安装包
conda remove -name bulk_RNA-seq python=3.10
#channels是conda下载包的镜像网站,在安装包的时候,conda会依次查找各个channnels,直到某个channel中包含所需的packages
#查看通道 默认最近添加的通道为最高优先级
conda config --get channels 
#添加通道,如使用清华镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
#删除通道
conda config --remove channels channel_name
#编辑.condarc文件改变通道优先级, 排序越靠前,优先级越高,
#vi是文件编辑器,i:切换到插入模式,在光标位置插入文本。Esc:从任何模式返回到正常模式。:w:保存文件。:q:退出编辑器。:wq:保存文件并退出。:q!:不保存更改强制退出。
vi ~/.condarc
#conda安装包,在浏览器搜索包名+conda,进入anaconda.org网站,其中可以找到安装该包的安装命令
conda install bioconda::fastqc
#如果要安装旧的版本方法:先看看有哪些可以安装的版本 
conda search fastqc
#安装指定版本的软件
conda install fastqc=0.11.7

.condarc文件

在实际应用中,conda安装包的速度还是很慢,有时候由于源不合适找不到包,无法成功安装。因此出现了mamba,它是 Conda 的一个替代品,Mamba 与 Conda 使用相同的命令行语法,可以作为 Conda 的直接替换。Mamba 在解析包依赖和安装过程中使用了 C++ 实现的 libsolv 库,而 Conda 使用的是 Python,运行效率显著提高,可以进行并行的下载,使用管理工具中的 libsolv,可以更快的解决环境依赖问题。
mamba 的使用也比较简单,首先使用 conda 安装 mamba,后面所有用到 conda 的地方,
都可以使用 mamba 替换即可

#切换到base 环境中进行使用,确保我们确实是在base 环境中
conda activate base 
conda update conda
#依据其他教程,安装并设置 libmamba 求解器,ibmamba 求解器比默认的 conda 求解器快得多,尤其是在处理大规模依赖关系时。切换到 libmamba 可以显著提升包管理的性能和速度。
conda install conda-libmamba-solver
conda config --set solver libmamba
#安装,装在base 环境中的包在所有的小环境中依然可以调用,因此装在base环境中之后不需要再每个环境中再重新安装一遍。
conda install conda-forge::mamba

但是我用conda下载mamba总是停在solving environment这一步,于是我直接在github上下载安装包(Release Release 24.3.0-0 · conda-forge/miniforge · GitHub),直接bash Mambaforge-Linux-x86_64,即可安装成功,成功替代conda,以后运行conda命令时直接将conda换为mamba。

我可以使用mamba成功安装大部分包,同时安装速度极大提升。但需要注意的是在安装部分包时,可能会出现RuntimeError: Multi-download failed
这说明源可能已经不可用,例如清华的 conda 镜像源已经废弃,需要去掉有问题的源,或者是修改成可以使用的不会报错的镜像源。使用mamba安装一般不需要自己添加一些镜像源,用conda自带的即可。

vi ~/.condarc
#修改成
channels:
  - bioconda
  - conda-forge
  - defaults
show_channel_urls: true
channel_priority: flexible

或者使用wget命令直接下载工具包的压缩文件tar.gz

wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/3.1.1/sratoolkit.3.1.1-centos_linux64.tar.gz
#tar是压缩/解压缩的命令,-x解压缩,-c建立压缩,-z:gzip文件,-v :显示所有过程,-f :使用档名,在 f 之后要立即接文档名!不要再加参数!
tar zxvf sratoolkit.3.1.1-centos_linux64.tar.gz
#在.bashrc文件中加入环境路径
vi ~/.bashrc
export PATH="/home/.../software/sratoolkit.3.1.1-centos_linux64/bin:$PATH"
#输入自己的文件路径,保存并退出
source ~/.bashrc
#接下来就可以成功使用工具了

接下来将使用安装的包进行分析了。

有些命令可能需要耗时几个小时,如果不慎电脑休眠,联网失败,命令可能就停止运行了。这时候如果把命令放在后台,即使终端关闭命令也会在后台运行,使用到的命令是nohup &

#nohup 命令 & 它会输出一个nohuo.out文件,是该命令的运行日志,可以检查命令是否正确运行
nohup hisat2-build -p 4 --ss GRCm38.splice_sites.gtf --exon GRCm38.exons.gtf genome.fa genome &

对于一些文本文件(.txt、.csv等),日志文件(.log等)、脚本文件(.sh等)、代码文件(.py、.html、.php等)、配置文件(.conf等)等,可以使用命令来查看文件的内容。

#我们就以这个nohup.out为例
#查看整个文件的内容,将整个文件的内容输出到终端界面上
cat nohup.out

#分页查看文件的内容。less命令的用法与more命令类似,它可以用来随意浏览文件,且支持翻页、搜索,还支持向上翻页、向下翻页。
less nohup.out 
#less命令搜索文件内容可以通过 / 进行搜索,运行命令后按下 / 键,输入您想要搜索的内容,按下回车键。less 将会高亮显示匹配的内容,并且您可以通过按下 n 键来查看下一个匹配项,按下 N 键来查看上一个匹配项
#分页查看文件内容,more命令类似cat,不过会以一页一页的形式显示,更方便使用者逐页阅读,按Enter键就往下一页显示,按B键就会往回一页显示,按Q键会退出查看,而且还有搜寻字串的功能。
more nohup.out
#两者的不同在于:less可以按键盘上下方向键显示上下内容,而more不能通过上下方向键控制显示。less不必读整个文件,加载速度会比more更快。less退出后终端不会留下刚显示的内容,而more退出后会在终端上留下刚显示的内容。阅读到文件结束时,less不会退出,而more会。相比more,less提供更加友好的检索

#查看文件的前10行(默认)
head nohup.out
#查看文件的后5行,默认n为10
tail -n 5 nohup.out

这是比较基础的数据分析可能会用到的一些命令,因为没有结合数据进行实战,肯定会有所遗漏。我会在接下来的教程中继续补充的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容