linux 入門,生信人應該這樣學linux

 2023-10-06 阅读 28 评论 0

摘要:— / PART 1 / ———— Linux-0-生信入門環境 linux 入門、工欲善其事必先利其器,這一節課主要以Windows系統為例,介紹了用Linux編程之前需要下載并安裝的軟件:Xshell,git,markdown,Winscp,幕布以及notepad++。介紹

— / PART 1 / ————

Linux-0-生信入門環境

linux 入門、工欲善其事必先利其器,這一節課主要以Windows系統為例,介紹了用Linux編程之前需要下載并安裝的軟件:Xshell,git,markdown,Winscp,幕布以及notepad++。介紹了如何下載并安裝R及R的操作軟件Rstudio,在Rstudio里進行了簡單的命令演示以及如何安裝并調用包,需要注意的是,所有軟件推薦從官網進行下載,并且在安裝的時候默認進行,基本不需要改動任何選項。對于Windows用戶要把所有軟件裝在C盤,對于Mac用戶則默認安裝,安裝軟件時勿出現中文路徑。

Linux 1 學習資源介紹

視頻介紹了學習linux需要用到的學習資料,包括一本書:Linux命令行與shell腳本編程大全,以及以前的學員寫的很詳細的學習經驗。學習linux這種系統的知識很有效的是記筆記,如果要很系統的學下來可以讀書輔助視頻,而對于常用到的命令,最好的方法就是背下來。

linux看不懂。Linux 2 系統知識

Linux屬于交互式,與Windows以及Mac的可視化程度、可操作性都不同,最大的特點是可以進行批處理。視頻介紹了初初接觸Linux時如何登陸、如何切換用戶以及如何查看電腦內存及硬盤等命令。

Linux 3 去可視化的命令行

學kafka之前要學什么、Linux的特點是批量、高效、多用戶,而其缺點則是不同于通常使用習慣的Windows或者Mac系統的鼠標可視化操作。因此需要熟知一些常用的命令,視頻從history、ls、以及sleep等常見命令引入,與鼠標可視化操作做對比以及舉例,介紹了Linux去可視化的常用命令,例如ls:查看當前文件夾、pwd:查看當前位置、mkdir:新建文件夾、cd ~:回到home、df-dh:磁盤整體使用情況、cat > :寫入文本,等等這些命令是需要背下來的,熟能生巧。

Linux 4 文本處理

Linux中的指令格式為命令+參數+文件/目錄,但在實際使用過程中并非嚴格如此。視頻以實際應用為基礎,介紹了從下載文件到查看文件再到對文件內容進行索引、排序等一系列命令。例如用wget從指定URL下載文件,用wc查看文件列數,用head/tail查看文件前/后十行內容,以及用grep、awk、sort命令來檢索文件內容。

shell好學嗎,Linux 5 軟件安裝

熟悉了Linux中常用命令之后就需要安裝一些軟件來實際應用了,Linux中軟件安裝是怎樣的呢?視頻以bowtie2這一比對軟件為例,首先搜索到軟件的下載地址,選擇對應自己系統的軟件版本,最好是選擇二進制下載方式,這樣下載好之后解壓就相當于安裝好了,可以直接使用了,若非二進制格式,則需要先解壓(unzip或者tar命令)然后安裝(make),最后,若看到幫助文檔則表示安裝成功。

Linux 6 環境變量

python生信,軟件安裝好之后就要使用了,而有時候直接輸入軟件名稱卻找不到,這時就有三種方法來調用剛剛安裝好的軟件:一是以命名的方式賦值變量,此時使用軟件時名稱前面需加$符號;二是使用alias方法后可直接使用軟件;三是設置環境變量echo $PATH添加export PATH后可使用軟件,調用成功后可以用version命令來查看軟件版本。視頻仍以bowtie2為例,講解了如何調用這一軟件,之后如何用這一軟件進行查看索引、建立索引以及進行比對。

Linux 8 shell腳本編程

