Linux筆記及習(xí)題

Linux課程整理

1膊爪、學(xué)習(xí)資料

馬哥linux視頻逗噩,Linux 命令行與Shell腳本編程大全

2据块、系統(tǒng)認(rèn)知

看學(xué)習(xí)資料

3拓售、Shell基本命令

Shell的基本操作(shell就是一個(gè)翻譯官)

Shell為一命令解釋器(command interpreter)募书,將使用者的命令翻譯給核心處理绪囱;同時(shí)將核心處理結(jié)果翻譯給使用者。

通常由三部分組成:1.命令字锐膜,2.參數(shù)毕箍,3.操作對象;cmd [options][operation]

Shell prompt提示符:$:給一般使用者賬號(hào)使用道盏;#:給root(管理員)賬號(hào)使用而柑;

cursor光標(biāo),是指示鍵盤在命令行所輸入的位置荷逞;

carriage return回車媒咳,命令行讀進(jìn),是使用者告訴shell可以執(zhí)行命令行了种远;

Internal field separator(IFS)涩澡,域內(nèi)字段分隔符,包括space, tabnewline.

Shell工作原理坠敷,會(huì)依據(jù)IFS將command line所輸入的文字給拆解為“字段”(word)妙同,然后再針對特殊字符(meta)先作處理,最后再重組整行command line膝迎。

(1) 查看文件ls

ls -l #查看當(dāng)前目錄下的文件
ls -al #查看當(dāng)前目錄下的所有文件(包括隱藏文件)
ls -lh #查看當(dāng)前目錄下的文件粥帚,并顯示其大小(K,M,G等)

(2) 訪問文件cd

cd #change directory
cd .. #返回上一級(jí)
cd ~ #返回用戶主目錄
cd - #返回到來這之前的目錄
cd / #返回根目錄

(3)新建文件夾mkdir

mkdir dgc #在當(dāng)前文件夾下創(chuàng)建名為dgc的文件夾
mkdir file1 file2 file3 #創(chuàng)建3個(gè)平級(jí)目錄
mkdir file{1:3}  #同樣可以創(chuàng)建3個(gè)平級(jí)目錄
mkdir -p 1/2/3/4/5/6 #創(chuàng)建多層子目錄

(4) 刪除文件rmdir rm

rmdir dgc  #dgc為空目錄限次,不可刪除非空文件夾#
rmdir -p a/b/c/d #多級(jí)刪除文件夾
rm a  #刪除文件a,不可以刪除目錄a
rm file1 file2 file3  #刪除多個(gè)文件
rm -rf a1 #無論a1下是否有文件都將a1刪除(謹(jǐn)慎使用芒涡,linux刪除文件后不可逆)

(5) 創(chuàng)建文件touch

touch a.txt
touch file1 file2 file3 #同時(shí)創(chuàng)建多個(gè)文件

(6) 復(fù)制cp

cp src.c src.c.bak #復(fù)制src.c并重新命名為src.bak;
cp src.c a/src.c.bak #復(fù)制src.c到a目錄下并重新命名為src.bak卖漫;
cp -r a/ b/ #拷貝文件夾a及其里面的子文件夾到b费尽;

(7) 重命名或者移動(dòng)mv

mv src.c.bak src.bak #將src.c.bak改名為src.bak;
mv jeapdu.s a/ #將jeapdu.s文件移動(dòng)到目錄a中羊始;
mv a/jeapdu.s src #將目錄a文件夾下的jeapdu文件移動(dòng)到當(dāng)前目錄并改名為src旱幼;
mv a src #修改目錄名;
#一般情況下:不同級(jí)目錄為移動(dòng)突委,同級(jí)目錄為改名字

(8) tar命令

tar在Linux上是常用的打包柏卤、壓縮叹誉、加壓縮工具

參數(shù):
-c :create 建立壓縮檔案的參數(shù);
-x : 解壓縮壓縮檔案的參數(shù)闷旧;
-z : 是否需要用gzip壓縮长豁;
-v: 壓縮的過程中顯示檔案;
-f: 置頂文檔名忙灼,在f后面立即接文件名匠襟,不能再加參數(shù)

①將tgz文件解壓到指定目錄

tar -zxvf test.tgz -C #指定目錄

