生信實戰(zhàn)分析中常用的Linux命令(一)

寫在開頭:我曾經(jīng)跟過各種視頻教程詳細學習Linux的系統(tǒng)使用简烘,各位老師講解得也非常詳細爹梁,但很多內(nèi)容對于我一個初學者來說非橙保晦澀難懂赦颇,并且很多實際的測序數(shù)據(jù)分析過程也用不到。我的此次分享主要是講解生信分析實戰(zhàn)過程中常用的Linux操作群井。

我們以bulk轉(zhuǎn)錄組為例

首先我們拿到了公司返回的測序fastq文件,如C1_R1.fq.gz,需要建立一個文件夾(也叫目錄)來存放本次分析所用到數(shù)據(jù)晤郑、得到的結(jié)果

mkdir RNA-seq
mkdir fastq 
#或者加上-p參數(shù),可以實現(xiàn)創(chuàng)建連續(xù)多層級的目錄
mkdir -p RNA-seq/fastq
#創(chuàng)建成功后使用ls命令查看目錄下的所有文件夾和文件,-l用于顯示該目錄中的文件和文件夾的詳細列表造寝。
ls -l 
#如果目錄創(chuàng)建錯誤磕洪,使用rm命令刪除,其中-r參數(shù)是向下遞歸 刪除RNA-seq目錄及其下所有文件夾和文件诫龙,如果只刪除文件不用加上-r析显,-f是直接強行刪除,無任何提示签赃,慎用谷异。
rm -rf RNA-seq

#注意無論是刪除目錄還是文件,都需要進入到它的上級目錄下才能成功刪除锦聊,用cd命令切換路徑
cd /home/RNA-seq/ 
#目前是處于home目錄下的RNA-seq目錄歹嘹,需要返回到home目錄下,再刪除RNA-seq目錄下的所有內(nèi)容孔庭。其中第一個/是根目錄荞下,是Linux系統(tǒng)中所有目錄和文件的起始點
cd /home/ #可以寫絕對路徑
cd ../ #也可以使用相對路徑,../是返回上一級目錄史飞,./是當前目錄

接下來
需要安裝用于分析的包尖昏。首選使用conda,Conda是一個開源的軟件包管理系統(tǒng)和環(huán)境管理系統(tǒng)构资,用于安裝多個版本的軟件包及其依賴關系抽诉,并在它們之間輕松切換⊥旅啵可以避免包的版本沖突迹淌,可以快速安裝、運行和更新軟件包及其依賴項己单。避免由于包的依賴包未安裝導致包不能使用唉窃。
其次對于不能使用conda下載的安裝包或者網(wǎng)站上的文件等,使用wget命令纹笼,wget 是一個從網(wǎng)絡上自動下載文件的自由工具纹份,支持通過 HTTP、HTTPS廷痘、FTP 三個最常見的 TCP/IP協(xié)議 下載蔓涧,并可以使用 HTTP 代理。

#首先去清華鏡像源去下載conda (https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/)笋额,-c是可以繼續(xù)中斷的下載
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),可執(zhí)行(x=1)兄猩。圖中就是ls -l命令輸出的詳細信息茉盏,第1列就是文件夾(d)或文件(-)調(diào)用的權限鉴未,調(diào)用權限分為三級 : 文件所有者(Owner)、同組用戶(Group)鸠姨、其它用戶(Other Users)歼狼,每一級都有r w x三種權限。第2列是鏈接數(shù)享怀,表示有多少不同的文件名指向同一個節(jié)點羽峰。第3列是文件或目錄的所有者的用戶名。第4列是文件或目錄的所屬的組名添瓷。第5列是文件的大忻诽搿(以字節(jié)為單位)。第6列是最后修改時間鳞贷。第7列是文件或目錄的名稱坯汤。

ls -l命令
文件權限.png
#運行安裝,剛剛下載的文件是一個安裝腳本(.sh)
bash Anaconda3-2022.10-Linux-x86_64.sh

安裝完成后搀愧,選擇 yes惰聂,自動初始化 Anaconda3 環(huán)境


conda安裝

退出終端,重新登錄咱筛,可以看到用戶名前出現(xiàn) (base) 提示搓幌,說明已經(jīng)成功激活 Anaconda 環(huán)境


