细菌基因组genome二代测序数据分析

kraken2去除污染

conda create -n kraken2
conda activate kraken2
conda install kraken2 -c bioconda
mkdir kraken2_outputkraken2 --db ../../kraken2_db/k2_pluspf_20250402/ --threads 8 --paired 250811_HS67EV0804_R1.fastq.gz 250811_HS67EV0804_R2.fastq.gz --use-names --report-zero-counts --report ./kraken2_output/sample.report --output ./kraken2_output/sample.kraken#######使用bracken查看species级别占比
bracken-build -d ../../../kraken2_db/k2_pluspf_20250402/ -t 8srun bracken -d ../../../kraken2_db/k2_pluspf_20250402/ -i sample.report -o sample.bracken -r 150 -l S   
less sample_bracken.report 
##############使用KrakenTools提取目标reads############
conda install KrakenTools -y -c biocondasrun extract_kraken_reads.py -k sample.kraken -s ../250811_HS67EV0804_R1.fastq.gz -s2 ../250811_HS67EV0804_R2.fastq.gz -o Kpn_573_R1.fastq -o2 Kpn_573_R2.fastq -t 573 --include-children --fastq-output --report sample.report

sample_bracken.report :  S(species)--573为taxid

#####fastp#######
srun fastp \-w 12 \                                  # 使用12个线程并行加速-i ./raw_data/${sample}_1.fq.gz \        # 输入文件:R1-I ./raw_data/${sample}_2.fq.gz \        # 输入文件:R2-o ./clean_data/${sample}_1.fastp.fq.gz \ # 输出文件:清洗后的 R1-O ./clean_data/${sample}_2.fastp.fq.gz \ # 输出文件:清洗后的 R2-f 10 \                                  # 对 R1 每条 read,切除前10个碱基-F 10 \                                  # 对 R2 每条 read,切除前10个碱基-n 10 \                                  # 允许最多10个N,否则丢弃-q 20 \ --dedup                                 # 低于Q20的碱基视为低质量--detect_adapter_for_pe \                # 自动检测并去除接头(推荐)-h ./clean_data/${sample}.fastp.html \   # 输出 HTML 报告-j ./clean_data/${sample}.fastp.json     # 输出 JSON 报告(方便统计/批处理)######fastqc质控#############参数----cov-cutoff可用于过滤contig##
srun fastqc HS67_1.clean.fq.gz HS67_2.clean.fq.gz -o clean_fastqc_report#########spades拼接#############
srun spades.py -1 A18GX092_1.clean.fq.gz -2 A18GX092_2.clean.fq.gz --isolate -o spades_output#############quast评估拼接质量#################
srun quast -t 16 -o quast_output spades_output/scaffolds.fasta
##质量评估标准:contig数目小于1000 , N50大于10bp  最小contig>200bp   评估污染:核苷酸ani平均一致性95% fastani  肺克GC含量为54-55%

作业


#!/bin/bash
#SBATCH --job-name=spades_HS67        # 作业名称
#SBATCH --nodes=1                     # 需要的节点数
#SBATCH --ntasks=1                    # 总任务数
#SBATCH --cpus-per-task=20            # 每个任务的CPU核数
#SBATCH --mem=80G                     # 内存需求
#SBATCH --output=spades_%j.out        # 标准输出日志
#SBATCH --error=spades_%j.err         # 错误输出日志

# 运行SPAdes
spades.py -1 bac_HS67_1.clean.fq.gz -2 bac_HS67_2.clean.fq.gz --isolate -t 20 -o spades_out

概念解释

Kmer

k-mer 就是从 reads 中截取的长度为 k 的连续小片段。
例如 read 序列:ATGCGT,如果 k=3,就有 ATG、TGC、GCG、CGT 四个 3-mer。

组装器(如 SPAdes)用这些 k-mer 构建 de Bruijn 图,再拼接成 contigs。

k 值的大小 会直接影响组装的碎片化程度、错配率和连续性。

  1. 如果只用一个小 k(比如 21),装配可能非常连续,但错误也多;
  2. 如果只用一个大 k(比如 77),重复区能拆开,但低覆盖区会组装不出来。

SPAdes 默认的 -k 21,33,55,77 表示用不同长度的 k-mer 分阶段构建组装图:

小 k 保证敏感性,

大 k 提升连续性

N50

N50 = 一种衡量组装连续性的统计量

把所有 contig 从长到短排序;依次把它们的长度加起来,直到累计长度达到总组装长度的 50%;此时那个 contig 的长度,就是 N50。

举例:

假设组装结果有 5 条 contig,长度如下(单位:kb):
Contig1 = 200  
Contig2 = 150  
Contig3 = 80  
Contig4 = 40  
Contig5 = 30  
总长度 = 500 kb

