Seqtk植锉、Seqkit兩個處理fa/fq神器的學習記錄

Seqtk

安裝 # Conda也可

 git clone https://github.com/lh3/seqtk
    cd seqtk
    make   

1.將fastq 文件轉(zhuǎn)換成fasta 文件

seqtk seq -A input.fastq  > output.fasta

2.得到反向互補序列

seqtk seq -Ar input.fastq > output.fasta

3.seqtk comp: 得到fastq/fasta 文件的堿基組成
(輸出格式:序列id 序列長度 A C G T )

seqtk comp in.fa > out.fa

4.subseq 根據(jù)name.list(不帶>符號)提取子序列 -l可設(shè)定輸出的每行長度

seqtk subseq -l 40 B1_NR100nl.fasta name.list > out.fa

5.隨機抽取序列,按照比例或者數(shù)量 -s設(shè)定隨機種子,便于重復(fù)

seqtk sample -s 10 test.fq 0.4 #比例
seqtk sample -s 10 test.fq 100 #數(shù)量

6.重命名 會將序列id變?yōu)閺?到n....

seqtk rename in.fa <前綴> > out.fa

7..fastq轉(zhuǎn)換為fasta,支持壓縮格式

seqtk seq -a in.fq.gz > out.fa.gz

8.使用Phred算法從兩端修剪低質(zhì)量的堿基:

  seqtk trimfq in.fq > out.fq

9.從每個讀數(shù)的左端修剪5bp,從右端修剪10bp

  seqtk trimfq -b 5 -e 10 in.fa > out.fa

10.合并兩個序列,通常我們Illunima雙端測序會得到兩個文件R1.fq.gz和R2.fq.gz豺妓,這個命令就是幫助怎么完美實現(xiàn)兩兩配對

$seqtk mergefa

Usage: seqtk mergefa [options] <in1.fa> <in2.fa># 合并兩個的FASTA/Q files

Options: -q INT   quality threshold [0]
         -i       take intersection#取交集
         -m       convert to lowercase when one of the input base is N
         -r       pick a random allele from het
         -h       suppress hets in the input
  1. cutN 去掉序列中的N/或者查看N所在的位置信息(-n 指定N的最小長度) -g 只打印出位置信息
Usage:   seqtk cutN [options] <in.fa>

Options: -n INT    min size of N tract [1000]
         -p INT    penalty for a non-N [10]
         -g        print gaps only, no sequence

Seqkit

這個軟件真的feel good,現(xiàn)有的輪子就不用再去造了,只記錄一些常用的小命令琳拭,后續(xù)用到再進行更新训堆,大家可以去原網(wǎng)頁學習完整教程,點Here
1.seq子命令 讀白嘁,換, 查看類型,統(tǒng)計基本信息

seqkit seq hairpin.fa.gz #查看

cat in.fa | seqkit stats #自動檢測類型并給出統(tǒng)計信息
file  format  type  num_seqs  sum_len  min_len  avg_len  max_len
-     FASTA   RNA          1       11       11       11       11
seqkit stats *.f{a,q}.gz -T | csvtk pretty -t #可以統(tǒng)計多個fa/fq信息坑鱼,結(jié)果形式更加友好
#  -j 參數(shù)會并行運算更快速度
seqkit seq hairpin.fa.gz -n #打印序列ID全名
seqkit seq hairpin.fa.gz -n  -i #只打印ID
seqkit seq hairpin.fa.gz -n -i --id-regexp ...  #通過正則去打印ID中內(nèi)容(適用于所有的子命令)
seqkit seq hairpin.fa.gz -s -w 0 #只打印序列(全局標志-w定義輸出行寬,0表示不換行)
seqkit seq reads_1.fq.gz -w 0 #轉(zhuǎn)換多行fq為單行fq
seqkit seq hairpin.fa.gz -r -p #反向互補
echo -e ">seq\nACGT-ACTGC-ACC" | seqkit seq -g -u #移除gap
cat hairpin.fa | seqkit seq -m 100 -M 1000 | seqkit stats #過濾序列長度并進行統(tǒng)計
  1. subseq子命令
前12堿基
$ zcat hairpin.fa.gz | seqkit subseq -r 1:12
后12堿基
zcat hairpin.fa.gz | seqkit subseq -r -12:-1
過濾前后12堿基
zcat hairpin.fa.gz | seqkit subseq -r 13:-13
通過gtf文件得到序列
seqkit subseq --gtf t.gtf t.fa
通過bed文件得到序列并移除重復(fù)序列
seqkit subseq --bed Homo_sapiens.GRCh38.84.bed.gz --chr 1 hsa.fa  | seqkit rmdup > chr1.bed.rmdup.fa
  1. sliding
sliding sequences, circular genome supported
Usage:
  seqkit sliding [flags]

