一、序列操作:
1.取反向序列
seqkit seq test.fa -r > test_re.fa
2.取互補序列
seq test.fa -p > test_com.fa
3.取反向互補序列
seqkit seq test.fa -r -p > test_re_com.fa
4.DNA序列轉換為RNA序列
seqkit seq test.fa --nda2rna > test_rna.fa
5.RNA序列轉換為DNA序列
seqkit seq test.fa rna2dna > test_dna.fa
6.將序列以小寫字母的形式輸出
seqkit seq test.fa -l > test_lower.fa
7.將序列以大寫字母的形式輸出
seqkit seq test.fa -u > test_upper.fa
8.指定每行序列的輸出長度(為0的話,代表為一整行,默認的輸出 長度是60個鹼基)
seqkit seq test.fa -w 10 > test_10.fa (指定序列的長度為10)
9.將多行序列轉換為一行序列
seqkit seq test.fa -w 0 > test_w.fa
10.只輸出序列
seqkit seq test.fa -s -w 0 > test_seq.fa
11.將只輸出的序列的,指定每行輸出的鹼基數
seqkit seq test_seq.fa -s -w 40 > test_seq40.fa
注意10,11的微妙之處
11,12也可以一步完成:
seqkit seq test.fa -s -w 20 -o test_20.fa
二、Fasta/q之間以及與tab格式互換
10.將fataq文件轉化為fasta格式.
seqkit seq fq2fa test.fq -o test.fa
11.將fasta格式轉化為tab格式
seqkit fx2tab test.fa > test_tab.fa (沒有seq參數)
三、序列信息統計
1.序列鹼基含量
seqkit fx2tab -l -g -n -i -H test..fa (這些參數組合起來比較好看)
2.序列長度的整體分布統計
seqkit stat test.fa
seqkit grep [flags]
參數:
-n, --by-name
匹配整個序列的名字,包含deion部分,而不是序列id。
-s, --by-seq
匹配序列
-d, --degenerate
pattern/motif 包含簡並鹼基
-i, --ignore-case
忽略大小寫
-v, --invert-match
輸出不匹配此模式的內容
-p,
匹配模式,支持連續寫多個模式,匹配任一模式即輸出。如-p ^ATG -p TAA$。注意該功能僅能正向匹配,不能實現對互補鏈匹配。
-f, --pattern-file string
支持匹配模式寫到一個文件中,如要提取的序列ID。
-R, --region string
匹配位置選擇。e.g 1:12 for first 12 bases, -12:-1 for last 12 bases
-r, --use-regexp
使用正則表達式,必須加入此參數,如^匹配首端。同-p聯合使用。
舉例:
seqkit grep -s -r -i -p ^atg cds.fa#選取有起始密碼子的序列
seqkit grep -f list test.fa > new.fa#根據ID提取序列
seqkit grep -s -d -i -p TTSAA#簡並鹼基使用。S 代表C or G.
seqkit grep -s -R 1:30 -i -r -p GCTGG##匹配限定到某區域
五、motif定位
對grep的拓展,可以正反鏈同時匹配,輸出匹配的位置。
seqkit locate [flags]
參數:
-d, --degenerate
pattern/motif contains degenerate base
-i, --ignore-case
ignore case
-P, --only-positive-strand
only search at positive strand
-p, --pattern value
search pattern/motif
-f, --pattern-file string
pattern/motif file (FASTA format)
舉例:
seqkit locate -i -d -p AUGGACUN test.fa
輸出結果:
seqID
patternName
pattern
strand
start
end
matched
cel-mir-58a
AUGGACUN
AUGGACUN
81
88
AUGGACUG
ath-MIR163
AUGGACUN
AUGGACUN
122
129
AUGGACUC
六、多個序列文件比較尋找相同的序列或者ID相同的序列
seqkit common [flags]
參數:
-n, --by-name
匹配整個序列的名字,包含deion部分,而不是序列id
-s, --by-seq
match by sequence
-i, --ignore-case
ignore case
-m, --md5
use MD5 reduce memory usage
舉例:
1、By ID (default,>后面,空格之前的名字)輸出ID名字相同的。
seqkit common test1.fa test2.fa -o common.fasta
2、By full name(整個序列的名字,包含deion部分)。輸出序列名字相同的。
seqkit common test1.fa test2.fa -n -o common.fasta
3、輸出要比較的文件中序列相同的序列
seqkit common test1.fa test2.fa -s -i -o common.fasta
4、輸出要比較的文件中序列相同的序列 (for large sequences)
seqkit common test1.fa test2.fa -s -i -o common.fasta --md5
七、提取部分序列
如隨機抽取10000條FASTQ序列做NT污染評估。同時他也可以對FASTA序列提取
seqkit sample [flags]
參數:
-n, --number int
sample by number (result may not exactly match)
-p, --proportion float
sample by proportion(按比例提)
-s, --rand-seed int
rand seed for shuffle (default 11)
-2, --two-pass
2-pass modelower memory
舉例:隨機抽取序列
seqkit sample -n 10000 -s 11 test1_1.fq -o sample.fq
seqkit sample -p 0.1 -s 11 test1_1.fq -o sample.fq
八、排序輸出命令
seqkit sort [flags]
參數:
-l, --by-length
按照序列長度排序
-n, --by-name
by full name
-s, --by-seq
按照序列排序
-i, --ignore-case
按序列排序時忽略大小寫
-r, --reverse
反向排序
-2, --two-pass
對於FASTA序列排序可以減少內存
舉例:
seqkit sort -ltest.fa
九、文件切割
seqkit split [flags]
參數:
-i, --by-id
split squences according to sequence ID
-p, --by-part int
將一個文件分割成N 份
-s, --by-size int
將一個文件按照N 條序列一個文件進行分割
-O, --out-dir string
output directory (default value is infile.split)
-2, --two-pass
two-pass mode to lower memory usage(only FAST)
舉例:
seqkit split hairpin.fa.gz -p 4