成功安裝
#為了保證各種版本的包之間有兼容性,conda 環(huán)境管理器允許用戶創(chuàng)建多個隔離環(huán)境迅箩,通過虛擬環(huán)境實現(xiàn)溉愁。
#列出conda下的環(huán)境
conda env list
#創(chuàng)建名為bulk_RNA-seq的新環(huán)境,并在該環(huán)境下安裝名python 3.10版本
conda create -n bulk_RNA-seq python=3.10
#激活該環(huán)境
conda activate bulk_RNA-seq
#退出該環(huán)境
conda deactivate
#刪除環(huán)境
conda remove --name bulk_RNA-seq
#刪除特定環(huán)境下的安裝包
conda remove -name bulk_RNA-seq python=3.10
#channels是conda下載包的鏡像網(wǎng)站饲趋,在安裝包的時候拐揭,conda會依次查找各個channnels,直到某個channel中包含所需的packages
#查看通道 默認最近添加的通道為最高優(yōu)先級
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文件改變通道優(yōu)先級堂污, 排序越靠前,優(yōu)先級越高龄砰,
#vi是文件編輯器盟猖,i:切換到插入模式,在光標位置插入文本寝贡。Esc:從任何模式返回到正常模式扒披。:w:保存文件值依。:q:退出編輯器圃泡。:wq:保存文件并退出。:q!:不保存更改強制退出愿险。
vi ~/.condarc
#conda安裝包颇蜡,在瀏覽器搜索包名+conda价说,進入anaconda.org網(wǎng)站,其中可以找到安裝該包的安裝命令
conda install bioconda::fastqc
#如果要安裝舊的版本方法:先看看有哪些可以安裝的版本 
conda search fastqc
#安裝指定版本的軟件
conda install fastqc=0.11.7

.condarc文件

在實際應用中风秤,conda安裝包的速度還是很慢鳖目,有時候由于源不合適找不到包,無法成功安裝缤弦。因此出現(xiàn)了mamba领迈,它是 Conda 的一個替代品,Mamba 與 Conda 使用相同的命令行語法碍沐,可以作為 Conda 的直接替換狸捅。Mamba 在解析包依賴和安裝過程中使用了 C++ 實現(xiàn)的 libsolv 庫,而 Conda 使用的是 Python累提,運行效率顯著提高尘喝,可以進行并行的下載,使用管理工具中的 libsolv斋陪,可以更快的解決環(huán)境依賴問題朽褪。
mamba 的使用也比較簡單,首先使用 conda 安裝 mamba无虚,后面所有用到 conda 的地方缔赠,
都可以使用 mamba 替換即可

#切換到base 環(huán)境中進行使用,確保我們確實是在base 環(huán)境中
conda activate base 
conda update conda
#依據(jù)其他教程友题,安裝并設置 libmamba 求解器橡淑,ibmamba 求解器比默認的 conda 求解器快得多,尤其是在處理大規(guī)模依賴關系時咆爽。切換到 libmamba 可以顯著提升包管理的性能和速度梁棠。
conda install conda-libmamba-solver
conda config --set solver libmamba
#安裝,裝在base 環(huán)境中的包在所有的小環(huán)境中依然可以調(diào)用斗埂,因此裝在base環(huán)境中之后不需要再每個環(huán)境中再重新安裝一遍符糊。
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成功安裝大部分包,同時安裝速度極大提升崭捍。但需要注意的是在安裝部分包時尸折,可能會出現(xiàn)RuntimeError: Multi-download failed
這說明源可能已經(jīng)不可用,例如清華的 conda 鏡像源已經(jīng)廢棄殷蛇,需要去掉有問題的源实夹,或者是修改成可以使用的不會報錯的鏡像源橄浓。使用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 之后要立即接文檔名圆存!不要再加參數(shù)!
tar zxvf sratoolkit.3.1.1-centos_linux64.tar.gz
#在.bashrc文件中加入環(huán)境路徑
vi ~/.bashrc
export PATH="/home/.../software/sratoolkit.3.1.1-centos_linux64/bin:$PATH"
#輸入自己的文件路徑仇哆,保存并退出
source ~/.bashrc
#接下來就可以成功使用工具了

