細菌基因組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
英文地址,請注明出處:http://en.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…