視頻通過幾個方面講解了Linux中腳本編程,一是變量,變量是指代碼中的可變部分,可以賦值可以索引;二是參數,在程序運行時變換參數會得到不同的結果;三是通配符, 像ls、rm就是一種通配符,最常用通配符是“*”,表示可替換部分;接著是標準頭文件,里面包含的信息有作者、聯系方式等等,不是腳本所必須;四是循環,由于Linux中經常批量處理,對于類似命令就可以寫成循環代碼,常用for、while等等;五是輸入輸出,運行的腳本可以輸出到終端,也可以輸出到文件夾,看自己需要了

LINUX教程。Linux 9 shell腳本要學好(糾正配置文件)

測序結果通常不止一個樣本,因此在處理時要寫好腳本進行批處理,但是有時由于樣本命名的問題,導致fq文件匹配錯誤,bam文件生成失敗。因此本節課介紹如何檢查配置文件、如何將有問題的樣本挑出以及如何重做配置文件。需要注意的是為了避免數據處理出現問題,樣本不要以數字開頭命名以及出現不同類型的杠號。

Linux 10 文本處理(常見命令細講)

Linux命令在實際應用過程中會有各種各樣的組合去得到需要的結果,這是一個融會貫通的過程。本視頻詳細講解了grep、cut、awk以及sed等待命令的各種用法,這些命令加上不同參數會有不同的結果。視頻還展示了在實際處理GNS數據時常用數據排序,直觀的看到命令的使用頻率,學習起來做到有的放矢。

———— / PART 2 / ————

Linux-0 生信入門環境

講解安裝生信入門的必要軟件(Git、x-manager、typora\notepad++、R-studio)及一些R-studio的基本使用。

Linux-1 學習資源介紹

講解入門Linux的一些開始步驟和經驗。

linux-2 系統認知

講解Linux系統的一些特點(交互式、多用戶)和基本命令(grep、管道、history、su切換用戶、登錄 : ssh 用戶名@ip地址 )

Linux-3 去可視化的命令行? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

top: 實時動態地查看系統的整體運行情況。

sleep 10?:睡眠10秒、

&:任務在后臺運行

ps -ef?: 標準格式顯示進程

ifconfig?: 顯示或配置網絡設備

ls 、cd -?:回到上一個目錄

tab?: 補全

pwd、*通配符、mkdir、touch

echo:內容打印到屏幕

rm、mv、cp、cat、head

>?:重定向

Ctrl +c?:終止命令

批量、高效、多用戶 (Linux特點)

相對路徑和絕對路徑

df -dh?: 磁盤整體使用量

?

Linux-4 文本處理

wget:從指定的URL下載文件

wc?: word count, 文件的Byte數、字數或是列數

head、tail、more(q退出)、cat、less(-s:單行過長超出部分不顯示 -? N :顯示每行行號)

grep?:查找符合模式的行 -n :列出行號

cut?:選擇每行指定位置輸出? ?

sort?: 排序? ?

?

tr:將一組字符變成另一組字符。

安裝軟件步驟👇

mkdir?軟件名

cd?軟件名

wget?安裝包下載地址

解壓安裝包(unzip/tar....)

cd?解壓后的目錄

make

?

Linux-7 環境變量

?

1、方便調用命令(bowtie2)的使用方法:

第一種方法:

A. 首先賦值: bowtie2=bowtie2命令所在路徑??

B. 使用時: $bowtie2

第二種方法:?

A. 使用 alias bowtie2=bowtie2命令所在路徑??

B. 使用時:bowtie2

第三種方法:?

A. 修改環境變量 echo $PATH

export?PATH="bowtie2命令所在路徑/bin:$PATH" >>~/.bashrc?

source?~/.bashrc?

?2、bowtie2的使用:

A. 建立索引:bowtie2-build?.fa文件 索引的前綴

B. 比對:

bowtie2?-x 索引文件前綴 -1 短序列文件(.fq文件) -2 短序列文件(.fq文件)? -S 輸出的.sam文件

bowtie2?-x 索引文件前綴 -U 長序列文件(.fq文件)? -S 輸出的.sam文件

?

Linux-8 shell腳本編程

看了Linux-8 shell腳本編程,看到使用for和while創建軟鏈接,并自己實踐了一些

把以前和今天的收獲記錄簡書上,https://www.jianshu.com/p/327e20b49b92?