Flags:
  -C, --circular-genome   circular genome.
  -g, --greedy            greedy mode, i.e., exporting last subsequences even shorter than windows size
  -s, --step int          step size
  -W, --window int        window size

4.faidx (類似samtools中的faidx)

Usage:
  seqkit faidx [flags] <fasta-file> [regions...]

Flags:
  -f, --full-head     print full header line instead of just ID. New fasta index file ending with .seqkit.fai will be created
  -h, --help          help for faidx
  -i, --ignore-case   ignore case
  -r, --use-regexp    IDs are regular expression. But subseq region is not suppored here.

seqkit faidx tests/hairpin.fa hsa-let-7a-1 hsa-let-7a-2  #提取指定序列  -f 輸出ID全名 1:10 輸出相應(yīng)位置序列

5.fq轉(zhuǎn)換fa

seqkit fq2fa reads_1.fq.gz -o reads_1.fa.gz

6.將FASTA/Q轉(zhuǎn)換為表格格式权薯,并提供各種信息姑躲,
如序列長度 GC

$ seqkit fx2tab hairpin.fa.gz -l -g -n -i -H | head -n 4 | csvtk -t -C '&' pretty
#name       seq   qual   length   GC
cel-let-7                99       43.43
cel-lin-4                94       54.26
cel-mir-1                96       40.62

#兩種形式轉(zhuǎn)換
zcat hairpin.fa.gz | seqkit fx2tab | seqkit tab2fx

#按照長度排列序列
 seqkit sort -l hairpin.fa.gz

#得到前1000條reads
 seqkit fx2tab hairpin.fa.gz | head -n 1000 | seqkit tab2fx
  1. grep序列
zcat hairpin.fa.gz | seqkit grep -r -p ^hsa #提取ID開頭為hsa的reads  -v取想反
zcat hairpin.fa.gz | seqkit grep -f list > new.fa #根據(jù)list取子集
cat hairpin.fa.gz | seqkit grep -s -i -p aggcg #提取序列里有AGGCG的reads  -m 允許誤配的數(shù)量
zcat hairpin.fa.gz | seqkit grep -s -r -i -p TT[CG]AA  #帶有模糊堿基的序列匹配    -R 1:30取前30 個堿基

8.duplicate

 cat tests/hairpin.fa | seqkit head -n 1 \
    | seqkit duplicate -n 2  #重復(fù)序列2次 

9.rmdup

移除重復(fù)序列 by id/name/sequence

Usage:
  seqkit rmdup [flags]

Flags:
  -n, --by-name                by full name instead of just id
  -s, --by-seq                 by seq
  -D, --dup-num-file string    file to save number and list of duplicated seqs
  -d, --dup-seqs-file string   file to save duplicated seqs
  -h, --help                   help for rmdup
  -i, --ignore-case            ignore case
  1. sample

zcat hairpin.fa.gz | seqkit sample -p 0.1 -o sample.fa.gz #按照比例取序列
 zcat hairpin.fa.gz | seqkit sample -n 1000 -o sample.fa.gz #按照數(shù)量
  1. rename
cat in.fa | less  #和seqtk中rename的區(qū)別是前者會從1到n重新排序,后者是對后來重復(fù)的內(nèi)容加_2到_n的后綴
>a comment
acgt
>b comment of b
ACTG
>a_2 a comment
aaaa

OK,相信大家應(yīng)該體會到這倆個軟件的強大之處了盟蚣,學好會省去你不少的time快去練習吧~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末黍析,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子屎开,更是在濱河造成了極大的恐慌阐枣,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奄抽,死亡現(xiàn)場離奇詭異蔼两,居然都是意外死亡,警方通過查閱死者的電腦和手機逞度,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門额划,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人档泽,你說我怎么就攤上這事俊戳。” “怎么了馆匿?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵抑胎,是天一觀的道長。 經(jīng)常有香客問我渐北,道長阿逃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任赃蛛,我火速辦了婚禮恃锉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘呕臂。我一直安慰自己淡喜,他們只是感情好,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布诵闭。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疏尿。 梳的紋絲不亂的頭發(fā)上瘟芝,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音褥琐,去河邊找鬼锌俱。 笑死,一個胖子當著我的面吹牛敌呈,可吹牛的內(nèi)容都是我干的贸宏。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼磕洪,長吁一口氣:“原來是場噩夢啊……” “哼吭练!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起析显,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鲫咽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后谷异,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體分尸,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年歹嘹,在試婚紗的時候發(fā)現(xiàn)自己被綠了箩绍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡尺上,死狀恐怖材蛛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情尖昏,我是刑警寧澤仰税,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站抽诉,受9級特大地震影響陨簇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜迹淌,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一河绽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧唉窃,春花似錦耙饰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽廷痘。三九已至,卻和暖如春件已,著一層夾襖步出監(jiān)牢的瞬間笋额,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工篷扩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留兄猩,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓鉴未,卻偏偏與公主長得像枢冤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子铜秆,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355