前面已经完成了qiime2-sidle插件的安装,测试方法就是输入qiime:
sidle Plugin for kmer-based marker gene reconstruction.
复制
出现了上面的选项,应该就说明已经安装成功了。
数据库准备
数据库准备是一劳永逸的,前面我们已经完成了数据库过滤的步骤
准备一个区域数据库
这一步是提取一个区域的数据库,基于K-mer,为了提升内存效率,把简并碱基和重复kmer作为一条序列。

# 首先,使用feature-classifier插件的extract-reads提取,那么对于6V区的SMURF应该是:
# 2.2 序列提取
# 74f 315R V1-V2
qiime feature-classifier extract-reads \
--i-sequences sidle-db-full-degen-filtered-phylum-def-sequences.qza \
--p-f-primer TGGCGGACGGGTGAGTAA \
--p-r-primer CTGCTGCCTCCCGTAGGA \
--o-reads sidle-db-filt-j1.qza
# 316F 484R V3部分
qiime feature-classifier extract-reads \
--i-sequences sidle-db-full-degen-filtered-phylum-def-sequences.qza \
--p-f-primer TCCTACGGGAGGCAGCAG \
--p-r-primer TATTACCGCGGCTGCTGG \
--o-reads sidle-db-filt-j2.qza
# 486F 650R V3部分-v4部分
qiime feature-classifier extract-reads \
--i-sequences sidle-db-full-degen-filtered-phylum-def-sequences.qza \
--p-f-primer CAGCAGCCGCGGTAATAC \
--p-r-primer CGCATTTCACCGCTACAC \
--o-reads sidle-db-filt-j3.qza
# 752F 911 R V5
qiime feature-classifier extract-reads \
--i-sequences sidle-db-full-degen-filtered-phylum-def-sequences.qza \
--p-f-primer AGGATTAGATACCCTGGT \
--p-r-primer GAATTAAACCACATGCTC \
--o-reads sidle-db-filt-j4.qza
# 901F 1057R V6
qiime feature-classifier extract-reads \
--i-sequences sidle-db-full-degen-filtered-phylum-def-sequences.qza \
--p-f-primer GCACAAGCGGTGGAGCAT \
--p-r-primer CGCTCGTTGCGGGACTTA \
--o-reads sidle-db-filt-j5.qza
# 1143F 1336R V7 V8
qiime feature-classifier extract-reads \
--i-sequences sidle-db-full-degen-filtered-phylum-def-sequences.qza \
--p-f-primer AGGAAGGTGGGGATGACG \
--p-r-primer CCCGGGAACGTATTCACC \
--o-reads sidle-db-filt-j6.qza
复制
上sidle插件,文档介绍这里和原方法略有区别,原算法是允许2个碱基不一致,而这里用的80%,作者说可以用--p-identity 参数,但是没找到。。。
# 可以给region起个别名,看喜好起即可
# P1
qiime sidle prepare-extracted-region \
--i-sequences sidle-db-filt-j1.qza \
--p-region "P1" \
--p-fwd-primer TGGCGGACGGGTGAGTAA \
--p-rev-primer CTGCTGCCTCCCGTAGGA \
--p-trim-length 100 \
--o-collapsed-kmers sidle-db-P1-100nt-kmers.qza \
--o-kmer-map sidle-db-P1-100nt-map.qza
# P2
qiime sidle prepare-extracted-region \
--i-sequences sidle-db-filt-j2.qza \
--p-region "P2" \
--p-fwd-primer TCCTACGGGAGGCAGCAG \
--p-rev-primer TATTACCGCGGCTGCTGG \
--p-trim-length 100 \
--o-collapsed-kmers sidle-db-P2-100nt-kmers.qza \
--o-kmer-map sidle-db-P2-100nt-map.qza
# P3
qiime sidle prepare-extracted-region \
--i-sequences sidle-db-filt-j3.qza \
--p-region "P3" \
--p-fwd-primer CAGCAGCCGCGGTAATAC \
--p-rev-primer CGCATTTCACCGCTACAC \
--p-trim-length 100 \
--o-collapsed-kmers sidle-db-P3-100nt-kmers.qza \
--o-kmer-map sidle-db-P3-100nt-map.qza
# P4
qiime sidle prepare-extracted-region \
--i-sequences sidle-db-filt-j4.qza \
--p-region "P4" \
--p-fwd-primer AGGATTAGATACCCTGGT \
--p-rev-primer GAATTAAACCACATGCTC \
--p-trim-length 100 \
--o-collapsed-kmers sidle-db-P4-100nt-kmers.qza \
--o-kmer-map sidle-db-P4-100nt-map.qza
# P5
qiime sidle prepare-extracted-region \
--i-sequences sidle-db-filt-j5.qza \
--p-region "P5" \
--p-fwd-primer GCACAAGCGGTGGAGCAT \
--p-rev-primer CGCTCGTTGCGGGACTTA \
--p-trim-length 100 \
--o-collapsed-kmers sidle-db-P5-100nt-kmers.qza \
--o-kmer-map sidle-db-P5-100nt-map.qza
# P6
qiime sidle prepare-extracted-region \
--i-sequences sidle-db-filt-j6.qza \
--p-region "P6" \
--p-fwd-primer AGGAAGGTGGGGATGACG \
--p-rev-primer CCCGGGAACGTATTCACC \
--p-trim-length 100 \
--o-collapsed-kmers sidle-db-P6-100nt-kmers.qza \
--o-kmer-map sidle-db-P6-100nt-map.qza
复制
这步会输出含简并的序列,移除重复序列和一个kmer映射文件,可以qiime可视化,给出原始数据库序列名称(db-seq)、序列名称(seq-name)、区域标识(Kmer)、引物(fwd-primer和rev-primer)、区域(Region)和序列长度(Trim-Length)之间的关系。
# 如果参考序列不能覆盖正反向引物,可以把--p-trim-length设置为负值,增加个参数--p-reverse-complement-result
--i-sequences sidle-db-filt-jl.qza \
--p-region "Batman" \
--p-fwd-primer TATTACCGCGGCTGCTGG \
--p-rev-primer TCCTACGGGAGGCAGCAG \
--p-trim-length -100 \
--p-reverse-complement-result \
--o-collapsed-kmers sidle-db-batman-100nt-kmers.qza \
--o-kmer-map sidle-db-batman-100nt-map.qza
复制