SeqKit教程:生物序列处理与分析实战指南

SeqKit教程:生物序列处理与分析实战指南

【免费下载链接】seqkit A cross-platform and ultrafast toolkit for FASTA/Q file manipulation 【免费下载链接】seqkit 项目地址: https://gitcode.com/gh_mirrors/se/seqkit

实时监控病毒测序比对结果

在时间紧迫的疫情监测场景中,SeqKit提供了一系列实时处理FASTQ/FASTA和BAM格式数据的子命令,包括watchfishscatbam等。这些功能为构建实时分析管道提供了强大支持。

下面我们展示一个完整的分析管道示例,该管道在下载病毒扩增子测序数据的同时,使用minimap2将其比对到参考序列上:

#!/bin/bash
set -o nounset

# 定义参考序列和数据URL
REF_URL="https://www.ncbi.nlm.nih.gov/sviewer/viewer.cgi?tool=portal&save=file&log$=seqview&db=nuccore&report=fasta&id=1798174254&extrafeat=null&conwithfeat=on&hide-cdd=on&ncbi_phid=CE8B108356DDCF110000000005B10489"
DATA_URL="http://ftp.sra.ebi.ac.uk/vol1/fastq/SRR145/055/SRR14560555/SRR14560555_1.fastq.gz"

# 构建实时分析管道
minimap2 -K 10M -t 8 -ax map-ont \
        <(wget -q -O - "$REF_URL") \
        <(wget -q -O - "$DATA_URL") 2>/dev/null \
    | samtools view -F 2304 -q 1 -b - \
    | seqkit bam -O aln_len.pdf -f RefAln -m 310 -M 410 -p 5000 -x - \
    | seqkit bam -O aln_acc.pdf -f Acc  -p 10000 -x - \
    | samtools sort -o viral_artic_sorted.bam -

# 显示最终比对统计信息
seqkit bam -s -k viral_artic_sorted.bam

该管道实现了以下功能:

  1. 使用minimap2进行实时比对
  2. 只保留主比对且比对质量大于1的记录
  3. 筛选比对参考长度在310-420之间的比对结果
  4. 每5000条记录显示一次比对长度分布直方图并保存为PDF
  5. 每10000条记录显示一次比对准确率分布直方图
  6. 最终输出排序后的BAM文件

序列去重与嵌套序列处理

在处理基因组组装结果时,经常需要去除重复序列和嵌套序列。以下是一个完整的处理流程:

示例数据

>big
ACTGACGATCGATACGCAGCACAGCAG
>small_in_big_rc
TGCTGCGTATCG
>small2
ACTACGACTACGACT
>small2_alias
ACTACGACTACGACT
>small2_rc
AGTCGTAGTCGTAGT
>another
ACTAACGA

处理步骤

  1. 去除完全相同的序列
seqkit rmdup -s -i contigs.fa -o contigs.uniq1.fa
  1. 识别嵌套序列
seqkit locate -M -f contigs.uniq1.fa contigs.uniq1.fa -o match.tsv
  1. 提取嵌套序列ID
sed 1d match.tsv | awk '$2 != $1' | cut -f 2 | tee nested.txt
  1. 去除嵌套序列
seqkit grep -v -f nested.txt contigs.uniq1.fa -o contigs.uniq2.fa

最终结果将只保留非重复且非嵌套的序列。

大型基因组处理技巧

处理人类基因组等大型序列时,SeqKit提供了多种优化方法:

1. 构建FASTA索引

seqkit faidx --id-regexp "^(.+)$" hsa.fa -o hsa.fa.seqkit.fai

2. 按序列长度排序

seqkit sort --by-length --reverse --two-pass hsa.fa > hsa.sorted.fa

3. 随机打乱序列顺序

seqkit shuffle hsa.fa --two-pass > hsa.shuffled.fa

4. 按染色体提取子序列

seqkit subseq -r 1:10 --chr X --chr Y hsa.fa

5. 根据GTF文件提取CDS序列

seqkit subseq --gtf Homo_sapiens.GRCh38.84.gtf.gz --chr X --feature cds hsa.fa > chrX.gtf.cds.fa

污染序列去除实战

  1. 首先获取污染序列的ID列表
  2. 使用grep命令去除污染序列:
seqkit grep -f contaminate.list -v reads_1.fq.gz -o reads_1.clean.fq.gz
seqkit grep -f contaminate.list -v reads_2.fq.gz -o reads_2.clean.fq.gz

miRNA发夹结构分析

数据准备

从miRBase数据库下载hairpin.fa.gz文件

基本统计

seqkit stat hairpin.fa.gz

重复发夹结构分析

seqkit rmdup -s -i hairpin.fa.gz -o clean.fa.gz -d duplicated.fa.gz -D duplicated.detail.txt

按物种分类

seqkit split hairpin.fa.gz -i --id-regexp "^([\w]+)\-" --two-pass

人类miRNA长度分布分析

seqkit grep -r -p '^hsa' hairpin.fa.gz | seqkit fx2tab -l | cut -f 4 | csvtk -H plot hist --xlab Length --title "Human pre-miRNA length distribution"

通过本教程,您已经掌握了SeqKit在生物序列处理中的多种实用技巧,从实时数据分析到大型基因组处理,再到miRNA特征分析。这些方法可以灵活应用于各种生物信息学分析场景。

【免费下载链接】seqkit A cross-platform and ultrafast toolkit for FASTA/Q file manipulation 【免费下载链接】seqkit 项目地址: https://gitcode.com/gh_mirrors/se/seqkit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值