排序后累加:

Contig1 = 200 → 占 40%

Contig2 = 150 → 累计 350 → 占 70% ≥ 50%

所以 N50 = 150 kb。

解释:一半以上的基因组长度,来自于长度 ≥ 150 kb 的 contigs。

越大越好:N50 大说明组装越连续,contig 越长。

L50

达到总长度一半所需的 contig 数量

举例:

设 contig 长度(kb):200, 150, 80, 40, 30;总长 = 500 kb。

从大到小累加:

200(占 40%)→ 未到 50%

200+150=350(占 70%)→ 首次 ≥50%

此时累计用了 2 条 contig,所以 L50=2

越小越好

L50 越小越好,说明少数长 contig 就能覆盖一半基因组。

以下是一个细菌基因组拼装完成后的quast报告:

可以看到total length为5.56Mb,largest contig为0.459Mb,

#############prokka注释############
prokka spades_output/scaffolds.fasta --outdir prokka_output  --prefix A18GX092   --kingdom Bacteria --locustag A18GX092   --compliant   --force

注释所得结果

tsv文件包含内容

txt文件内容

gff文件内容

开头

  • ##gff-version 3 → 标准 GFF3 文件头。

  • ##sequence-region → 定义每条 contig 的名称和长度(比如 A18GX092_1 长度 458,676 bp)

中间

GFF 文件标准列(9 列)解释:

  1. seqid:所在的 contig 名称(如 A18GX092_1)。
  2. source:注释来源,这里是 Prokka。
  3. type:特征类型(CDS, gene, rRNA, tRNA, misc_feature 等)。
  4. start:起始坐标。
  5. end:终止坐标。
  6. score:得分(一般用不到,常为 .)。
  7. strand:所在链,+ 或 -。
  8. phase:阅读框,0/1/2(只对 CDS 有意义)。

如果 CDS 起点不同,phase 的值不同:

CDS 从 ATG 开始 → phase = 0 (对齐完整 codon)

CDS 从 ATG 开始 → phase = 2 (要跳过 2 个碱基,才能对齐完整 codon)

CDS 从 ATG 开始 → phase = 1 (要跳过 1 个碱基,才能对齐完整 codon)

  1. attributes:附加信息,如基因 ID、功能描述、EC/COG 等。

结尾

原始 contigs 的碱基序列,与 .fna、.fsa 内容相同

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/96278.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/96278.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业网络架构的未来:智慧化工厂中的低延迟与高可靠性设计

1. 引言工业网络正经历从传统有线到无线、从低速到高速的全面升级。某铝箔智慧工厂专注于新能源铝箔的生产,依赖低延迟、高可靠的网络支持实现生产控制与智能管理。本文将探讨某铝箔智慧工厂网络架构设计的关键点及其实施策略。2. 某铝箔智慧工厂的网络挑战多终端接…

Android14 init.rc中on boot阶段操作4

Android14 init.rc中on early-init, init, late-init, early-fs, post-fs阶段详解1 Android14 init.rc的on late-fs, post-fs-data阶段主要操作详解2 Android14 init.rc中启动Zygote详解3 Android14 init.rc中on boot阶段操作4 1 on boot和低内存设备的启动优化 仅在ro.con…

CodeSandbox Desktop:零配置项目启动工具,实现项目环境隔离与Github无缝同步

你有没有过为了跑一个简单的 Demo,花半小时配置环境还失败的经历?比如想测试一个 Vue3 组件,先装 Node.js,结果版本太高和项目依赖不兼容;换低版本又提示 “找不到 python 环境”;好不容易装完依赖&#xf…

人工智能-python-深度学习-经典神经网络AlexNet

