首页 > 其他分享 >Metagenome多样性分析&差异分析 2023.01.07

Metagenome多样性分析&差异分析 2023.01.07

时间:2023-01-08 14:32:21浏览次数:46  
标签:07 .. -- 2023.01 A1 fa Metagenome cds unigene

宏基因组数据组装及注释

测序文件-组装(megahit,fq1 fq2 - A1.contigs.fa)- 基因预测(prokka,A1.contigs.fa - faa ffn)- 

去冗余(cd-hit; faa ffn - all.cds.cdhit/unigene序列文件 )

组装

## 单组数据组装
singularity exec ../../software/MetaGenome.sif megahit \
-1 ../../dataFQ/A1_1.fq.gz \ # 输入,fq1
-2 ../../dataFQ/A1_2.fq.gz \ # 输入,fq2
--min-contig-len 1000 \ # contig最小长度
--tmp-dir ./ \ # 设置tmp目录
--memory 0.4 \ # 内存占用
--num-cpu-threads 4 \ # 线程数
--out-dir A1_megahit \ # 输出目录
--out-prefix A1 # 输出前缀
## 多组数据组装, 输入数据逗号分隔
singularity exec ../../software/MetaGenome.sif megahit \
-1 ../../dataFQ/A1_1.fq.gz,../../dataFQ/A2_1.fq.gz \
-2 ../../dataFQ/A1_2.fq.gz,../../dataFQ/A2_2.fq.gz \
--min-contig-len 1000 \
--tmp-dir ./ \
--memory 0.4 \
--num-cpu-threads 4 \
--out-dir multi_megahit \
--out-prefix multi

输出结果文件: A1_megahit/A1.contigs.fa

使用 metaspades 进行组装:

## 单组数据组装
singularity exec ../../software/MetaGenome.sif spades.py \
--meta \ # 宏基因组模式
-t 4 \ # 线程
-k 21,33 \ # kmer
-1 ../../dataFQ/A1_1.fq.gz \ # 输入,fq1
-2 ../../dataFQ/A1_2.fq.gz \ # 输入,fq2
-o A1_metaspades # 输出目录
## 多组数据组装
singularity exec ../../software/MetaGenome.sif spades.py --meta \
-t 4 \
-k 21,33,55,77 \
--pe-1 1 ../../dataFQ/A1_1.fq.gz \ #输入,第1组fq1
--pe-2 1 ../../dataFQ/A1_2.fq.gz \ #输入,第1组fq2
--pe-1 2 ../../dataFQ/A2_1.fq.gz \ #输入,第2组fq1
--pe-2 2 ../../dataFQ/A2_2.fq.gz \ #输入,第2组fq2
-o multi_metaspades #输出目录

输出结果文件:A1_metaspades/scaffolds.fasta

组装结果可以使用 quast 进行汇总统计:

