— / 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
?
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态