AlexNet(详解)——从原理到 PyTorch 实现(含训练示例) 文章目录AlexNet(详解)——从原理到 PyTorch 实现(含训练示例)1. 发展历史与比赛成绩2. AlexNet 的核心思想(一句话…

《sklearn机器学习——指标和评分1》

3个不同的API可供评估模型预测质量: 评估器评分方法:评估器有一个score方法,它给计划解决的问题提供一个初始评估标准。这部分内容不在这里讨论,但会出现在每一个评估器的文件中。 评分参数:使用交叉验证(…

人工智能中的线性代数总结--简单篇

numpy库中的dot函数来计算矩阵和向量的点积def matrix_vector_dot_product(a, b):import numpy as npif (len(a[0]) ! len(b)):return -1# 使用tolist()将结果转换为列表return np.dot(a, b).tolist()原始方法def matrix_vector_dot_product(matrix, vector):if len(matrix[0])…

又是全网首创/纯Qt实现28181设备模拟器/rtp视频点播/桌面转28181/任意文件转28181/跨平台

一、前言说明 这个工具前前后后也算是废了不少功夫,最开始是因为28181服务端的组件已经完美实现,对照国标文档看了很多遍,逐个实现需要的交互协议,整体上比onvif协议要难不少,主要是涉及到的东西比较多,有…

安卓逆向(一)Ubuntu环境配置

一、Ubuntu 1、虚拟机 首先准备一个Ubuntu的虚拟机,就随便新建一个就行,我这里使用的是Ubuntu21.04,但是内存跟硬盘大小最好设置的稍微大一点。 2、基础环境 (1)解决apt-get update报错问题 apt-get是Linux系统中一个管…

Go 1.25在性能方面做了哪些提升?

Go 1.25 在性能方面带来了多项重要提升,主要有以下几个方面: 实验性垃圾回收器 GreenTea GC:针对小对象密集型应用优化,显著提升小对象标记和扫描性能,垃圾回收开销减少0-40%,暂停时间缩短,吞吐…

Python与XML文件处理详解(2续):xml.dom.minidom模块高阶使用方法

目录 第一部分:高级节点操作与遍历方法 1.1 更精确的节点导航 1.2 使用 cloneNode() 复制节点 1.3 节点插入、替换与高级管理 第二部分:文档创建与高级输出控制 2.1 使用 Document 工厂方法完整创建文档 2.2 高级输出与序列化控制 第三部分:实用工具函数与模式处理 …

如何利用 ChatGPT 辅助写作

引言 介绍人工智能辅助写作的兴起,ChatGPT 在写作领域的应用潜力,以及本文的核心目标。 ChatGPT 在写作中的核心功能 概述 ChatGPT 的主要功能,包括文本生成、润色、结构优化、灵感激发等。 利用 ChatGPT 辅助写作的具体方法 生成创意与灵感 …

【有鹿机器人自述】我在社区的365天:扫地、卖萌、治愈人心

大家好,我是有鹿巡扫机器人,编号RD-07。今天我想和大家分享这一年来的工作见闻——没错,我们机器人也会"观察"和"感受",尤其是在连合直租将我送到这个社区后,发生的点点滴滴让我拥有了前所未有的&…

第五十五天(SQL注入增删改查HTTP头UAXFFRefererCookie无回显报错复盘)

#数据库知识: 1、数据库名,表名,列名,数据 2、自带数据库,数据库用户及权限 3、数据库敏感函数,默认端口及应用 4、数据库查询方法(增加删除修改更新) #SQL注入产生原理&#xf…

怎么用 tauri 创建一个桌面应用程序(Electron)

以前用 Electron 做过一个桌面应用程序,打包体积确实很大,启动也很慢。这次先 tauri。 并且用 bun 代替 npm 速度更快,避免总是出现依赖问题。 前端用 react 为了学习下,用 js 先现在主流的 typescript。 安装 bun npm instal…

【通过Docker快速部署Tomcat9.0】

文章目录前言一、部署docker二、部署Tomcat2.1 创建存储卷2.2 运行tomcat容器2.3 查看tomcat容器2.4 查看端口是否监听2.5 防火墙开放端口三、访问Tomcat前言 Tomcat介绍 Tomcat 是由 Apache 软件基金会(Apache Software Foundation)开发的一个开源 Jav…

LabVIEW UI 分辨率适配

针对 LabVIEW UI 在不同分辨率下的适配,现有方案分三类:一是现有 VI 可通过 “VI 属性 - 窗口大小” 勾选比例保持或控件缩放选项快速调整,也可取消勾选或换等宽字体防控件移位;二是项目初期以最低目标分辨率为基准,用…

国产化FPGA开发板:2050-基于JFMK50T4(XC7A50T)的核心板

(IEB-PS-3051-邮票孔) 一、核心板概述 板卡基于JFMK50T4国产化FPGA芯片,设计的一款工业级核心板,板卡集成主芯片、电源、DDR、配置芯片,大大减轻客户的扩展开发困难。丰富的IO和4个GTP,让用户轻…

Webpack 核心原理剖析

时至今日,Webpack 已迭代到 5.x 版本,其功能模块的扩充和复杂度的提升使得源码学习成本陡增。官方文档的晦涩表述更是让许多开发者望而却步。然而,理解 Webpack 的核心原理对优化构建流程、定制化打包方案至关重要。本文将通过简化流程和代码…

移植Qt4.8.7到ARM40-A5

移植Qt4.8.7到ARM40-A5 主机平台:Ubuntu 16.04 LTS(x64) 目标平台:ARM40-A5 Qt版本:Qt4.8.7 ARM GCC编译工具链: arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 ----------## Qt移植步骤 ## 1、了解Ubuntu&am…

C++_哈希

1. unordered系列关联式容器在C98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到$log_2 N$,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好 的查询是&#xf…