比如將/source/kernel.tgz解壓到 /source/linux-2.6.29 目錄

tar -zxvf /source/kernel.tgz -C /source/linux-2.6.29

②將整個(gè)/home/www/images 目錄下的文件全部打包為 /home/www/images.tar

tar -cvf /home/www/images.tar /home/www/images #僅打包,不壓縮
tar -zcvf /home/www/images.tar.gz /home/www/images #打包后该园,以gzip壓縮
tar -cvf ab.tar a b #將a和b文件壓縮到ab.tar
tar -xvf ab.tar #解壓縮
tar -tvf ab.tar #查看壓縮文件
tar -xvf ab.tar a #將ab.tar僅解壓a文件
tar -xvf ab.tar -C ss/ #將ab.tar文件解壓縮到ss目錄下
tar -zcvf ac.tar.gz ac.tar #將ac.tar壓縮并創(chuàng)建為ac.tar.gz
tar -jcvf ac.tar.bz2 ac.tar #將ac.tar壓縮并創(chuàng)建為ac.tar.bz2
tar -zxvf ac.tar.gz #解壓縮ac.tar.gz文件
tar -jxvf ac.tar.bz2 #解壓縮ac.tar.bz2文件

(9) 壓縮文件gzip bzip2 (源文件都會(huì)消失)

gzip aa.tar #壓縮aa.tar文件酸舍;
gunzip aa.tar.gz #解壓縮aa.tar.gz文件;
bzip2 ab.tar #壓縮ab.tar文件里初;
bunzip2 ab.tar.bz2 #解壓縮ab.tar.bz2文件啃勉;

(10) 查找文件

which #可定位可執(zhí)行文件所在目錄;
whereis #命令定位文件所在目錄:二進(jìn)制的双妨、源文件淮阐、幫助文檔;
whereis -m pwd #只查找?guī)椭臋n刁品;
whereis pwd #輸出3條:命令本身所在目錄泣特,源文件所在目錄,其幫助文件所在目錄挑随;
locate #基于本地?cái)?shù)據(jù)庫(每天需要更新一次状您,update)進(jìn)行查找 locate aa.tar.gz,不能查找新創(chuàng)建的文件兜挨;手動(dòng)更新數(shù)據(jù)庫sudo updated后膏孟,可以用locate進(jìn)行查找新創(chuàng)建的文件;
find #基于文件名在磁盤中查找拌汇,格式:“find 查找目錄 查找內(nèi)容” 
find ./ -name 'af*'

(11) 查看文件

head #查看文件最開始的幾行柒桑,默認(rèn)為10行,可使用-n 6指定查看前6行
head -n 6 filename
tail #查看文件最后幾行
less和more也可以用來查看文件担猛,尤其是文件內(nèi)容特別多的時(shí)候
more分屏打印文件幕垦,繼續(xù)往下看按空格鍵傅联,往前看shift+pageup
less也可以分屏打印文件
less -SN abc.txt #查看abc.txt文件,并進(jìn)行對齊輸出行號(hào)

(12) cat命令

cat filename #顯示整個(gè)文件 
cat > filename  #創(chuàng)建一個(gè)文件 
cat file1 file2 > file  #將幾個(gè)文件合并為一個(gè)文件
Cat <<END #可以輸入內(nèi)容疚察,再回車蒸走,繼續(xù)輸入內(nèi)容,直到我們輸入END貌嫡,輸入過程結(jié)束
Cat <<END >data/test.fa #將cat輸入的內(nèi)容存入data目錄下的test文檔中比驻,并保存為fa格式

(13)sort命令

sort為排序命令该溯,比較原則是從首字符開始,依次按ASCII碼值進(jìn)行比較别惦,最后將比較結(jié)果按升序輸出狈茉。

用法:sort [選項(xiàng)]... [文件]...
 或:sort [選項(xiàng)]... --files0-from=F

