文章      动态     相关文章     最新文章     手机版动态     相关动态     |   首页|会员中心|保存桌面|手机浏览

yangjinghg

http://g8akg8.riyuangf.com/comyangjinghg/

相关列表
文章列表
  • 暂无文章
推荐文章
联系方式
  • 联系人:王涛
  • 电话:86 020 84129187
【原】seqkit:序列梳理神器-统计、格式转换、长度筛选、质量值转换、翻译、反向互补、抽样、去重、滑窗、拆分等30项全能
发布时间:2024-11-18        浏览次数:2        返回列表

通过我几天的学习,我发现,seqkit十分好用,将序列的各种操作都囊括进去,加入多线程,我个人认为这将是非常好的胶水,在处理无论是基因组还是其他组学。定是一个必学神器。注意一下教程在0.15版本以后可用。低版本有些参数不可用。

【原】seqkit:序列梳理神器-统计、格式转换、长度筛选、质量值转换、翻译、反向互补、抽样、去重、滑窗、拆分等30项全能

支持Windows/Mac/Linux的32和64位系统。用户根据自己的系统自取。

最新版发布页面:https://github.com/shenwei356/seqkit/releases

  • 软件优点

  1. 体积小巧、安装方便、无依赖关系

  2. 跨平台:Windows/Linux/Mac通用

  3. 运行效率高

本教程测试环境Ubuntu 16/18/20.04 LTS

目前可以安装比较最新的版本Version: 至少 >= 0.15.0。seqkit在github上的维护力度也比较大,功能比较完善,放心使用。

可选在 https://github.com/shenwei356/seqkit/releases 发布页直接下载适合的版本。

seqkit 一共有37个可用的命令,详细内容如下:

参数

下载的gtf文件似乎缺少一个transcript_id,这里补充一下。

提取1号染色体序列及注释作为示例

统计序列格式fasta(fa)/fastq(fq)、内容类型DNA/RNA/Protein,序列数量、总长度,最小、平均和最大长度

下面就四种格式序列构建和简单统计。

使用fq或者fa文件进行演示

“-n”: 提取序列ID,包括“>”后面的全部内容

“-n -i”: 仅提取第一个空格前的ID

按长度过滤(常用)

扩增子分析时要筛选扩增长度相近的片段,过长或过短一般都要删除。宏基因组中比如组装的结果,经常要过滤<200/300bp的短片段,分箱时要筛选>1000/2000的长片段使用。本条命令非常多的应用场景。筛选后结果可用 > 写入文件

  • -m 按照序列长度过滤,表示保留的最小长度,-M 此为保留的最大长度

提取ID

单行/多行转换

  • -s提取并展示序列

  • -w 代表每行的碱基数量,0代表不换行

反向/互补

  • -r 序列反向

  • -p序列互补

删除gap/大小写转换

  • -g 去除序列中的间隔,将中间的横杠去掉

  • -u转化序列为大写字母展示

RNA转为DNA

  • —rna2dna 将RNA序列转化为DNA序列

  • -r 通过区域来截取序列

如1:12提取前12个碱基,-12:-1提取序列结尾12个碱基;for last 12 bases, 13:-1 for cutting first 12 bases. type “seqkit subseq -h” for more examples

基于gtf/bed信息挑选子序列。

  • —gtf  根据gtf文件挑选基因,这部分功能用于根据基因注释快速提取基因序列,在宏基因组、转录组、重测序中常用。—chr 选择染色体,—feature cds选择序列类型

以拟南芥基因组的序列和注释数据演示:提取第一条染色体上的CDS基因信息,并统计基本信息

  • -u 可以提取目标基因上游的序列

  • -f 目标区域不展示

步长为5,取30个碱基序列,然后统计GC含量

  • fx2tab:统计fasta/fastq序列的信息为表格

  • -n仅输出ID,不输出序列

  • -g为GC含量

  • 从有错误记录的fastq文件中挽救可用的读取

这里我专门将C1_1.fq的第一个序列进行了错位,进行测试。这个操作往往在进行数据整合的时候可以有很大作用。

这一转化很有用,往往用于表格/矩阵处理的时候。

通过矩阵格式的序列文件统计序列长度和质量值

  • -l 统计序列长度

  • -g 统计平均GC含量

  • -i 只打印名称(不打印序列)

  • -H 打印标题行

  • tab2fx 和表格格式转化为序列格式

这里同时支持fa和fq文件

按名称ID、给定区域的子序列、文件大小或序列数量将序列拆分为文件

可用于将大文件拆分后,并行处理,加速分析。如从contig中预测基因。

同时支持fa和fq文件。单端和双端序列拆分实例

-f强制覆盖结果,适合重复计算时使用

留下匹配的,去除不匹配的,这里我们使用扩增子的双端序列做一个演示:

注意:双端序列在两个文件中的顺序最好是一样的,否则会消耗大量内存去匹配。

按照百分比例和序列数量进行抽样

注意:1000条并不是很准确,可能是900多条,为什么呢?看这里了解问题。https://bioinfhttp://www.360doc.com/content/21/0315/08/seqkit/note/#effect-of-random-seed-on-results-of-seqkit-sample

这里为大家展示一下减少内存的序列抽样方法

  • —quiet 屏幕不输出过程

    • -i 排序忽略大小写

    • -l 按照序列长度排序

这个使用的比较少

pigz 或者 gzip 在部分操作中不能加速,所以在v.0.8.1版本以便关注了,然而还是可以使用命令:

因为seqkit使用了pgzip去写gzip。这比gzip和pigz更快。(10X of gzip, 4X of pigz),而且gzip压缩文件比较大。

seqkit无缝支持fa和fq格式数据,并且可以自动识别。除了 faidx之外,全部命令都可以处理这两种格式的数据。

只有fa格式支持命令(subseq, split, sort和shuffle)利用FASTA索引(by flag -two-pass)下提高大文件的性能。

序列类型的检测DNA/RNA/Protein,会使用子序列进行,默认检测第一条子序列,通过—alphabet-guess-seq-length参数默认为10000,如果长度小于10000,则检查整条序列。

所有的软件,包括seqkit,使用第一个空格之前的字符作为序列的名字

需要注意的NCBI等一些序列的格式并不是如此,例如:

想要在seqkit中识别出来的序列ID为:NC_002516.2。

此时使用参数,或者添加参数,但如果是只要前面的gi数字作为ID的话,添加参数:。

注意:.seqkit.fai不同于samtools产生的.fai格式文件,seqkit使用整个序列开头而不是ID作为索引。

单核CPU默认线程:—threads 1,多个CPU,线程默认2.

seqkit许多的命令都不需要将整个序列读入到内存中。包括:stat, fq2fa, fx2tab, tab2fx, grep, locate, replace, seq, sliding, subseq。

注意:如果使用subseq —gtf | —bed时,如果GTF或者BED文件太大,内存使用量会暴增,可以通过指定染色体:—chr,或者—feature去限制特征。

有一些命令需要将文件读入内存,但是可以用过rmdup 和 common减少内存使用。

抽样命令sample和shuffle使用了随机功能,为了保证重现性,可以使用设置随机种子。这可以保证在不同的环境中可以有相同的抽样结果。

编辑:文涛

责编:刘永鑫

Wei Shen, Shuai Le, Yan Li & Fuquan Hu. (2016). SeqKit: a cross-platform and ultrafast toolkit for fasta/q file manipulation. PloS One 11, e0163962, doi: https:///10.1371/journal.pone.0163962

软件发布页:https://github.com/shenwei356/seqkit/releases