下面是今日收獲:

1、變量:講解環境變量

2、參數

$0 :Shell本身的文件名? ??

$1-$n : 添加到Shell的各參數值

拓展:https://www.cnblogs.com/fhefh/archive/2011/04/15/2017613.html

?

創建一個小腳本,內容為echo $0,并運行。

vi?tmp.sh

cat?tmp.sh?

echo?$0

bash?tmp.sh?

?

往腳本添加$1 $2 $3,并運行腳本(后面再添加三個任意參數如12 23 34)

vi?tmp.sh?

cat?tmp.sh?

echo?$0 $1 $2 $3

bash?tmp.sh 12 23 34?

tmp.sh?12 23 34

注:12 23 34 參數傳入$1 $2 $3,并被echo出來。

?

3、通配符?: "*":匹配任意長度任意字符 "[ ]":匹配一個單字符范圍,如[a-z],[0-9]

拓展:https://abcfy2.gitbooks.io/linux_basic/content/first_sense_for_linux/command_learning/wildcard.html

?

ls

2.3? a.1? a.txt? b.txt s.1? tmp.sh

echo?*.txt

a.txt b.txt

echo?*.1

a.1 s.1

echo?[a-z].1

a.1 s.1

?

4、標準頭文件(有待進一步理解):

\#!/bin/bash

set -e

\# Function for script description and usage

usage()

{

cat <<EOF>&2

usage:

。。。。

}

?

5循環:for、while

A. for循環

ls

2.3? a.txt? s.1? ? ? ?tmp.sh? ?z1.txt? z3.txt? z5.txt? z7.txt? z9.txt

a.1? b.txt? s{i}.txt? z10.txt? z2.txt? z4.txt? z6.txt? z8.txt

for i in {3..9};do echo z${i}.txt;done

?

B. 捕獲

for i in "ls *.txt";do echo $i;done

?

linux-9 腳本要學好

配置文件出現問題(左端測序文件和右端測序文件不匹配)-->

查看已比對好的.bam文件(正常大小以G為單位),發現出現幾k的文件-->

由于兩個樣本的FQ雙端文件匹配錯誤,導致.bam文件生成失敗(幾k的.bam文件)-->

將錯誤的fq正常排序,重新配置文件(24個),再重新進行比對。

?