# 准备组装结果
ln -s ../01.megahit/A1_megahit/A1.contigs.fa
ln -s ../01.metaspades/A1_metaspades/scaffolds.fasta ./A1.spades.fa
# 使用quast进行汇总统计
singularity exec ../../software/MetaGenome.sif quast.py ./*.fa

输出结果为网页版报告:report.html

基因预测及去冗余

# 准备输入文件
ln -s ../01.megahit/A1_megahit/A1.contigs.fa
# 基因预测
singularity exec ../../software/MetaGenome.sif prokka \
--outdir A1_prokka \ # 输出目录
--prefix A1 \ # 输出文件前缀
--addgenes \ # 添加gene信息
--addmrna \ # 添加mrna信息
--locustag A1 \ # 基因ID添加tag
--kingdom Bacteria \ #物种分类Archaea|Bacteria|Mitochondria|Viruses
--metagenome \ # 宏基因组模式
--cpus 8 \ # 线程数
./A1.contigs.fa # 输入文件

主要结果:

A1.faa : 预测的氨基酸序列文件
A1.ffn :预测出的转录本序列
A1.fna :输入的基因组文件
A1.fsa :添加Sequin tags的基因组文件
A1.gbf :Genbank格式注释结果
A1.gff :gff3格式注释结果
A1.sqn :ASN1 格式 Sequin文件,修改后可用于提交Genbank
A1.tbl : Feature Table, 创建sequin文件使用
A1.tsv : features: locus_tag,ftype,len_bp,gene,EC_number,COG,product
A1.txt : 注释结果统计信息

对多个样品基因预测结果去冗余,得到 unigene:

## 将多样品转录本和氨基酸序列分别合并
cat ../02.prokka/*_prokka/*.ffn > all.trans.fa
cat ../02.prokka/*_prokka/*.faa > all.pep.fa
## 提取编码序列ID
sed -n "s/ˆ>\(\S\+\).*$/\1/p" all.pep.fa > all.cds.id
## 基于ID提取CDS序列
singularity exec ../../software/MetaGenome.sif seqtk subseq \
all.trans.fa all.cds.id > all.cds.fa
## 对CDS进行聚类
singularity exec ../../software/MetaGenome.sif cd-hit-est \
-i all.cds.fa \
-o all.cds.cdhit \
-c 0.95 \
-aS 0.9 \
-M 10000 \
-T 4

输出结果文件:

all.cds.cdhit : unigene 序列文件                       all.cds.cdhit.clstr:聚类cluster信息

由于 unigene 序列中使用原始的序列名称,这里我们可以将其统一修改 成 clusterID:

cp all.cds.cdhit unigene_cds.fasta
# 提取原始unigene ID
awk '$1 ~/ˆ>/{print $1}' all.cds.cdhit | \
sed 's/ˆ>//' > unigene.id
# 基于unigene ID 提取其氨基酸序列文件
singularity exec ../../software/MetaGenome.sif seqtk subseq \
all.pep.fa unigene.id > unigene_pep.fasta
# 提取cluster ID和原始unigeneID 对应关系
awk '{if($1~/ˆ>/){printf $1 $2} else if($NF ~ /*$/){print "\t"$3}}' \
all.cds.cdhit.clstr | \
sed 's/>//g; s/...$//'| \
awk '{print $2"\t"$1}' > map_id.txt
# 对原始unigeneID进行替换(原文件修改)
../script/map_fasta_ids map_id.txt unigene_cds.fasta
../script/map_fasta_ids map_id.txt unigene_pep.fasta

输出结果:

unigene_cds.fasta :unigene CDS序列文件

unigene_pep.fasta :unigene 氨基酸序列文件


标签:07,..,--,2023.01,A1,fa,Metagenome,cds,unigene
From: https://blog.51cto.com/u_15622529/5996686

相关文章

  • 07-自定义对象
    自定义对象基本概念在js中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。对象是由属性和方法组成的。属性:事物的特征,在对象......
  • 230107_50_RPC底层原理
    Stub已经实现:可以任意新增接口和方法都可以通过这个stub代理出一个对应的对象。新增一个IProductService接口和方法;如下:IProductService接口packagecom.bill.rpc.......
  • 读C#代码整洁之道笔记07_代码评审和集成测试
    1. 代码评审注意事项1.1. 始终保持代码评审的意识1.2. 保证代码构建成功1.3. 确保所有的测试都是通过的1.4. 注意YAGNI原则1.5. 检查重复代码1.6. 使用静态......
  • CF1007A 题解
    题目传送门题目分析贪心水题。首先将原数组从小往大排序,然后不难想到一个简单但会超时的思路,即对每个位置,向后找到一个比自己大的数进行搭配。然后是一个简单的小优化,......
  • 真正“搞”懂HTTP协议07之body的玩法(实践篇)
    我真没想到这篇文章竟然写了将近一个月,一方面我在写这篇文章的时候阳了,所以将近有两周没干活,另外一方面,我发现在写基于Node的HTTP的demo的时候,我不会Node,所以我又要一......
  • 随笔 有所思20230107
    过2023年这一年26岁。工作的问题未解决。找份硬件测试的工作,看看。测试的要求其实还挺高的。想要有个屋子,有个书桌,有个书房。租房的每日的房租支出,一日34元的房租,电费......
  • 【题解】P6074 最小路径
    太弱小了,失去了力量和精神。思路01分数规划+长链剖分优化dp.首先求形如\(\frac{\sum\limitsa_i}{\sum\limitsb_i}\)式子的最值,首先想到二分答案\(ans\),令每个......
  • 2023.01.06 模拟赛小结
    2023.01.06模拟赛小结目录2023.01.06模拟赛小结更好的阅读体验戳此进入赛时思路T1CodecheckerT2CodeT3CodeT4Code正解T2CodeT3CodeT4CodeUPD更好的阅读体验戳此进入今......
  • Metagenome多样性分析&差异分析 2023.01.05-01.07
    多样性分析&差异分析##准备输入biom文件ln-s../01.taxon/out_S/S.biom##进行alpha多样性指数计算及绘制稀释曲线singularityexec../../software/MetaGenomeRscript.......
  • CF1707E Replace
    *3500。把我吓到了,其实这题比较水,已经快做出来了。顺便一提CF怎么这么喜欢出ST表。二元组不好看,换成\(f:\text{Interval}\to\text{Interval}\)(首先对于同一个......