个人电脑也做做宏基因组玩玩
时间:2022-07-28
本文章向大家介绍个人电脑也做做宏基因组玩玩,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
宏基因组分析,首先需要的结果是获得物种分类信息,前面我们提到,宏基因组有两种分析方式分别是基于序列比对和组装的,组装对电脑硬件的要求是超级高的,不过比对,就轻松多了,得益于算法的优化,有的软件可以实现在个人电脑上进行分析。最近的“AMD YES"也很给力,把普通个人电脑推向了8核16G RAM这种配置,终于追上了手机(虽然二者性能不可同日而语)。算力有了,充分利用起来呀,来个宏基因组玩玩呀!
软件安装和环境准备
人生苦短,用conda吧!软件安装这事,能不折腾就不折腾。顺便提一句,我是使用win10自带的内置linux子系统WSL进行的,虽然还不完美(有人遭遇了权限问题),也算挺方便了。
# http://blog.sciencenet.cn/blog-3334560-1115288.html
source ~/miniconda3/bin/activate
#conda create -n kraken2
conda activate kraken2
#conda install -y bracken kraken2
#conda install python=2.7 -y bowtie2 trimmomatic KneadData
下载数据库是一个难题,前面已经提到怎样使用腾讯云下载了,这里不再重复。造福大家,我把数据库上传了百度云,据说现在宿主基因组,这里下载的g38。这个使用全平台多线程下载工具如motrix的下载速度挺快的,几M/s。直接下载软件准备好的数据库也是可以的。kraken2数据库 链接:https://pan.baidu.com/s/1sqI3Srw3YxRENpQbP80RKA 提取码:xn3a
# 下载人类基因组
wget ftp://gsapubftp-anonymous@ftp.broadinstitute.org/bundle/hg38/Homo_sapiens_assembly38.fasta.gz
gunzip Homo_sapiens_assembly38.fasta.gz
#建索引
bowtie2-build --threads 8 Homo_sapiens_assembly38.fasta broad_hg38
#质控
kneaddata -i KM180115501/KM180115501.R1.fastq.gz -i KM180115501/KM180115501.R2.fastq.gz -o kneaddata_out -v
-db /home/zd200572/Reference/broad_hg38 --trimmomatic /home/zd200572/miniconda3/envs/kraken2/share/trimmomatic-0.39-1/ --trimmomatic-options "SLIDINGWINDOW:4:20 MINLEN:50"
-t 8 --bowtie2-options "--very-sensitive --dovetail" --remove-intermediate-output
#汇总
kneaddata_read_count_table --input kneaddata_out --output kneaddata_read_counts.txt
# 清理宿主污染至指定目录备用
mkdir kneaddata_out/contam_seq
mv kneaddata_out/*_contam*fastq kneaddata_out/contam_seq
## 本质上只合并了1/2
concat_paired_end.pl -p 8 --no_R_match -o cat_reads kneaddata_out/*_paired_*.fastq
# 可选方法2:我感觉是合并4个文件,应该重命名序列ID,不则双端序列重名字,shell命令合并单样品
for i in `tail -n+2 map.txt | cut -f 1`;do
cat kneaddata_out/${i}_R1_kneaddata_paired_1.fastq kneaddata_out/${i}_R1_kneaddata_paired_2.fastq knead
#分类
kraken2
--db ~/Biosofts/minikraken2_v1_8GB
--threads 8
--report report
--paired
kneaddata_out/KM180115501.R1_kneaddata_paired_1.fastq kneaddata_out/KM180115501.R1_kneaddata_paired_2.fastq
bracken -d ~/Biosofts/minikraken2_v1_8GB -t 8 -i report -o result.out
159s的运行时间过后,你就得到了你的样本物种分类结果。
参考了几篇博客的内容,如有错误,欢迎指正。
- 报警系统QuickAlarm使用手册
- OpenDaylight Carbon二次开发实用指南
- 报警系统QuickAlarm之频率统计及接口封装
- 如何使用Sentry管理Hive外部表权限
- 报警系统QuickAlarm之报警规则解析
- 报警系统QuickAlarm之报警规则的设定与加载
- 报警系统QuickAlarm之报警执行器的设计与实现
- 如何在Kerberos与非Kerberos的CDH集群BDR不可用时复制数据
- 一个可扩展的报警系统Quick-Alarm
- 如何借助GitHub搭建属于自己的maven仓库
- Java可以如何实现文件变动的监听
- 如何在CDH中安装Kudu&Spark2&Kafka
- 秒懂 javascript 拖拽上传文件
- 一款轻量级树形控件EasyTreeview
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- ggplot2|详解八大基本绘图要素
- LDheatmap|SNP连锁不平衡图(LD)可视化,倒三角图?
- Oracle 表分区笔记
- Java并发编程
- 让终端支持https,移植OpenSSL和libcurl到嵌入式linux,遇到的问题总结
- ComplexHeatmap|根据excel表绘制突变景观图(oncoplot)
- R-plotly|甘特图(Gantt chart)- 一不小心年中了,立个flag
- XXE漏洞那些事儿(JAVA)
- Hexo 建站过程
- Tidyverse|tidyr数据重塑之gather,spread(长数据宽数据转化)
- fastjson中的jndi注入
- R|生存分析-结果整理
- 实验吧-因缺思汀的绕过
- MySQL 用户与授权管理详解
- 基本知识|R语言简单饼图的绘制