ls /home......../*_2.gz? | sort -t "_" -k3,3? >fq2? ?

先使用_符號對內容切割,再指定第三列進行排序,生成fq2文件,再對1.gz進行同樣處理,

將兩個paste一起,生成一個新的配置文件。再對其重新比對。

?

Linux-10 文本處理

>grep

? ? -f? : 指定范本文件file,每一行是一個查找模式。空的file文件未指定查找模式。

? ? -w : 只有完全符合該字的行才會被輸出

? ? -c : 統計與wc命令一樣

? ? -v : 匹配但是不打印出來

?

>tr?: 裝換文件中的字符

? ? 例:tr '\t' '\n'? ?把制表符換成換行符

?

>cut -f??: 輸出指定位置處的字節

? ? 如: cut -f? 1, 31-32 , 40 info :?

? ? 默認以制表符為分隔,分割并打印出info文件的 第一列 第31列到32列 第40列

? ? -d ‘;’? ?:指定分隔符(;)

?

>sed? 's///g'???: 替換分隔符

? ? 如:sed? 's/;/\t/g'? : 將分隔符的分號換成\t

?

>paste? -s? -d? + | bc

? ? -s 將每個文件合并成行而不是按行粘貼

? ?-d 指定不同于空格或tab鍵的域分隔符。

? ? | bc :? 在前面指定表達式就會幫助你算出來

?

>awk'{print $1}" tmp??: 打印出第一列

?

?

———— / PART3 / ————

P1linux-0-生信入門環境

工具下載:

  • xshell/Xmanager /putty:終端模擬管理軟件,連接Linux終端

  • Winscp/FileZilla:連接服務器上傳下載文件

  • Everything:全盤搜索文件的工具

  • 幕布:思維導圖

  • Typora/Rmarkdown:markdown的編輯器

  • Notepad++:超級文本編輯器

  • ?git:快速高效的處理project,類似于DOS界面

  • R/Rstudio:統計分析+可視化

installed.packages()

.libpath()

R語言可以批量安裝R包,如Jimmy老師自己寫的R包:https://github.com/jmzeng1314/biotrainee?

考慮到磁盤空間或者運行速度等問題,可以根據自身需求來安裝各類軟件和R包

注意:

1>?????有一定基礎的人,可以1.5倍速或者2倍速播放,雖然這個時候Jimmy老師的聲音有點魔性。可以看兩遍,一邊看一邊實際操作。

2>????到官網下載以免安裝很多附帶的東西;

3>????對于不熟悉的軟件,按默認選項(直接下一步)安裝即可;

4>????R package安裝速度慢,嘗試換下載鏡像(可用清華的鏡像);

?

P2 linux-1-學習資源介紹

圖片

?

*?不要太沮喪,學習是需要時間的。

* Linux基礎學習:馬哥Linux教學視頻、《Linux命令行與shell腳本編程大全》

圖片

?

?

P3 linux-2-系統認知

圖片

?

多用戶

Linux系統登陸服務器/切換用戶:ssh hucy@172.31.110.34

開通用戶:sudo?adduser s1?#一般都沒有sudo權限

修改密碼:passwd?s1

?

開發網頁

shiny基礎的交互式網頁

ls?-lh?/var/www/html

?

查看服務器信息

df?-h #查看電腦配置

free?-g??#查看內存

w?#查看用戶登錄情況

top?#實時動態查看系統的整體運行情況

ps?-ef?|?grep?sleep?#查看當前運行的進程,類似于wins的系統管理器

標準格式顯示進程

su?s1 #切換登錄用戶

exit?#退出用戶登錄

?

P4 linux-3-去可視化的命令行

圖片

?

命令行

批量、高效、多用戶;

生物信息軟件的運行環境;

常用命令

ls?/??#根目錄

ls??即??ls?./

mkdir? ?#創建目錄

touch? ??#創建空白文件

echo? ? ??#內容打印到屏幕

echo?$PATH

echo?{1..10}? ?#{}起擴展作用

mkdir?folder{1..10}

cat?>?jmzeng.txt? ?#創建并寫入文件,Ctrl+C退出

touch?jmzeng.txt?#創建文件

練習

圖片

?

練習網址:http://www.bio-info-trainee.com/2900.html

基礎知識:cd-, cd ..? , cd -, history, !5 ,? /home/ , /tmp/ , >,&,jobs,nohup 1,2,0

文件目錄操作:ls,cd,pwd,mkdir,rm,mv,cp,touch,head,tail,less,more

系統管理:df,du,top,free,ps,ifconfig,netstat,ssh,scp,

用戶權限:chown,chgrp,groups,ls

文本操作:awk,grep,sed,paste,cat,diff,wc,vi

*?使用騰訊云實驗室的linux服務器:https://cloud.tencent.com/developer/labs/lab/10000進行練習,挺好用的。

注意:

1>?????重要的命令多背多用,必須要記下來;

2>????實踐往往才能理解的更深刻。

?

P5 linux-4-文本處理

圖片

?

下載練習數據:http://www.biotrainee.com/jmzeng/igv/test.bed

cat > test.bed#復制、保存、Ctrl+C退出,或

wget http://www.biotrainee.com/jmzeng/igv/test.bed

查看文件:

cat?-n test.bed? ? ?# -n顯示行號

cat?test.bed?|wc?#wc統計行

head?-1?test.bed?#顯示第一行

tail?-1?test.bed? ??#顯示最后一行

less?-S test.bed? ??#-S不換行顯示?#q退出,space翻頁

less?-SN test.bed?#-N標記行號

grep?-n H3K4me1 test.bed?#grep加文件名,-n顯示行號

cut?-f?1-3?test.bed?#取test.bed文件的所有行的1-3列

圖片

?

若想要獲得每行起止位置間的序列:

cut?-f 1-3 test.bed |?awk?'{print $0}'? ? ?# $0把所有東西都輸出來

cut?-f 1-3 test.bed |?awk?'{print $1":"$2","$3}'

圖片

?

cut?-f 1-3 test.bed |?awk?'{print?"http://genome.ucsc.edu/cgi-bin/das/hg38/dna?segment="$1":"$2","$3}'

圖片

?

如:http://genome.ucsc.edu/cgi-bin/das/hg38/dna?segment=chr1:9769,10673

圖片

?

其實,可以通過bedtools等其他工具直接獲取序列信息。

排序

sort?-k 2,2nr test.bed?|cut?-f?1-3? ?#k:key; n:numeric; r:reverse即按照第二列排序

圖片

?

linux命令行文本操作參考:

https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&mid=2247485539&idx=1&sn=cbb02d48ea5bb90ee5bdf35d501ee428&chksm=9b4848d8ac3fc1ce58b14128a138c100d305cb70c61180b523c21ad4859fdcc2cd7e96a75c99&scene=21#wechat_redirect

AWK實操:

wget?https://www.mothur.org/w/images/d/d6/MiSeqSOPData.zip

unzip?MiSeqSOPData.zip

cat?MiSeq_SOP/stability.files

ls?~/Metagenomics/TestData/Miseq_SOP/MiSeq_SOP/*.fastq|awk?'NR%2==1{T=$0;next}{print? T,"\t"$0}'??|awk?'BEGIN{FS="_S";OFS="\t";}{print $1,$0}'

# NR:行號;FS:輸入分隔符;OFS:輸出分隔符

?

P6 linux-5-軟件安裝

沒有root權限可以自己新建一個文件夾進行安裝。

http://www.biotrainee.com/thread-856-1-1.html

沒啥可說的,實操。

ls?--color=auto

cat?~/.bashrc?|?grep?ls

alias?ls=?'ls --color=auto'

?

修改用戶名字符串:

PS1="\[\e[32;1m\]\u\[\e[33;1m\]\t \[\e[35;1m\]\w \n\[\e[0;40m\]$"

解壓:

tar?xvfj?*.tar.bz2

tar?xvfz?*.tar.bz

?

P7 linux-7-環境變量

查看環境變量:

echo?$PATH|tr?':'? ?'\n'

echo?$PATH|tr?':'? ?'\n'|?xargs?ls??-lh

which?bwa

history|grep?"qiime"

設置環境變量:

1)?設置變量或使用alias

bowtie2=~/biosoft/bowtie2/bowtie2-2.3.4.3-linux-x86_64/bowtie2

#每次打開終端都需要重新設置

$bowtie2

2)?修改配置文件中的環境變量

vim?~/.barhrc

?????????export?PATH=":$PATH"#打開文本編輯工具vim進行編輯

source?~/.barhrc#永久生效

3)?利用cat?和重定向符>>

cat??>>~/.barhrc

???????? PS1="\[\e[32;1m\]\u\[\e[33;1m\]\t \[\e[35;1m\]\w \n\[\e[0;40m\]$"#命令行輸入

???????? Ctrl+C?#結束輸入

source?~/.barhrc

cat~/.barhrc??|tail

注意

這種情況下不知道軟件的版本。

可以使用?--help和--version查看,利用which查看所有安裝過的版本位置。

一般軟件都會帶上示例數據。

cd??~/biosoft/bowtie2/bowtie2-2.3.4.3-linux-x86_64/example

#?下載tree

wget?http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz

tar?zxvf tree-1.7.0.tgz

cd?tree-1.7.0

make

?

cat?>>~/.bashrc

export?PATH="/home/hucy/biosoft/tree-1.7.0:$PATH"

?

#?查看示例數據

tree?-h

圖片

?

less?-S reads/longreads.fq? ?#fastq格式有四行

比對需要參考基因組,參考基因組使用前需要先建立索引。

ls?-lh index/

圖片

?

bowtie2-build?reference/lambda_virus.fa temp?#構建一個名為temp的索引

ls?-lh

md5sum?temp.1.bt2?#文檔校驗,看是否出錯或者修改

md5sum?index/lambda_virus.1.bt2

圖片

?

?

建立索引后便可進行比對:

bowtie2?-x temp -1 reads/reads_1.fq -2 reads/reads_2.fq -S temp.sam

less?-S temp.sam

?

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/129880.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息