接下來將使用安裝的包進行分析了沦辙。

有些命令可能需要耗時幾個小時,如果不慎電腦休眠讹剔,聯(lián)網(wǎng)失敗油讯,命令可能就停止運行了。這時候如果把命令放在后臺延欠,即使終端關閉命令也會在后臺運行陌兑,使用到的命令是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等)等,可以使用命令來查看文件的內(nèi)容硬鞍。

#我們就以這個nohup.out為例
#查看整個文件的內(nèi)容慧瘤,將整個文件的內(nèi)容輸出到終端界面上
cat nohup.out

#分頁查看文件的內(nèi)容。less命令的用法與more命令類似固该,它可以用來隨意瀏覽文件锅减,且支持翻頁、搜索伐坏,還支持向上翻頁怔匣、向下翻頁。
less nohup.out 
#less命令搜索文件內(nèi)容可以通過 / 進行搜索著淆,運行命令后按下 / 鍵劫狠,輸入您想要搜索的內(nèi)容拴疤,按下回車鍵永部。less 將會高亮顯示匹配的內(nèi)容独泞,并且您可以通過按下 n 鍵來查看下一個匹配項,按下 N 鍵來查看上一個匹配項
#分頁查看文件內(nèi)容苔埋,more命令類似cat懦砂,不過會以一頁一頁的形式顯示,更方便使用者逐頁閱讀组橄,按Enter鍵就往下一頁顯示荞膘,按B鍵就會往回一頁顯示,按Q鍵會退出查看玉工,而且還有搜尋字串的功能羽资。
more nohup.out
#兩者的不同在于:less可以按鍵盤上下方向鍵顯示上下內(nèi)容,而more不能通過上下方向鍵控制顯示遵班。less不必讀整個文件屠升,加載速度會比more更快。less退出后終端不會留下剛顯示的內(nèi)容狭郑,而more退出后會在終端上留下剛顯示的內(nèi)容腹暖。閱讀到文件結(jié)束時,less不會退出翰萨,而more會脏答。相比more,less提供更加友好的檢索

#查看文件的前10行(默認)
head nohup.out
#查看文件的后5行亩鬼,默認n為10
tail -n 5 nohup.out

這是比較基礎的數(shù)據(jù)分析可能會用到的一些命令殖告,因為沒有結(jié)合數(shù)據(jù)進行實戰(zhàn),肯定會有所遺漏雳锋。我會在接下來的教程中繼續(xù)補充的丛肮。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者魄缚。
  • 序言:七十年代末宝与,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子冶匹,更是在濱河造成了極大的恐慌习劫,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嚼隘,死亡現(xiàn)場離奇詭異诽里,居然都是意外死亡,警方通過查閱死者的電腦和手機飞蛹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門谤狡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灸眼,“玉大人,你說我怎么就攤上這事墓懂⊙嫘” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵捕仔,是天一觀的道長匕积。 經(jīng)常有香客問我,道長榜跌,這世上最難降的妖魔是什么闪唆? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮钓葫,結(jié)果婚禮上悄蕾,老公的妹妹穿的比我還像新娘。我一直安慰自己础浮,他們只是感情好帆调,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著霸旗,像睡著了一般贷帮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诱告,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天撵枢,我揣著相機與錄音,去河邊找鬼精居。 笑死锄禽,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的靴姿。 我是一名探鬼主播沃但,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼佛吓!你這毒婦竟也來了宵晚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤维雇,失蹤者是張志新(化名)和其女友劉穎淤刃,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吱型,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡逸贾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铝侵。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡灼伤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出咪鲜,到底是詐尸還是另有隱情狐赡,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布嗜诀,位于F島的核電站猾警,受9級特大地震影響孔祸,放射性物質(zhì)發(fā)生泄漏隆敢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一崔慧、第九天 我趴在偏房一處隱蔽的房頂上張望拂蝎。 院中可真熱鬧,春花似錦惶室、人聲如沸温自。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悼泌。三九已至,卻和暖如春夹界,著一層夾襖步出監(jiān)牢的瞬間馆里,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工可柿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鸠踪,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓复斥,卻偏偏與公主長得像营密,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子目锭,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容