常用參數(shù)

 -k, --key=位置1[,位置2] #在位置1 開始一個(gè)key,在位置2 終止(默認(rèn)為行尾)
 -r, --reverse #逆序輸出排序結(jié)果
 -t, --field-separator=分隔符 #使用指定的分隔符代替非空格到空格的轉(zhuǎn)換
 -n, --numeric-sort #根據(jù)字符串?dāng)?shù)值比較
 -f, --ignore-case #忽略字母大小寫
 
 # Example
  sort -k 1,1 -k 2,2n test.bed #對第一列按照字符排序掸掸,第二列按照數(shù)值排序
  sort -k 1,1 -k 2,2nr test.bed #對第一列按照字符排序氯庆,第二列按照數(shù)值反向排序

(14) 其他命令

echo a #屏幕顯示a
ln -s a.txt b.txt #將a.txt軟鏈接到b.txt
pwd #輸出當(dāng)前路徑

4、文本編輯常用命令

(1) 取字符串

file=/dir1/dir2/dir3/my.file.txt
${file#*/}  #刪掉第一個(gè)/及其左邊的字符串:
dir1/dir2/dir3/my.file.txt
${file##*/} #刪掉最后一個(gè)/及其左邊的字符串
my.file.txt
${file#*.} #刪掉第一個(gè).及其左邊的字符串
file.txt
${file##*.} #刪掉最后一個(gè).及其左邊的字符串
txt
${file%/*} #刪掉最后一個(gè)/及其右邊的字符串
/dir1/dir2/dir3
${file%%/*} #刪掉第一個(gè)/及其右邊的字符串
(空值)
${file%.*} #刪掉最后一個(gè).及其右邊的字符串
/dir1/dir2/dir3/my.file
${file%%.*} #刪掉第一個(gè).及其右邊的字符串
/dir1/dir2/dir3/my

(2) vim編輯

vim一共有三種模式扰付,包括命令模式(Command mode)堤撵、輸入模式(Insert mode)和底線命令模式(Last line modle)

vim abc.txt #進(jìn)入abc.txt的編輯模式

i進(jìn)入輸入模式,Esc退出輸入模式羽莺,進(jìn)入命令模式实昨,:進(jìn)入底線命令模式

常用命令

i #進(jìn)入輸入模式刁卜,修改位置為光標(biāo)所在位置
a #進(jìn)入輸入模式之拨,修改位置為光標(biāo)下一位
I #進(jìn)入輸入模式吉挣,調(diào)到某一行行首
A #進(jìn)入輸入模式氯哮,調(diào)到某一行行尾
/find #向下查找
?find #向上查找
x #刪除光標(biāo)所在字符
10x #連續(xù)向后刪除10個(gè)字符
yy #復(fù)制當(dāng)前行税课,結(jié)合光標(biāo)侍匙、行數(shù)和p可以進(jìn)行多行的指定位置復(fù)制(eg 2yy然后p)
dd #刪除當(dāng)前行说莫,dd搭配p,重復(fù)刪除光標(biāo)所在行
u #撤銷
ctrl+r #退回
:%s/before/after/ #替換,也可用sed進(jìn)行操作(eg:sed -i 's/before/after/' file)
:wq && wq!?#保存和強(qiáng)制保存/覆蓋
:q && :q!?#退出和強(qiáng)制退出
:w new_file_name?#簡言之另存為,可保留源文件娘扩。

(3) grep命令

grep命令是一種強(qiáng)大的文本搜索工具旋膳,它能使用正則表達(dá)式搜索文本义图,并把匹配的行打印出來

常用參數(shù)

-i #匹配時(shí)忽略大小寫
-v #取沒有匹配的行
-w #精確匹配
-e #匹配多個(gè)內(nèi)容
-A #后面可加數(shù)字历筝,為after的意思
-B #后面可加數(shù)字,為before的意思
-C #指定輸出包括匹配到的前后多少行
-f #file,從file種獲得匹配的數(shù)據(jù)
-n #顯示行號(hào)
-c #統(tǒng)計(jì)匹配后的行數(shù)
--color #標(biāo)記匹配的內(nèi)容
-o #輸出匹配的內(nèi)容

(4)sed命令

sed工作流程:讀取-執(zhí)行命令-顯示榛鼎;

使用方式:

Sed [-n][-e] ‘command’ files

sed [-n] –f script files

參數(shù):

-n #禁止顯示所有輸入內(nèi)容蔫缸,只顯示經(jīng)過sed處理的行(常用);
-e #直接在命令列模式上進(jìn)行 sed 的動(dòng)作編輯,接要執(zhí)行的一個(gè)或者多個(gè)命令;
-f #執(zhí)行含有sed 動(dòng)作的文件 裙犹;
-r #sed 的動(dòng)作支持的擴(kuò)展正則(默認(rèn)基礎(chǔ)正則) 
-i #直接修改讀取的文件內(nèi)容,不輸出

作用區(qū)域:默認(rèn)情況下掺冠,sed命令會(huì)作用于文本數(shù)據(jù)的所有行,如果只想作用于某些行時(shí)缨叫,則需要使用在命令通過行號(hào)或者文本過濾的方式前指明作用區(qū)域琐簇。

行號(hào):m, +n表示從m行開始向下n行蘑秽,m~n表示從m行開始的每n行塑顺。

文本過濾:’ /pattern/ command’ 可以只在包含pattern的行中執(zhí)行命令,

命令:p復(fù)制挤牛,d刪除莹痢,i插入,a追加竞膳,c行替換诫硕,y字符轉(zhuǎn)換章办,w寫入新文件锉走,r讀取文件,i反向執(zhí)行藕届,s替換挪蹭,

(5)cut命令

cut命令可以處理列數(shù)據(jù),是一個(gè)選取命令休偶,可將文件種的每一行按照“字節(jié)”“字符”“字段”進(jìn)行剪切梁厉,并將這些選取好的數(shù)據(jù)輸出至標(biāo)準(zhǔn)輸出。cut的格式:cut –[n]b file踏兜;cut –c file懂算;cut –d[分隔符] –f[域] file。

常用參數(shù)

-d #指定分隔符
-f #指定列
-b #以字節(jié)為單位進(jìn)行切割
-c #以字符為單位進(jìn)行切割
-n #取消分割多字節(jié)字符庇麦,僅和-b標(biāo)志一起使用计技。
#Example
cut -b 1 text1.txt
cut -b 1.3.5 text1.txt
cut -b 1-5 text1.txt 等同于cut -b -5 test1.txt
cut -b 3- test1.txt
cut -nb 3 test2.txt
cut -c 1 test2.txt
cut -d : -f 1

(6)awk命令

在shell知識(shí)里,如果把一個(gè)文檔看做一張表山橄,那么一行就是一個(gè)記錄垮媒,一列就是一個(gè)域。awk是一門語言,按行處理數(shù)據(jù)睡雇,也就是按記錄處理文本的萌衬,是一個(gè)強(qiáng)大的文本分析工具。

其命令的基本方式:

awk [option] '{pattern + action}' {filenames} # sometims muti file is ok
awk [option] 'BEGIN{初始代碼} {循環(huán)代碼} END{最后代碼}' filename

常見變量

FS #字段分隔符(默認(rèn)是任何空格)
NR #行號(hào)它抱,從1開始
NF #一條記錄的字段數(shù)目
$n #當(dāng)前記錄的第n個(gè)字段秕豫,字段間由FS分隔
$0 #完整的輸入記錄

常見的基本用法(參考awk相關(guān)書籍)

5、軟件安裝

在生物信息學(xué)領(lǐng)域观蓄,現(xiàn)在用的最多的是conda進(jìn)行軟件安裝

(1) 下載miniconda

wget –c <https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.5.4-Linux-x86_64.sh>

(2) 安裝miniconda

bash [Miniconda3-4.5.4-Linux-x86_64.sh](https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.5.4-Linux-x86_64.sh)  #(不要將conda加入到環(huán)境變量里面混移,以免污染配置好的環(huán)境)

(3) 啟動(dòng)miniconda

source ~/miniconda3/bin/activate

(4) 配置conda的環(huán)境

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/bioconda/ #(非常重要)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

(5) 查看conda的配置文件

vim ~/.condarc

(6) 安裝軟件(可以在bioconda.github.io搜索)

conda install -y bwa(samtools=1.8)

(7) 創(chuàng)建新的環(huán)境

conda create -n chipseq python=2

(8) 啟動(dòng)和退出chipseq的環(huán)境

conda activate chipseq
conda deactivate

(9) 刪除環(huán)境

conda remove –n chipseq –all #或者
$rm –rf ~/miniconda3/envs/chipseq/

6、環(huán)境變量和局部變量

(1) 查看環(huán)境變量

Env或者export

(2) 顯示變量值:echo 變量名侮穿,變量名之前一定要有歌径,echo才能將變量名替換成實(shí)際變量值

echo $PATH

(3) 配置環(huán)境變量

#第一種方法
export PATH=/usr/local/webserver/mysql/bin:$PATH ## 先添加
echo $PATH        ### 再查看
#第二種方法
vim ~/.bashrc
export PATH="/home/vip5/soft/gatk/bin:$PATH" #在最后添加
source ~/.bashrc

習(xí)題

fasta和fastq文件

  1. 統(tǒng)計(jì)reads_1.fq 文件中共有多少條序列信息
reads_1.fq |paste - - - - |wc
  1. 輸出所有的reads_1.fq文件中的標(biāo)識(shí)符(即以@開頭的那一行)
less -S reads_1.fq |grep ^@|wc
less -S reads_1.fq |paste - - - - |cut -f 1|wc
  1. 輸出reads_1.fq文件中的 所有序列信息(即每個(gè)序列的第二行)
less -S reads_1.fq |paste - - - - |cut -f 2
  1. 輸出以‘+’及其后面的描述信息(即每個(gè)序列的第三行)
less -S reads_1.fq |paste - - - - |cut -f 3
  1. 輸出質(zhì)量值信息(即每個(gè)序列的第四行)
less -S reads_1.fq |paste - - - - |cut -f 4
  1. 計(jì)算reads_1.fq 文件含有N堿基的reads個(gè)數(shù)
less -S reads_1.fq |paste - - - - |cut -f 2|grep N|wc
  1. 統(tǒng)計(jì)文件中reads_1.fq文件里面的序列的堿基總數(shù)
reads_1.fq |paste - - - - |cut -f 2|grep -o [ATCGN]|wc
  1. 計(jì)算reads_13.fq 所有的reads中N堿基的總數(shù)
less -S reads_1.fq |paste - - - - |cut -f 2|grep -o N|wc
  1. 統(tǒng)計(jì)reads_1.fq 中測序堿基質(zhì)量值恰好為Q20的個(gè)數(shù)
less -S reads_1.fq |paste - - - - |cut -f 2|grep -o B|wc
  1. 統(tǒng)計(jì)reads_1.fq 中測序堿基質(zhì)量值恰好為Q30的個(gè)數(shù)
less -S reads_1.fq |paste - - - - |cut -f 2|grep -o F|wc
  1. 統(tǒng)計(jì)reads_1.fq 中所有序列的第一位堿基的ATCGN分布情況
less -S reads_1.fq |paste - - - - |cut -f 2|grep -o ^[ATCGN]|sort|uniq -c
  1. 將reads_1.fq 轉(zhuǎn)為reads_1.fa文件(即將fastq轉(zhuǎn)化為fasta)
less -S reads_1.fq|paste - - - -|cut -f1,2|tr "\t" "\n"|tr "@" ">" >read_1.fa
  1. 統(tǒng)計(jì)上述reads_1.fa文件中共有多少條序列
awk 'NR%2==0{print $0}' read_1.fa |wc
  1. 計(jì)算reads_1.fa文件中總的堿基序列的GC數(shù)量
less -S read_1.fa |paste - - |cut -f 2|grep -o [GC]|wc
  1. 刪除 reads_1.fa文件中的每條序列的N堿基
less -S read_1.fa |paste - - |cut -f 2|sed 's/N//'
tr -d N read_1.fa
  1. 刪除 reads_1.fa文件中的含有N堿基的序列
awk 'NR%2==0{print $0}' read_1.fa|grep -v N|tr “\t” “\n”
cat read_1.fa|paste - -|grep -v N|tr “\t” “\n”
  1. 刪除 reads_1.fa文件中的短于65bp的序列
awk 'NR%2==0{print $0}' read_1.fa|awk 'length($0)>64{print $0}'
cat read_1.fa|paste - -| awk 'length($0)>64{print $0}'|tr '\t' '\n'
  1. 刪除 reads_1.fa文件每條序列的前后五個(gè)堿基
awk 'NR%2==0{print $0}' read_1.fa|sed 's/^.....//'|sed 's/.....$//'

cat read_1.fa|paste - -|cut -f 1 >reads_1_1.fa
awk 'NR%2==0{print $0}' read_1.fa|sed 's/^.....//'|sed 's/.....$//' >reads_1_2.fa
paste reads_1_1.fa reads_1_2.fa|tr '\t' '\n' >reads_1_3.fa

sed -n '1~4 p' reads_1.fq | tr "@" ">" >read_1_1.fa
sed -n '2~4 p' reads_1.fq | sed 's/^.\{5\}//g' | sed 's/.\{5\}$//g' > read_1_2.fa
paste read_1_1.fa read_1_2.fa | tr '\t' '\n' > reads_1.fa

less -S read_1.fa |awk '{if($0~/^>/)print $0;else print substr($0,6,length($0)-10)}'|less -S

19)刪除 reads_1.fa文件中的長于125bp的序列

awk 'NR%2==0{print $0}' read_1.fa|awk 'length($0)<125{print $0}'
cat read_1.fa|paste - -| awk 'length($0)<125{print $0}'|tr '\t' '\n
  1. 查看reads_1.fq 中每條序列的第一位堿基的質(zhì)量值的平均值
perl -lane '{ord()}' tmp.fa

sam文件和bam文件

  1. 統(tǒng)計(jì)共多少條reads(pair-end reads這里算一條)參與了比對參考基因組
cat tmp.sam |grep -v ^@|wc
  1. 統(tǒng)計(jì)共有多少種比對的類型(即第二列數(shù)值有多少種)及其分布。
cat tmp.sam |grep -v ^@|cut -f 2|sort |uniq –c 
  1. 篩選出比對失敗的reads亲茅,看看序列特征回铛。
less tmp.sam |awk '$6=="*"{print $0}' >tmp_unmap.sam
  1. 比對失敗的reads區(qū)分成單端失敗和雙端失敗情況,并且拿到序列ID
less -S tmp.sam |awk '$6=="*"{print $1}'|sort|uniq -c|grep -W 1 #單端
less -S tmp.sam |awk '$6=="*"{print $1}'|sort|uniq -c|grep -W 2 #雙端
  1. 篩選出比對質(zhì)量值大于30的情況(看第5列)
less -S tmp.sam |awk '$5>30{print $0}'
  1. 篩選出比對成功克锣,但是并不是完全匹配的序列
less -S tmp.sam |awk '$6~"[IDNSHPX]"{print $0}' 
less -S tmp.sam |awk '$6!="*"{print $6}'|grep [IDNSHPX]
  1. 篩選出inset size長度大于1250bp的 pair-end reads
less -S tmp.sam|awk '$9>1250{print $0}'
  1. 統(tǒng)計(jì)參考基因組上面各條染色體的成功比對reads數(shù)量
less -S tmp.sam |grep  '^@'|grep 'LN'
  1. 篩選出原始fq序列里面有N的比對情況
less -S tmp.sam |grep -v '^@'|awk '{print $10}'|grep N
less -S tmp.sam |grep -v '^@'|awk '$10~"N"{print$10}'
  1. 篩選出原始fq序列里面有N茵肃,但是比對的時(shí)候卻是完全匹配的情況
less -S tmp.sam |grep -v '^@'|awk '$6!~"[IDNSHPX]" && $$6!="*" && $10~"N"{print $0}'|less -S
  1. sam文件里面的頭文件行數(shù)
less -S tmp.sam|grep -c '^@'
  1. sam文件里每一行的tags個(gè)數(shù)一樣嗎
less -S tmp.sam|cut -f 12-20|less -S
  1. sam文件里每一行的tags個(gè)數(shù)分別是多少個(gè)
less -S tmp.sam |grep -v '^@'|awk '{print NF}'|sort |uniq -c #結(jié)果減去11
  1. sam文件里記錄的參考基因組染色體長度分別是?
less -S tmp.sam |grep  '^@'|grep 'LN'
  1. 找到比對情況有insertion情況的
less -S tmp.sam |grep -v '^@'|awk '$6~"I"{print$0}'
  1. 找到比對情況有deletion情況的
less -S tmp.sam |grep -v '^@'|awk '$6~"D"{print$0}'

17)取出位于參考基因組某區(qū)域的比對記錄袭祟,比如 5013到50130 區(qū)域

less -S tmp.sam |grep -v '^@'|awk '$8>5013 && $8<50130{print $0}'|less -S
  1. 把sam文件按照染色體以及起始坐標(biāo)排序
sort -k 3,3 -k 4,4n tmp.sam|less -S #對第3列進(jìn)行字母排序后對第4列進(jìn)行數(shù)值排序(升序)
  1. 找到 102M3D11M 的比對情況验残,計(jì)算其reads片段長度。
less -S tmp.sam |grep -v '^@'|grep 102M3D11M|cut -f 10|wc
  1. 安裝samtools軟件后使用samtools軟件的各個(gè)功能嘗試把上述題目重新做一遍榕酒。

生信人的linux考試

一胚膊、在任意文件夾下面創(chuàng)建形如 1/2/3/4/5/6/7/8/9 格式的文件夾系列。

mkdir -p 1/2/3/4/5/6/7/8/9

二想鹰、在創(chuàng)建好的文件夾下面紊婉,比如我的是 /Users/jimmy/tmp/1/2/3/4/5/6/7/8/9 ,里面創(chuàng)建文本文件 me.txt

touch /Users/jimmy/tmp/1/2/3/4/5/6/7/8/9/me.txt

三辑舷、在文本文件 me.txt 里面輸入內(nèi)容:

Go to: http://www.biotrainee.com/
I love bioinfomatics.
And you ?

vim me.txt
Go to: http://www.biotrainee.com/
I love bioinfomatics.
And you ?
:wq

四喻犁、刪除上面創(chuàng)建的文件夾 1/2/3/4/5/6/7/8/9 及文本文件 me.txt

rm -r 1/

五、在任意文件夾下面創(chuàng)建 folder1~5這5個(gè)文件夾何缓,然后每個(gè)文件夾下面繼續(xù)創(chuàng)建 folder1~5這5個(gè)文件夾

mkdir -p folder{1..5}/folder{1..5}

六肢础、在第五題創(chuàng)建的每一個(gè)文件夾下面都 創(chuàng)建第二題文本文件 me.txt ,內(nèi)容也要一樣碌廓。

echo folder{1..5}/folder{1..5}|xargs -n 1|while read id;do cp me.txt $id; done

七传轰,再次刪除掉前面幾個(gè)步驟建立的文件夾及文件

rm -r *

八、下載 http://www.biotrainee.com/jmzeng/igv/test.bed 文件谷婆,后在里面選擇含有 H3K4me3 的那一行是第幾行慨蛙,該文件總共有幾行辽聊。

wget http://www.biotrainee.com/jmzeng/igv/test.bed
less -S test.bed|grep -n 'H3K4me3'
wc test.bed

九、下載 http://www.biotrainee.com/jmzeng/rmDuplicate.zip 文件期贫,并且解壓跟匆,查看里面的文件夾結(jié)構(gòu)

wget http://www.biotrainee.com/jmzeng/rmDuplicate.zip
unzip rmDuplicate.zip 
tree rmDuplicate

十、打開第九題解壓的文件通砍,進(jìn)入 rmDuplicate/samtools/single 文件夾里面玛臂,查看后綴為 .sam 的文件,搞清楚 生物信息學(xué)里面的SAM/BAM 定義是什么封孙。

cd rmDuplicate/samtools/single
ls *.sam

sam文件為fastq比對后得到的文件

bam文件為sam文件的二進(jìn)制格式迹冤,文件較小,易于儲(chǔ)存

十一敛瓷、安裝 samtools 軟件

conda install -y samtools

十二叁巨、打開 后綴為BAM 的文件斑匪,找到產(chǎn)生該文件的命令呐籽。

samtools view tmp.rmdup.bam
samtools view -bS abc.sam -o abc.bam

十三題、根據(jù)上面的命令蚀瘸,找到我使用的參考基因組 /home/jianmingzeng/reference/index/bowtie/hg38具體有多少條染色體狡蝶。

less -S /home/jianmingzeng/reference/index/bowtie/hg38|cut -f 1|sort|uniq

十四題、上面的后綴為BAM 的文件的第二列贮勃,只有 0 和 16 兩個(gè)數(shù)字贪惹,用 cut/sort/uniq等命令統(tǒng)計(jì)它們的個(gè)數(shù)。

less -S .bam|cut -f 2|grep -w ['0'16']|sort|uniq -c

十五題寂嘉、重新打開 rmDuplicate/samtools/paired 文件夾下面的后綴為BAM 的文件奏瞬,再次查看第二列,并且統(tǒng)計(jì)泉孩。

cd rmDuplicate/samtools/paired` 
samtools view tmp.rmdup.bam |wc
samtools view tmp.sorted.bam |wc

十六題硼端、下載 http://www.biotrainee.com/jmzeng/sickle/sickle-results.zip 文件,并且解壓寓搬,查看里面的文件夾結(jié)構(gòu)珍昨, 這個(gè)文件有2.3M,注意留心下載時(shí)間及下載速度句喷。

wget http://www.biotrainee.com/jmzeng/sickle/sickle-results.zip
unzip sickle-results.zip
tree sickle-results

十七題镣典、解壓 sickle-results/single_tmp_fastqc.zip 文件,并且進(jìn)入解壓后的文件夾唾琼,找到 fastqc_data.txt 文件兄春,并且搜索該文本文件以 >>開頭的有多少行?

cd sickle-results/
unzip single_tmp_fastqc.zip
cd single_tmp_fastqc
less -S fastqc_data.txt|grep -c ^'>>'

十八題锡溯、下載 http://www.biotrainee.com/jmzeng/tmp/hg38.tss 文件赶舆,去NCBI找到TP53/BRCA1等自己感興趣的基因?qū)?yīng)的 refseq數(shù)據(jù)庫 ID肴裙,然后找到它們的hg38.tss 文件的哪一行。

wget http://www.biotrainee.com/jmzeng/tmp/hg38.tss
TP53的基因ID:NM_000546,NM_001126112,NM_001126113,NM_001126114,NM_001126115,NM_001126116,NM_001126117,NM_001126118,NM_001276695
less -S hg38.tss|grep -n -e NM_000546 -e NM_001126112

十九題涌乳、解析hg38.tss 文件蜻懦,統(tǒng)計(jì)每條染色體的基因個(gè)數(shù)。

less -S hg38.tss|cut -f 2|grep -v '_'|sort|uniq -c

二十題夕晓、解析hg38.tss 文件宛乃,統(tǒng)計(jì)NMNR開頭的熟練,了解NMNR開頭的含義蒸辆。

less -S hg38.tss|grep -c ^'NM'
less -S hg38.tss|grep -c ^'NR'

NM為轉(zhuǎn)錄本并可以翻譯成蛋白

NR為轉(zhuǎn)錄本但不能翻譯成蛋白

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末征炼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子躬贡,更是在濱河造成了極大的恐慌谆奥,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拂玻,死亡現(xiàn)場離奇詭異酸些,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)檐蚜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門魄懂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闯第,你說我怎么就攤上這事市栗。” “怎么了咳短?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵填帽,是天一觀的道長。 經(jīng)常有香客問我咙好,道長篡腌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任敷扫,我火速辦了婚禮哀蘑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘葵第。我一直安慰自己绘迁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布卒密。 她就那樣靜靜地躺著缀台,像睡著了一般。 火紅的嫁衣襯著肌膚如雪哮奇。 梳的紋絲不亂的頭發(fā)上膛腐,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天睛约,我揣著相機(jī)與錄音,去河邊找鬼哲身。 笑死辩涝,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的勘天。 我是一名探鬼主播怔揩,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼脯丝!你這毒婦竟也來了商膊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤宠进,失蹤者是張志新(化名)和其女友劉穎晕拆,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體材蹬,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡实幕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赚导。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茬缩。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赤惊,死狀恐怖吼旧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情未舟,我是刑警寧澤圈暗,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站裕膀,受9級(jí)特大地震影響员串,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜昼扛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一寸齐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抄谐,春花似錦渺鹦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至浦箱,卻和暖如春吸耿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工口猜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衔掸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓妆棒,卻偏偏與公主長得像是偷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子募逞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345