提取特定位置的基因组序列

seqtk:生信常用序列处理工具

2022-03-07  本文已影响0人  大号在这里

前言

seqtk在生信届被誉为序列处理的瑞士军刀,其出自生信大神李恒之手,李恒是SAMtools、BWA、MAQ等著名生信软件的核心作者。seqtk基于C语言编写的软件,运行速度极快,极大的提高工作效率。seqtk日常序列的处理包括:fq转换为fa,格式化序列,截取序列,随机抽取序列等。

一、安装方法(conda安装和github安装)

conda install -c bioconda seqtk #conda安装
git clone https://github.com/lh3/seqtk.git;cd seqtk; make #github官网安装

·

二、常用案例

1.seq 序列常规转换

将fastq转换成fasta:

seqtk seq -a Sample_R1.fq.gz > Sample_R1.fa

得到反向互补序列:

seqtk seq -r Sample_R1.fq.gz > Sample_Revc_R1.fq

2.sample 随机抽样

seqtk sample -s100 Sample_R1.fq.gz 10000 #可直接对压缩文件进行序列随机提取,在提取R1和R2两个文件的时候,需要-s值一致,才能使提取的序列id号对应。

3.subseq 提取序列

根据输入的bed文件信息,将固定区域的序列提取出来:

seqtk subseq in.fa reg.bed > out.fa

根据输入的name list,提取相应名称序列:

/mnt/nas2/biosoft/seqtk-master/seqtk subseq input.fastq.gz test.list >out.fastq

input.fastq.gz test.list
out.fastq

4.截取序列

切除reads的前5bp,以及后10bp:

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

使用Phred算法从两端修剪低质量的碱基:

seqtk trimfq in.fq > out.fq

5.得到fastq/fasta 文件的碱基组成

seqtk comp input.fastq > out.txt

#input.fastq文件
>NB001
GGGGTTTTGTGCAT
#out.txt 输出内容
NB001    14    6    6    1    1    0    0    0    0    0    0    0

6.合并两个序列

通常我们Illunima双端测序会得到两个文件R1.fq.gz和R2.fq.gz,这个命令就是帮助怎么完美实现两两配对

$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

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

·

参考

https://github.com/lh3/seqtk

上一篇 下一篇

猜你喜欢

热点阅读