Linux-0 生信入門(mén)環(huán)境: 講解安裝生信入門(mén)的必要軟件(Git、x-manager雏亚、typora\notepad++、R-studio)及一些R-studio的基本使用。
Linux-1 學(xué)習(xí)資源介紹:講解入門(mén)Linux的一些開(kāi)始步驟和經(jīng)驗(yàn)新症。
linux-2 系統(tǒng)認(rèn)知:講解Linux系統(tǒng)的一些特點(diǎn)(交互式、多用戶(hù))和基本命令(grep响禽、管道徒爹、history、su切換用戶(hù)芋类、登錄 : ssh 用戶(hù)名@ip地址 )
Linux-3 去可視化的命令行:
top:實(shí)時(shí)動(dòng)態(tài)地查看系統(tǒng)的整體運(yùn)行情況隆嗅。
sleep 10 :睡眠10秒、
&:任務(wù)在后臺(tái)運(yùn)行
ps -ef : 標(biāo)準(zhǔn)格式顯示進(jìn)程
ifconfig : 顯示或配置網(wǎng)絡(luò)設(shè)備
ls 侯繁、cd - :回到上一個(gè)目錄胖喳、tab補(bǔ)全、pwd贮竟、*通配符丽焊、mkdir较剃、touch、echo:內(nèi)容打印到屏幕粹懒、rm重付、mv、cp凫乖、cat确垫、head、>重定向帽芽、Ctrl +c 終止命令
批量删掀、高效、多用戶(hù) (Linux特點(diǎn))
相對(duì)路徑和絕對(duì)路徑
df -dh : 磁盤(pán)整體使用量Linux-4 文本處理:
wget:從指定的URL下載文件
wc : word count, 文件的Byte數(shù)导街、字?jǐn)?shù)或是列數(shù)
head披泪、tail、more(q退出)搬瑰、cat款票、less(-s:單行過(guò)長(zhǎng)超出部分不顯示 - N :顯示每行行號(hào))
grep :查找符合模式的行 -n :列出行號(hào)
cut :選擇每行指定位置輸出 sort : 排序
awk : https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.htmlLinux-5 軟件安裝:
1、tr:將一組字符變成另一組字符泽论。
2艾少、安裝軟件步驟:
mkdir 軟件名
cd 軟件名
wget 安裝包下載地址
解壓安裝包(unzip/tar....)
cd 解壓后的目錄
makeLinux-7 環(huán)境變量:
1、方便調(diào)用命令(bowtie2)的使用方法:
第一種方法:首先賦值: bowtie2=bowtie2命令所在路徑 使用時(shí): $bowtie2
第二種方法: 使用 alias bowtie2=bowtie2命令所在路徑 使用時(shí):bowtie2
第三種方法: 修改環(huán)境變量 echo $PATH,
export PATH=bowtie2命令所在路徑/bin:$PATH' >>~/.bashrc
source ~/.bashrc
2翼悴、bowtie2的使用:
建立索引:bowtie2-build .fa文件 索引的前綴
比對(duì):
bowtie2 -x 索引文件前綴 -1 短序列文件(.fq文件) -2 短序列文件(.fq文件) -S 輸出的.sam文件
bowtie2 -x 索引文件前綴 -U 長(zhǎng)序列文件(.fq文件) -S 輸出的.sam文件Linux-8 shell腳本編程:
1缚够、變量:講解環(huán)境變量
2、參數(shù):$0 :Shell本身的文件名 $1-$n : 添加到Shell的各參數(shù)值
拓展:https://www.cnblogs.com/fhefh/archive/2011/04/15/2017613.html
#創(chuàng)建一個(gè)小腳本鹦赎,內(nèi)容為echo $0谍椅,并運(yùn)行。
vip41@VM-0-15-ubuntu:~/tmp$ vi tmp.sh
vip41@VM-0-15-ubuntu:~/tmp$ cat tmp.sh
echo $0
vip41@VM-0-15-ubuntu:~/tmp$ bash tmp.sh
tmp.sh
#往腳本添加$1 $2 $3古话,并運(yùn)行腳本(后面再添加三個(gè)任意參數(shù)如12 23 34)
vip41@VM-0-15-ubuntu:~/tmp$ vi tmp.sh
vip41@VM-0-15-ubuntu:~/tmp$ cat tmp.sh
echo $0 $1 $2 $3
vip41@VM-0-15-ubuntu:~/tmp$ bash tmp.sh 12 23 34
tmp.sh 12 23 34
#12 23 34 參數(shù)傳入$1 $2 $3雏吭,并被echo出來(lái)。
3陪踩、通配符 : *
:匹配任意長(zhǎng)度任意字符 [ ]
:匹配一個(gè)單字符范圍,如[a-z],[0-9]
拓展:https://abcfy2.gitbooks.io/linux_basic/content/first_sense_for_linux/command_learning/wildcard.html
vip41@VM-0-15-ubuntu:~/tmp$ ls
2.3 a.1 a.txt b.txt s.1 tmp.sh
vip41@VM-0-15-ubuntu:~/tmp$ echo *.txt
a.txt b.txt
vip41@VM-0-15-ubuntu:~/tmp$ echo *.1
a.1 s.1
vip41@VM-0-15-ubuntu:~/tmp$ echo [a-z].1
a.1 s.1
4杖们、標(biāo)準(zhǔn)頭文件(有待進(jìn)一步理解):
#!/bin/bash
set -e
# Function for script description and usage
usage()
{
cat <<EOF>&2
usage:
。膊毁。胀莹。基跑。
}
5婚温、循環(huán):for(``:捕獲待了解)、while
#for循環(huán)
vip41@VM-0-15-ubuntu:~/tmp$ 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
vip41@VM-0-15-ubuntu:~/tmp$ for i in {3..9};do echo z${i}.txt;done
z3.txt
z4.txt
z5.txt
z6.txt
z7.txt
z8.txt
z9.txt
#捕獲
vip41@VM-0-15-ubuntu:~/tmp$ for i in `ls *.txt`;do echo $i;done
s{i}.txt
z10.txt
z1.txt
z2.txt
z3.txt
z4.txt
z5.txt
z6.txt
z7.txt
z8.txt
z9.txt
a.txt:
b.txt:
6媳否、建立軟鏈接:
vip41@VM-0-15-ubuntu:~/tmp1$ ls ~/tmp/*.txt | while read id;do echo $id;done
/home/vip41/tmp/s{i}.txt
/home/vip41/tmp/z10.txt
/home/vip41/tmp/z1.txt
/home/vip41/tmp/z2.txt
/home/vip41/tmp/z3.txt
/home/vip41/tmp/z4.txt
/home/vip41/tmp/z5.txt
/home/vip41/tmp/z6.txt
/home/vip41/tmp/z7.txt
/home/vip41/tmp/z8.txt
/home/vip41/tmp/z9.txt
vip41@VM-0-15-ubuntu:~/tmp1$ ls ~/tmp/*.txt | while read id;do echo $(basename $id);done
s{i}.txt
z10.txt
z1.txt
z2.txt
z3.txt
z4.txt
z5.txt
z6.txt
z7.txt
z8.txt
z9.txt
vip41@VM-0-15-ubuntu:~/tmp1$ ls ~/tmp/*.txt | while read id;do ln -s $id $(basename $id);done
vip41@VM-0-15-ubuntu:~/tmp1$ ls -lh
total 0
lrwxrwxrwx 1 vip41 vip41 22 Dec 18 22:18 a.txt: -> /home/vip41/tmp/a.txt:
lrwxrwxrwx 1 vip41 vip41 22 Dec 18 22:18 b.txt: -> /home/vip41/tmp/b.txt:
lrwxrwxrwx 1 vip41 vip41 24 Dec 18 22:18 s{i}.txt -> /home/vip41/tmp/s{i}.txt
lrwxrwxrwx 1 vip41 vip41 23 Dec 18 22:18 z10.txt -> /home/vip41/tmp/z10.txt
lrwxrwxrwx 1 vip41 vip41 22 Dec 18 22:18 z1.txt -> /home/vip41/tmp/z1.txt
lrwxrwxrwx 1 vip41 vip41 22 Dec 18 22:18 z2.txt -> /home/vip41/tmp/z2.txt
lrwxrwxrwx 1 vip41 vip41 22 Dec 18 22:18 z3.txt -> /home/vip41/tmp/z3.txt
lrwxrwxrwx 1 vip41 vip41 22 Dec 18 22:18 z4.txt -> /home/vip41/tmp/z4.txt
lrwxrwxrwx 1 vip41 vip41 22 Dec 18 22:18 z5.txt -> /home/vip41/tmp/z5.txt
lrwxrwxrwx 1 vip41 vip41 22 Dec 18 22:18 z6.txt -> /home/vip41/tmp/z6.txt
lrwxrwxrwx 1 vip41 vip41 22 Dec 18 22:18 z7.txt -> /home/vip41/tmp/z7.txt
lrwxrwxrwx 1 vip41 vip41 22 Dec 18 22:18 z8.txt -> /home/vip41/tmp/z8.txt
lrwxrwxrwx 1 vip41 vip41 22 Dec 18 22:18 z9.txt -> /home/vip41/tmp/z9.txt
附:shell十三問(wèn):http://wiki.jikexueyuan.com/project/13-questions-of-shell/what-shell.html
7栅螟、文件 文件描述符
輸入文件—標(biāo)準(zhǔn)輸入(默認(rèn)輸入來(lái)自鍵盤(pán)) 0
輸出文件—標(biāo)準(zhǔn)輸出(默認(rèn)輸出到屏幕) 1
錯(cuò)誤輸出文件—標(biāo)準(zhǔn)錯(cuò)誤(默認(rèn)輸出到屏幕) 2
vip41@VM-0-15-ubuntu:~/tmp1$ vi tmp.sh
vip41@VM-0-15-ubuntu:~/tmp1$ cat tmp.sh
cd ghkyu
vip41@VM-0-15-ubuntu:~/tmp1$ bash tmp.sh
tmp.sh: line 1: cd: ghkyu: No such file or directory
vip41@VM-0-15-ubuntu:~/tmp1$ bash tmp.sh 2>result.txt
vip41@VM-0-15-ubuntu:~/tmp1$ cat result.txt
tmp.sh: line 1: cd: ghkyu: No such file or directory
8荆秦、命令替換:
1 ).``
(反引號(hào),電腦鍵盤(pán)Esc下面的那個(gè)鍵)
2 ).$()
命令
vip41@VM-0-15-ubuntu:~/tmp1$ vi tmp.sh
vip41@VM-0-15-ubuntu:~/tmp1$ cat tmp.sh
export bed=afaf
echo $bed
echo `date`
echo $(date)
vip41@VM-0-15-ubuntu:~/tmp1$ bash tmp.sh
afaf
Tue Dec 18 23:18:27 CST 2018
Tue Dec 18 23:18:27 CST 2018
9.進(jìn)程替換:http://wiki.jikexueyuan.com/project/13-questions-of-shell/what-shell.html
-
Linux-9 腳本要學(xué)好:
1力图、整體思路:
配置文件出現(xiàn)問(wèn)題(左端測(cè)序文件和右端測(cè)序文件不匹配)-->查看已比對(duì)好的.bam文件(正常大小以G為單位)步绸,發(fā)現(xiàn)出現(xiàn)幾k的文件-->由于兩個(gè)樣本的FQ雙端文件匹配錯(cuò)誤,導(dǎo)致.bam文件生成失敵悦健(幾k的.bam文件)-->將錯(cuò)誤的fq配置文件正常排序瓤介,重新配置文件(24個(gè)),再重新進(jìn)行比對(duì)赘那。
2刑桑、命令解析:
1)grep 'NT-2' config.mapping | cut -f 1 | cut -d "-" -f 1 | sort | uniq -c | grep -w 1 | awk '{print $2}' > onceid
: 從config.mapping提取含NT-2的文件,在對(duì)其切割(cut)募舟,指定第一列顯示(-f 1)祠斧,再對(duì)第一列以-
切割(-d"-")顯示第一列,再排序(sort)拱礁,去除重復(fù)出現(xiàn)的行(uniq)在行前顯示重復(fù)次數(shù)(-c)匹配只有重復(fù)出現(xiàn)一次的文件(grep -w 1)并輸出( awk '{print $2}' )琢锋,導(dǎo)入到onceid文件中。(出現(xiàn)過(guò)一次的文件需要剔除呢灶,因?yàn)橐粋€(gè)比對(duì)需要兩個(gè)fq文件)
2吴超、grep -v -f onceid wrong.sampleid | wc
: 從wrong.sampleid文件中查找onceid文件中的內(nèi)容(-f onceid wrong.sampleid),再反選(-v)即不是onceid的內(nèi)容填抬,再統(tǒng)計(jì)個(gè)數(shù)烛芬,結(jié)果為24個(gè)需要重新比對(duì)的文件(實(shí)際比對(duì)12次)
3、
grep -v -f onceid wrong.sampleid > tmp
mv tmp wrong.samlieid
: 將需要比對(duì)的文件導(dǎo)入到tmp并重命名為wrong.samlieid飒责。
4赘娄、sort -t "_" -k 1,1 fq2
: 以下劃線分割,第一個(gè)下劃線前為第一列宏蛉,下劃線后的內(nèi)容為下一列遣臼。指定排序?yàn)榉指詈蟮牡谝涣校?code>1,1:指定起始列和終止列都為第一列(第一列和第二列長(zhǎng)度可能不同,所以需要指定起始列和終止列)拾并。
Linux-10 文本處理:
grep
-f : 指定范本文件file,每一行是一個(gè)查找模式揍堰。空的file文件未指定查找模式嗅义。
-w : 只有完全符合該字的行才會(huì)被輸出
-c : 統(tǒng)計(jì)與wc命令一樣
-v : 匹配但是不打印出來(lái)
tr : 轉(zhuǎn)換文件中的字符
例:tr '\t' '\n' 把制表符換成換行符
cut -f : 輸出指定位置處的字節(jié)
如: cut -f 1, 31-32 , 40 info :
默認(rèn)以制表符為分隔屏歹,分割并打印出info文件的 第一列 第31列到32列 第40列
-d ‘;’ :指定分隔符(之碗;)
sed 's///g' : 替換分隔符
如:sed 's/蝙眶;/\t/g' : 將分隔符的分號(hào)換成\t
paste -s -d + | bc
-s 將每個(gè)文件合并成行而不是按行粘貼
-d 指定不同于空格或tab鍵的域分隔符。
| bc : 在前面指定表達(dá)式就會(huì)幫助你算出來(lái)
awk'{print $1}" tmp : 打印出第一列
linux-12 數(shù)據(jù)格 : http://www.reibang.com/p/b000a2f0679f
友情閱讀推薦:
- 強(qiáng)烈推薦參加生信技能樹(shù)(爆款入門(mén)培訓(xùn)課)全國(guó)巡講 褪那,課程詳情見(jiàn):https://mp.weixin.qq.com/s/Z9sdxgvFj0XJjYaW_5yHXg 各大城市均有開(kāi)課幽纷,隨時(shí)隨地報(bào)名式塌。
- 生信技能樹(shù)公益視頻合輯:學(xué)習(xí)順序是linux,r友浸,軟件安裝峰尝,geo,小技巧收恢,ngs組學(xué)武学!
B站鏈接:https://m.bilibili.com/space/338686099 - 學(xué)徒培養(yǎng)詳見(jiàn):https://mp.weixin.qq.com/s/3jw3_PgZXYd7FomxEMxFmw