生信(七)生信中常用命令

2021-08-31 18:35:59 字數 3131 閱讀 3374

今天將生信工作中的一些常用命令記錄(分享)如下:

(以後會不定期更新)

轉換dos/windows格式的bed檔案為unix格式

(說明:我們拿到的bed檔案時常是客戶在windows系統下編輯好的,其行尾是\r\n,在進行ngs分析前最好將其轉換為unix風格的行尾\n。)

可以看出上面的dos.bed.txt是乙個dos風格(^mkatex parse error: can't use function '\r' in math mode at position 3: ,即\̲r̲\n結尾)的檔案。要想轉換成u…,即\n結尾)的檔案,當然可以用dos2unix命令來完成:

可以看到轉換成功。問題在於dos2unix命令往往不是系統預設安裝的,你要自行安裝後才可以使用。乙個替代的方法是用sed命令。

可以看到,轉換效果是一樣的。

批量刪除乙個目錄及其子目錄下的bam檔案

合併兩個fastq檔案

cat fastq1 fastq2 > merged_fastq
獲取fastq檔名字首(假設fastq檔名是test.r1.fq.gz,我們想得到其字首test)

your_string | cut –d. –f1
your_string | sed 『s/\..*//』
your_string | awk –f. 『』
或者(如果是在指令碼中實現這一功能的話):

利用shell中的字串變數刪除功能$來實現。

打包並壓縮專案檔案

tar zcvf tar_file origin_files
列印行號

輸出指定的行數(比如第666行)

sed –n 『666p;666d』 your_file
awk 『nr==666』 your_file
統計不重複的基因個數(假設基因名在第一列)

awk 『』 your_file | sort -u | wc –l
或者

awk 『 end 』 your_file
找出表達量最高的基因(假設基因名在第一列,表達量資料在第四列)

sort –k4,4nr your_file | head -1 | cut –f1
或者(如果僅僅是找出最高表達量的基因,下面的方法更快!因為它不對所有記錄排序):

awk 『} end 』 your_file
列印最後一列

awk 『』 your_file
反向互補序列(如」agctn」的反向互補序列應該是」nagct」)

your_string | tr 『agctnagctn』 『tcgantcgan』 | rev
或者:

your_string | sed 『y/agctnagctn/tcgantcgan/』 | rev
求取某一列平均值(假設求第四列的平均值)

awk 『 end 』 your_file
如果是壓縮檔案,則需利用zcat來生成「流」:

zcat your_zipped_file | awk 『 end 』
獲取指令碼檔案所在目錄的絕對路徑(假設你有乙個指令碼test.sh,你想在該指令碼裡寫幾行**獲取test.sh所在目錄的絕對路徑)

對bed檔案排序(假設依次按照前三列進行排序)

sort –k1,1v –k2,2n –k3,3n unsort.bed > sort.bed
最後提一句:從上面的諸多例子中,我們可以看出,sed與awk的威力。它們與grep並稱linux下的「三劍客」,牛叉哄哄!

生信中常用的linux命令01

文字編輯命令 rm 刪除資料夾 檔案 ls 檢視檔案目錄 ls a 檢視所有檔案包括隱藏 ll 列出所有檔案包括許可權等內容 新建檔案,開啟winscp並重新整理後可看到 touch example.txt 刪除檔案 rm example.txt 備份檔案 cp 原檔案 備份檔案 例 備份.bash...

vi中常用命令

vi命令模式中可用的移動鍵 h 將游標向左移乙個字元 j 將游標向下移乙個字元 k 將游標向上移乙個字元 l 將游標向右移乙個字元 w 將游標向前移乙個單詞 b 將游標向後移乙個單詞 e 將游標移到下乙個單詞之後 0 將游標移到行首 將游標移到行末 將游標移到下一句句首 將游標移到上一句句首 將游標...

MySql中常用命令

mysql中常用命令 show databases 顯示資料庫 create database name 建立資料庫 use databasename 選擇資料庫 drop database name 直接刪除資料庫,不提醒 show tables 顯示表 describe tablename 表的...