這一版本是重制版炼吴,完善了基礎(chǔ)命令并增加了conda部分本鸣。
這里是佳奧。
跟隨生信技能樹的公開課程硅蹦,我們開始正式的學(xué)習(xí)永高!
首先修改命令行配色:
echo 'export PS1="\[\033]2;\h:\u \w\007\033[33;1m\]\u \033[35;1m\t\033[0m \[\033[36;1m\]\w\[\033[0m\]\n\[\e[32;1m\]$ \[\e[0m\]"' >> ~/.bashrc
source ~/.bashrc
再修改一下終端的復(fù)制沾粘快捷鍵,在MobaXterm里面提针,左上角Settings-Keyboad里面
修改為我們常用的Ctrl + V就好
鼠標(biāo)選中命令命爬,右鍵即可復(fù)制。
MobaXterm上傳文件:
1 系統(tǒng)認(rèn)知
命令格式: 命令 + 選項(xiàng) + 文件
查看幫助文檔:
命令 --help
命令 -h
查看磁盤空間:
df -h
查看內(nèi)存:
free -g
切換用戶:從root到普通賬戶
su 用戶名
退出賬戶:
exit
2 文件夾與文件管理命令
休眠指令:
sleep 秒數(shù)
后臺(tái)休眠
sleep 10 &
文件目錄 bin存儲(chǔ)所有可以執(zhí)行的命令
ls /bin
文件夾與文件管理的十個(gè)命令:
工作目錄:
pwd 打印工作目錄
ls 列出
cd 切換目錄
創(chuàng)建:
mkdir 新建目錄
touch 新建文件
操作文件:
mv 移動(dòng)和重命名
rm 刪除
cp 拷貝粘貼
壓縮:
tar 壓縮或解壓縮
鏈接:
lm 鏈接文件
場景一:
$ pwd
/home/kaoku
$ cd biosoft/
$ ls
bowtie2 histlib samtools
快捷鍵:
Tab 補(bǔ)全
Ctrl + C 終止任務(wù)
Ctrl + L 清屏
Ctrl + U 剪切光標(biāo)到行首
查看當(dāng)前文件夾:
展示目錄 ls
$ ls
bowtie2 histlib samtools
展示全部信息(包括隱藏文件) -a
展示容量 -h
以文件大小排序 -S
以時(shí)間排序 -t
展示詳細(xì)信息 -l
$ ls -l
total 12
drwxr-xr-x 3 root root 4096 Jul 14 15:03 bowtie2
drwxr-xr-x 3 root root 4096 Jul 14 18:08 histlib
drwxr-xr-x 3 root root 4096 Jul 14 18:20 samtools
詳細(xì)信息+大小 -lh
$ ls -lh
total 12K
drwxr-xr-x 3 root root 4.0K Jul 14 15:03 bowtie2
drwxr-xr-x 3 root root 4.0K Jul 14 18:08 histlib
drwxr-xr-x 3 root root 4.0K Jul 14 18:20 samtools
回到上一目錄:
cd ../
回到home目錄:
cd ~
查看進(jìn)程:
ps -ef |grep 進(jìn)程名
ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 16:53 ? 00:00:00 /init
創(chuàng)建目錄:
mkdir name
如果name存在便不創(chuàng)建辐脖,name不存在就創(chuàng)建饲宛。
mkdir -p name
還可以創(chuàng)造多級目錄:
mkdir -p name1/name2/name3
創(chuàng)建十個(gè)文件夾
mkdir folder{1..10}
ls
folder1 folder10 folder2 folder3 folder4 folder5 folder6 folder7 folder8 folder9
tree命令:
$ tree
.
├── bowtie2
│ ├── bowtie2-2.4.5-linux-x86_64
│ │ ├── AUTHORS
│ │ ├── BOWTIE2_VERSION
以下略
顯示當(dāng)前目錄層級:
tree -L 1
$ tree -L 1
.
├── bowtie2
├── histlib
├── my_first_test_file
└── samtools
創(chuàng)建文件:
touch name.txt
移動(dòng)文件:
mv 待移動(dòng)文件 移動(dòng)到哪個(gè)目錄
mv file file1 重命名
復(fù)制文件到目錄:
cp 文件 目錄
刪除:
rm 刪除文件
rm -r 刪除目錄
rm -rf 不顯示警告,刪除目錄
軟連接:
ln -s TARGET*(絕對路徑) DIRECTORY
將內(nèi)容打印到屏幕:
echo
顯示路徑:
echo $PATH
給文件寫入內(nèi)容:
$ echo "hallo">file2
$ cat file2
hallo
查看歷史命令:
history
處理壓縮文件:
tar
壓縮:
tar -zcvf Data.tar.gz壓縮后文件名 Data待壓縮文件
c:創(chuàng)建壓縮文件
解壓:
tar -zxvf Data.tar.gz
x:解壓縮
z:解壓gzip文件
其他壓縮命令:
zip unzip: .zip
gzip gunzip: .gz
bzip2 bunzip2: .bz2
3 文本處理
管道:|
cat 查看
head 文件前10行
head -100 前100行
tail 文件尾10行
less
less -N 顯示行號
less -S 單行顯示嗜价,空格翻頁,q退出
less -zless 查看壓縮文件
more 逐頁查看久锥,空格翻頁,q推出
tac 逆向查看
cat 修改.txt文件內(nèi)容:
$ cat > tmp.txt
hello
nihao
結(jié)束編輯按Ctrl V
^C
查看被編輯后的tmp.txt
$ cat tmp.txt
hello
nihao
wc 統(tǒng)計(jì)文本:
wc
-l:統(tǒng)計(jì)行數(shù)
-w:統(tǒng)計(jì)字符串?dāng)?shù)
-c:統(tǒng)計(jì)字節(jié)數(shù)
$ wc -lwc test.bed
10 88 3099 test.bed
10行
cut文本切割:
cut
-d 指定分隔符瑟由,默認(rèn)\t
-f 輸出哪幾列
輸出第一列:
cut -f 1 test.bed
track name="His (@ Brs) 50" url="http://chip-atlas.org/view?id=$$" gffTags="on"
chr1
chr1
chr1
提取前三列的數(shù)據(jù):
cut -f 1-3 test.bed
track name="His (@ Brs) 50" url="http://chip-atlas.org/view?id=$$" gffTags="on"
chr1 9769 10673
chr1 9776 10481
chr1 9788 10497
輸出第一,三到五青伤,七列:
cut -f 1,3-5,7
sort排序:
sort
-n:按照數(shù)值大小從小到大
-v:字符串中含有數(shù)值,從小到大
-r:逆向排序
-k:指定區(qū)域
-t:指定分隔符
打開text.bed文件狠角,選取第二列蚪腋,顯示前十行姨蟋,按數(shù)字順序排列
$ cat test.bed | cut -f 2 | head | sort -n
9769
9776
9788
9795
9799
9805
9810
9811
9825
uniq去除重復(fù)行:(相鄰)
uniq
-c:統(tǒng)計(jì)每個(gè)字符串連續(xù)出現(xiàn)行數(shù)
一般sort+uniq連著用
paste文本合并:
paste
-d:指定分隔符
-s:按行合并
縱向拼接文件:
cat file1 file2 > file3
paste用法:
$ seq 20
1
2
3
...
18
19
20
$ seq 20 | paste - -
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
tr字符替換:
tr
-d:刪除指定字符
-s:縮減連續(xù)重復(fù)字符
wget從指定的URL下載文件:
wget
從指定URL下載文件
# wget http://www.biotrainee.com/jmzeng/igv/test.bed
查看文件大小
# ls -lh
total 4.0K
-rw-r--r-- 1 root root 3.1K May 18 2017 test.bed
查看test.bed內(nèi)容
# cat test.bed
4 生信常見數(shù)據(jù)格式
fasta 基于文本的立帖,表示核酸/多肽序列芬探。
特征:2行,id行(>開頭)和序列行(一個(gè)字母表示一個(gè)堿基/氨基酸)厘惦。
fastaq 存儲(chǔ)生物序列以及質(zhì)量評價(jià)。
特征:4行哩簿,id行(@開頭宵蕉,記錄必要信息),序列行节榜,附加信息行(+)羡玛,堿基質(zhì)量行(PHRED值,用一個(gè)字符來表示堿基質(zhì)量好壞)宗苍。
gff 記錄序列轉(zhuǎn)錄起始位點(diǎn)稼稿、基因、外顯子讳窟、內(nèi)含子等元件在染色體中的位置信息让歼。9列的文件。
gtf 可以用cufflinks里的gffread相互轉(zhuǎn)換格式丽啡。
5 三駕馬車之grep sed awk
grep 文本搜索:
grep [options] pattern file
-w 只匹配單詞
-v 輸出沒有匹配的行
-n 顯示行號
-r 從目錄里查找
-e 匹配多個(gè) grep -e 'gene' -e 'UTR'
-f 從文件內(nèi)容中匹配 grep -f file
grep "查詢的文字" "目標(biāo)文件"
# grep H3K4me1 test.bed
結(jié)果會(huì)橙色標(biāo)出
想知道在第幾行谋右,加一個(gè)-n
# grep -n H3K4me1 test.bed
4:chr1 9788 10497
在第四行。
把每一行的數(shù)字標(biāo)注添加到一個(gè)新的文件new中
# cat -n test.bed > new
查看目錄發(fā)現(xiàn)新的文件new
# ls
new test.bed
查看新文件new补箍,僅使用-s參數(shù)改执,整理文件,但是結(jié)果也可以看到每一行的數(shù)字標(biāo)注坑雅。
# cat -s new
1 track name="His (@ Brs) 50" url="http://chip-atlas.org/view?id=$$" gffTags="on"
2 chr1 9769 10673 ID=SRX539644;Name=H3K27ac%20(@%20HMEC);Title=GSM1383853:%20HMEC%20H3K27ac%20ChIP-
直接在test.bed搜索H3K4me1
# cat -n test.bed |grep H3K4me1
正則表達(dá)式:
補(bǔ)充 -E 表示正則表達(dá)式
^ 行首 cat file.txt | grep '^T'
$ 行尾
. 換行符之外的任意單個(gè)字符 cat file.txt | grep 'f.ee' 匹配到free
? 匹配辈挂?前項(xiàng)0次或1次 cat file.txt | grep 'f\?ee' 匹配ee或者fee
+ 匹配1次或多次 cat file.txt | grep 're\+' 匹配re或ree
* 匹配0次或多次 grep 'f*ee' 匹配fee或ee
{n} 匹配n次 grep 'fe\{2\}l' 匹配到feel
{n,} 匹配至少n次
{m,n} 匹配至少m,最多n次
[] 匹配任意一個(gè)
[^]排除字符 相當(dāng)于反選
| 或
演示例子:
打開染色體文件裹粤,選擇第三列终蒂,去除最開頭“#” 符號,查找gene遥诉,查看前十行
$ cat Homo_sapiens.GRCh38.107.chromosome.Y.gff3 | cut -f 3 | grep -v '#' | grep 'gene'| head
pseudogene
ncRNA_gene
gene
只查看gene
$ cat Homo_sapiens.GRCh38.107.chromosome.Y.gff3 | cut -f 3 | grep -v '#' | grep '^gene'| head
查看有多少個(gè)gene
$ cat Homo_sapiens.GRCh38.107.chromosome.Y.gff3 | cut -f 3 | grep -v '#' | grep '^gene'| sort | uniq -c
$ cat Homo_sapiens.GRCh38.107.chromosome.Y.gff3 | grep -v '#'| cut -f 3 | grep -w -c 'gene'
45 gene
查看最開頭注釋文件
$ cat Homo_sapiens.GRCh38.107.chromosome.Y.gff3 | grep '#' | head
不顯示最開頭的#
$ cat Homo_sapiens.GRCh38.107.chromosome.Y.gff3 | grep -v '#'| head
查看Y染色體有哪些東西:
$ cat Homo_sapiens.GRCh38.107.chromosome.Y.gff3 | grep -v '#'| cut -f 3 | sort | uniq -c
1549 CDS
290 biological_region
1 chromosome
4395 exon
216 five_prime_UTR
按照數(shù)字大泻笤ァ:
$ cat Homo_sapiens.GRCh38.107.chromosome.Y.gff3 | grep -v '#'| cut -f 3 | sort | uniq -c | sort -n
1 chromosome
3 snoRNA
7 ncRNA
17 snRNA
45 gene
94 ncRNA_gene
146 mRNA
190 three_prime_UTR
216 five_prime_UTR
283 lnc_RNA
290 biological_region
386 pseudogenic_transcript
387 pseudogene
1549 CDS
4395 exon
反選exon輸出,過濾掉含有exon的行:
$ cat Homo_sapiens.GRCh38.107.chromosome.Y.gff3 | grep -v '#' | grep -v 'exon' | less -SN
只輸出含有CDS突那、UTR行:
因?yàn)閁TR包含3'和5',所以直接搜索早龟,不加-w
$ cat Homo_sapiens.GRCh38.107.chromosome.Y.gff3 | grep -e 'CDS' -e 'UTR' | less -SN
或者:
$ cat Homo_sapiens.GRCh38.107.chromosome.Y.gff3 | grep -E 'CDS' 'UTR' | less -SN
又或者:|管道符改為正則表達(dá)式,表示或:
$ cat Homo_sapiens.GRCh38.107.chromosome.Y.gff3 | grep 'CDS\|UTR' | less -SN
查看fastaq文件@開頭行數(shù)并統(tǒng)計(jì):
$ cat hcc1395_normal_rep1_r1.fastq | grep '@' | wc -l
331958
或者:
$ cat hcc1395_normal_rep1_r1.fastq | grep -c '@'
sed 流編輯器:
對文本進(jìn)行增刪改查
sed [-options] 'script' file(s)
參數(shù)
-n:只顯示sed處理的行
-e:直接在命令模式上進(jìn)行sed編輯
-i:修改讀取文件內(nèi)容壹店,不輸出
常見script
2 第2行
2,4 第2行到第4行
2,$ 第2行到最后一行
2~3 第2行開始硅卢,每隔3行取一行
2,+4 第2行到2+4行
/pattern/ 匹配上pattern的行
[!] 表示否定将塑,取反
a:指定行后增加一行点寥,內(nèi)容為a后面的字串
i:指定行前增加一行敢辩,內(nèi)容為i后面的字串
d:刪除某一行或某幾行
c:改變指定行內(nèi)容
s:替換 's/pattern/nem/[flags]'把pattern替換成new戚长,可以指定flags
y:轉(zhuǎn)換历葛,字符一對一轉(zhuǎn)換 'y/inchars/outchars/'
p:把匹配嘀略、修改的行打印出來帜羊,與-n參數(shù)合用
一些例子:
$ cat readme.txt
Welcome to Biotrainee()
This is your personal account in our Cloud
Have a fun with it
Please feel free to contact with me
在第1行后面增加1行:
$ cat readme.txt | sed ' 1a Welcome to Biotrainee()'
Welcome to Biotrainee()
Welcome to Biotrainee()
This is your personal account in our Cloud
Have a fun with it
Please feel free to contact with me
用sed匹配到一個(gè)空行:
$ cat test.txt
1
2
3
4
(這里是空行)
$ cat test.txt | sed '/^$/d' 刪除開頭^ 結(jié)尾$ 是空的 的行
1
2
3
4
把所有is替換為IS讼育,g是全部替換奶段,s換成1~3s就是替換1到3行
$ cat readme.txt | sed 's/is/IS/g'
Welcome to Biotrainee()
ThIS IS your personal account in our Cloud
Have a fun with it
Please feel free to contact with me
匹配有www的行痹籍,把ee替換為EE
$ cat readme.txt | sed '/www/ s/ee/EE/'
awk行處理:
對文本、數(shù)據(jù)進(jìn)行行處理
awk [options] '{script}' file
常見參數(shù):
-F 設(shè)置字段分隔符
-v 定義awk程序中的一個(gè)變量及其默認(rèn)值
基礎(chǔ)結(jié)構(gòu):'{script}'
匹配結(jié)構(gòu):'/pattern/{script}'
擴(kuò)展結(jié)構(gòu):'BEGIN{script}{script}END{script}'
awk讀取文本時(shí)棺克,會(huì)劃分每個(gè)數(shù)據(jù)字段娜谊,并分配給一個(gè)變量。
$0整個(gè)文本行
$1文本行第1個(gè)數(shù)據(jù)字段
$NF文本行最后一個(gè)數(shù)據(jù)字段
awk內(nèi)置變量湾趾,通過-v自定義:
FS:定義輸入字段分隔符
OFS:定義輸出字段分隔符
RS:定義輸入記錄分隔符
ORS:定義輸出記錄分隔符
NF:數(shù)據(jù)文件列數(shù)
NR:數(shù)據(jù)行數(shù)
一些例子:
cat Homo_sapiens.GRCh38.107.chromosome.Y.gff3 | awk '{print$9}' | less -S
ID=gene:ENSG00000288686;Name=XGY2;biotype=transcribed_unprocessed_pseudogene;description=XG
ID=transcript:ENST00000680285;Parent=gene:ENSG00000288686;Name=XGY2-204;biotype=processed_transcript;tag=basic;transcript_id=ENST00000680285;version>
Parent=transcript:ENST00000680285;Name=ENSE00003911762;constitutive=0;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=ENSE00003911762;rank=1;version=1
Parent=transcript:ENST00000680285;Name=ENSE00003911362;constitutive=1;ensembl_end_phase=-1;ensembl_phase=-1;exon_id=ENSE00003911362;rank=2;version=1
選取第一列
cut -f 1-3 test.bed |awk '{print $1}'
# cut -f 1-3 test.bed |awk '{print $1 }'
track
chr1
chr1
chr1
chr1
chr1
chr1
chr1
chr1
chr1
修改格式
# cut -f 1-3 test.bed |awk '{print $1":"$2","$3 }'
track:name="His,(@
chr1:9769,10673
chr1:9776,10481
chr1:9788,10497
chr1:9795,10434
chr1:9799,10446
chr1:9805,10419
chr1:9810,10438
chr1:9811,10465
chr1:9825,10306
倒序
# sort -k2,2nr test.bed |cut -f 1-3
chr1 9825 10306
chr1 9811 10465
chr1 9810 10438
chr1 9805 10419
chr1 9799 10446
chr1 9795 10434
chr1 9788 10497
chr1 9776 10481
chr1 9769 10673
track name="His (@ Brs) 50" url="http://chip-atlas.org/view?id=$$" gffTags="on"
2(第二列排序)n(數(shù)字)r(反過來)
4 軟件安裝-普通安裝
安裝軟件:bowtie2
先下載Bowtie Files文件:https://sourceforge.net/projects/bowtie-bio/files/bowtie2/2.4.5/
查看目錄,發(fā)現(xiàn)上傳的zip文件
# ls
biosoft bowtie2-2.4.5-linux-x86_64.zip
移動(dòng)到bowtie2目錄內(nèi)
# cd bowtie2/
# ls
bowtie2-2.4.5-linux-x86_64.zip
解壓壓縮包
# unzip bowtie2-2.4.5-linux-x86_64.zip
可以看到添加了許多新的命令(綠色顯示):
調(diào)用程序bowtie2
# /home/kaoku/biosoft/bowtie2/bowtie2-2.4.5-linux-x86_64/bowtie2
看到彈出幫助文檔即調(diào)用成功
No index, query, or output file specified!
Bowtie 2 version 2.4.5 by Ben Langmead (langmea@cs.jhu.edu, www.cs.jhu.edu/~langmea)
Usage:
bowtie2 [options]* -x <bt2-idx> {-1 <m1> -2 <m2> | -U <r> | --interleaved <i> | -b <bam>} [-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).
以下略
安裝軟件:samtools
先在biosoft目錄下新建samtools目錄蛉艾,并進(jìn)入該目錄
cd ~/biosoft
mkdir samtools && cd samtools
獲取軟件在Github上面的下載URL
# wget https://github.com/samtools/samtools/releases/download/1.15.1/samtools-1.15.1.tar.bz2
--2022-07-14 15:35:14-- https://github.com/samtools/samtools/releases/download/1.15.1/samtools-1.15.1.tar.bz2
以下略
查看.bz2壓縮包
# ls
samtools-1.15.1.tar.bz2
解壓命令 tar xvfj
# tar xvfj samtools-1.15.1.tar.bz2
x(解壓)v(顯示)fj
解壓后我們需要make一下文件勿侯,但在這之前要按照make和gcc以防報(bào)錯(cuò)
make安裝:apt-get install make (也可以根據(jù)系統(tǒng)提示代碼安裝)
gcc安裝:
sudo apt update
sudo apt install build-essential
安裝完成后我們開始make剛剛安裝的目錄
# make
重要補(bǔ)充
安裝samtools過程相當(dāng)曲折助琐,但是結(jié)果是好的,我來梳理一下注意點(diǎn):
1 安裝make蛆橡,gcc
sudo apt update
sudo apt install make##安裝make
sudo apt install build-essential##安裝gcc
2 samtools安裝過程中依賴于lzma泰演、htslib兩個(gè)包:
lzma:
apt-get install lzma
htslib:
第一步:
sudo apt-get update
sudo apt-get install gcc
sudo apt-get install make
sudo apt-get install libbz2-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libncurses5-dev
sudo apt-get install libncursesw5-dev
sudo apt-get install liblzma-dev
第二步:
cd /usr/bin
wget https://github.com/samtools/htslib/releases/download/1.9/htslib-1.9.tar.bz2
tar -vxjf htslib-1.9.tar.bz2
cd htslib-1.9
make
3 更新curl.h
sudo apt-get install libcurl4-openssl-dev
4 回到samtools文件睦焕,make
順利運(yùn)行后垃喊,看到如下綠色的samtools說明安裝成功
至于conda的安裝和配置放在下一篇本谜。
我們下一篇再見耕突!