Microbial bioinformatics uses computational tools to analyze genomes, track evolution, and study functions in microorganisms, including bacteria and viruses.
Table 1. Summary of sequence data and genome features.
Metrics*
Wildtype
ΔadeAB
ΔadeIJ
ΔcraA
Genome size (bp)
Contig count
Total number of reads sequenced
Coverage depth (sequencing depth)
Coarse consistency (%)
Fine consistency (%)
Completeness (%)
Contamination (%)
Contigs N50 (bp)
Contigs L50
Guanine-cytosine content (%)
Number of genes
Number of coding sequences (CDSs)
Number of tRNAs
Number of rRNAs
Legend / Footnote:
* Genome completeness represents the fraction of universal single-copy functional roles expected for a given taxonomic lineage that are detected in the genome; missing roles indicate incomplete genome assembly or annotation. Contamination is inferred from the detection of multiple copies of these roles, which are expected to be single-copy, suggesting potential contamination or strain heterogeneity. Coarse consistency measures whether the expected functional roles are present or absent as predicted, reflecting broad agreement in the genome annotation. Fine consistency measures whether the number of copies of each functional role matches what is expected based on the genome’s overall pattern, identifying small differences in gene counts. These metrics were calculated using subtools of the BV-BRC platform v3.51.7 (20): EvalG, which estimates genome completeness and contamination based on lineage-specific single-copy marker roles; and EvalCon, which assesses coarse and fine consistency using a machine-learning-derived catalog of approximately 1,300 functional roles with predictable relationships. Coverage depth (sequencing depth) refers to the average number of reads covering each base across the assembled genome, calculated as the total number of clean bases divided by the genome size.
💡 Note for your post: You can use this as the “Goal” section of your tutorial or reminder post, followed by the step-by-step command-line instructions (e.g., seqkit, checkm2, mosdepth, and Python parsing) that we developed to automatically fill in these exact blank fields.
The complete list of tools and services available on the platform (e.g., BV-BRC), organized into a clean, hierarchical, and highly readable format for easy reference:
General Viral: Subspecies Classification, Viral Assembly
🚨 Outbreak Tracker
Measles 2025
Mpox 2024
Influenza H5N1 2024
SARS-CoV-2
💡 Tip for your workflow: If you need to extract the Coarse Consistency and Fine Consistency metrics for your manuscript table (as discussed earlier), you will primarily use the Genome Annotation or Comprehensive Genome Analysis (B) services under the Genomics category, as these trigger the EvalG and EvalCon subtools.
This is excellent news! Since you already have NCBI PGAP-annotated GenBank (.gb) files, we can completely skip Prokka. The GenBank COMMENT block contains the exact, high-quality annotation metrics (Genes, CDS, tRNA, rRNA, and Coverage) you need for your table.
Here is the updated, streamlined pipeline for Ubuntu. It uses your existing .fna files for assembly/QC metrics and the new .gb files for annotation metrics.
Step 1: Install Required Tools (if not already installed)
# Activate your conda environment (or install via mamba/conda if needed)
conda activate genome_stats
# Ensure you have seqkit and checkm2
mamba install -c bioconda seqkit checkm2 -y
Step 2: Define File Mapping
Based on your previous grep output and the new GenBank snippets, map your files. Navigate to your working directory:
cd ~/DATA/Data_Foong_DNAseq_2021_ATCC19606_Cm/bacass_out/checkm_input
(Note: Ensure both the .fna and .gb files are in this directory, or adjust the paths in the Python script below).
Use checkm2 on the .fna files (this remains the gold standard for these specific metrics).
# Run checkm2 prediction (adjust --threads based on your CPU cores)
checkm2 predict --input *.fna --output-directory checkm2_out --threads 8
# View the results
cat checkm2_out/quality_report.tsv
Step 5: Aggregate Everything into the Final Table (Python Script)
This updated Python script will:
Parse seqkit and checkm2 outputs.
Directly parse the PGAP COMMENT block from your .gb files to extract Coverage, Genes, CDS, tRNAs, and rRNAs.
Estimate the “Total number of reads sequenced” based on the formula: Reads = (Coverage × Genome Size) / (2 × Read_Length). (Assumes 150bp paired-end reads. Adjust READ_LENGTH in the script if your sequencing was 250bp).
Save the following code as generate_table_from_gb.py and run it:
import os
import re
import pandas as pd
# 1. Map your specific filenames (adjust extensions if they differ in your folder)
files = {
"Wildtype": {
"fna": "A6WT_chr_plasmids.fna",
"gb": "A6WT_chr_plasmids.bgpipe.output_2799988.gb" # Adjust suffix if needed
},
"ΔadeAB": {
"fna": "adeAB_chr_plasmids.fna",
"gb": "adeAB_chr_plasmids.bgpipe.output_1954487.gb"
},
"ΔadeIJ": {
"fna": "adeIJ_chr_plasmids.fna",
"gb": "adeIJ_chr_plasmids.bgpipe.output_2028963.gb"
},
"ΔcraA": {
"fna": "A10CraA_chr_plasmids.fna",
"gb": "A10CraA_chr_plasmids.bgpipe.output_1118303.gb"
}
}
# Initialize table structure
metrics_list = [
"Genome size (bp)", "Contig count", "Total number of reads sequenced",
"Coverage depth (sequencing depth)", "Coarse consistency (%)", "Fine consistency (%)",
"Completeness (%)", "Contamination (%)", "Contigs N50 (bp)", "Contigs L50",
"Guanine-cytosine content (%)", "Number of genes", "Number of coding sequences (CDSs)",
"Number of tRNAs", "Number of rRNAs"
]
data = {metric: ["N/A"] * 4 for metric in metrics_list}
data["Metrics"] = metrics_list
def parse_gb_file(gb_path):
"""Extract annotation metrics directly from PGAP GenBank COMMENT block."""
if not os.path.exists(gb_path):
# Fallback: try to find any .gb file matching the base name
base = os.path.basename(gb_path).split('.bgpipe')[0]
matches = [f for f in os.listdir('.') if f.startswith(base) and f.endswith('.gb')]
gb_path = matches[0] if matches else gb_path
if not os.path.exists(gb_path):
return None
with open(gb_path, 'r', encoding='utf-8') as f:
content = f.read()
# Extract Coverage (e.g., "Genome Coverage :: 360x")
cov_match = re.search(r'Genome Coverage\s+::\s+([\d.]+)x', content)
coverage = cov_match.group(1) if cov_match else 'N/A'
# Extract Genes (total)
genes_match = re.search(r'Genes \(total\)\s+::\s+([\d,]+)', content)
genes = genes_match.group(1).replace(',', '') if genes_match else 'N/A'
# Extract CDSs (total)
cds_match = re.search(r'CDSs \(total\)\s+::\s+([\d,]+)', content)
cds = cds_match.group(1).replace(',', '') if cds_match else 'N/A'
# Extract tRNAs
trna_match = re.search(r'tRNAs\s+::\s+([\d,]+)', content)
trna = trna_match.group(1).replace(',', '') if trna_match else 'N/A'
# Extract rRNAs (e.g., "1, 1, 1 (5S, 16S, 23S)" -> count the numbers)
rrna_match = re.search(r'rRNAs\s+::\s+([\d,\s]+)', content)
if rrna_match:
rrna_str = rrna_match.group(1).strip()
rrna_count = sum(1 for x in rrna_str.split(',') if x.strip().isdigit())
rrna = str(rrna_count)
else:
rrna = 'N/A'
return coverage, genes, cds, trna, rrna
# 2. Parse seqkit stats
if os.path.exists("assembly_stats.tsv"):
with open("assembly_stats.tsv", "r") as f:
lines = f.readlines()
for line in lines[1:]:
parts = line.strip().split("\t")
fname = parts[0]
# Find which strain this file belongs to
target_strain = None
for strain, paths in files.items():
if paths["fna"] in fname or fname.endswith(paths["fna"]):
target_strain = strain
break
if target_strain:
idx = list(files.keys()).index(target_strain)
data["Genome size (bp)"][idx] = parts[4] # sum_len
data["Contig count"][idx] = parts[3] # num_seqs
data["Contigs N50 (bp)"][idx] = parts[12] # N50
data["Contigs L50"][idx] = parts[13] # L50
data["Guanine-cytosine content (%)"][idx] = parts[14].replace("%", "")
# 3. Parse CheckM2
if os.path.exists("checkm2_out/quality_report.tsv"):
with open("checkm2_out/quality_report.tsv", "r") as f:
lines = f.readlines()
header = lines[0].strip().split("\t")
comp_idx = header.index("Completeness")
cont_idx = header.index("Contamination")
for line in lines[1:]:
parts = line.strip().split("\t")
fname = parts[0]
target_strain = None
for strain, paths in files.items():
if paths["fna"] in fname or fname.endswith(paths["fna"]):
target_strain = strain
break
if target_strain:
idx = list(files.keys()).index(target_strain)
data["Completeness (%)"][idx] = parts[comp_idx]
data["Contamination (%)"][idx] = parts[cont_idx]
# 4. Parse GenBank files & Estimate Reads
READ_LENGTH = 150 # Change to 250 if you used Illumina 2x250bp sequencing
for strain, paths in files.items():
idx = list(files.keys()).index(strain)
gb_data = parse_gb_file(paths["gb"])
if gb_data:
coverage, genes, cds, trna, rrna = gb_data
data["Coverage depth (sequencing depth)"][idx] = f"{coverage}x"
data["Number of genes"][idx] = genes
data["Number of coding sequences (CDSs)"][idx] = cds
data["Number of tRNAs"][idx] = trna
data["Number of rRNAs"][idx] = rrna
# Estimate Total Reads: (Coverage * Genome Size) / (2 * Read Length)
try:
cov_val = float(coverage)
genome_size = int(data["Genome size (bp)"][idx].replace(',', ''))
estimated_reads = int((cov_val * genome_size) / (2 * READ_LENGTH))
data["Total number of reads sequenced"][idx] = f"~{estimated_reads:,}"
except (ValueError, TypeError):
data["Total number of reads sequenced"][idx] = "N/A (Check FASTQ)"
# 5. Output the table
df = pd.DataFrame(data)
print(df.to_markdown(index=False))
# Save to TSV for easy copy-pasting into Word/Excel
df.to_csv("final_genome_table.tsv", sep="\t", index=False)
print("\n✅ Table successfully saved to final_genome_table.tsv")
Run the script:
python3 generate_table_from_gb.py
How to handle the remaining blanks:
Coarse consistency (%) & Fine consistency (%): Leave these as N/A or add a footnote to your manuscript table stating: “Calculated via BV-BRC EvalCon tool; not available via local CLI.” (As noted previously, these are proprietary BV-BRC machine-learning metrics).
Total number of reads sequenced: The script provides a highly accurate estimate (~X,XXX,XXX) based on the PGAP coverage and genome size. If your journal requires the exact raw read count, you can get it by running: zcat your_raw_R1.fastq.gz | echo $(( $(wc -l) / 4 )) and adding R1 + R2 together. However, the estimated value is usually perfectly acceptable for “Summary of sequence data” tables when derived from the assembler’s reported coverage.
Why this is much better:
No redundant annotation: Skipping Prokka saves hours of compute time and avoids discrepancies between Prokka and NCBI PGAP counts.
Direct extraction: Pulling straight from the PGAP COMMENT block guarantees the numbers in your table perfectly match the metadata of the files you are submitting to NCBI.
You are absolutely right to be cautious. The “Genome Coverage” reported in the PGAP GenBank comment is often an estimate provided by the submitter or the assembler, and it may not reflect the exact, post-mapping average depth.
Here is how you can calculate the exact coverage from your mapping files, followed by the crucial truth about calculating Coarse and Fine Consistency.
Part 1: How to Calculate Exact Coverage
The most accurate way to calculate coverage is from the mapping file (BAM), not the raw FASTQ. If you aligned your raw reads to your assembled .fna files, you already have (or can easily generate) a BAM file.
Option A: From a BAM file (Highly Recommended, Most Accurate)
We will use mosdepth, which is the modern, ultra-fast standard for calculating sequencing depth.
# 1. Install mosdepth (if not already installed)
conda install -c bioconda mosdepth -y
# 2. Calculate coverage for each genome
# Assuming you have a BAM file for each assembly (e.g., A6WT_mapped.bam)
# Replace 'genome.fna' and 'mapped.bam' with your actual filenames
for bam in *.bam; do
prefix=$(basename "$bam" .bam)
echo "Calculating coverage for $prefix..."
# -n means no per-base depth (much faster), -t is threads
mosdepth -n -t 4 "${prefix}_cov" genome.fna "$bam"
# Extract the mean coverage from the global distribution file
# The file looks like: length bases mean min max
mean_cov=$(awk 'NR==2 {print $3}' "${prefix}_cov.global.dist.txt")
echo "Mean Coverage for $prefix: ${mean_cov}x"
done
(Note: If you don’t have BAM files yet, you can generate them quickly using minimap2 and samtools: minimap2 -ax sr genome.fna reads_R1.fq.gz reads_R2.fq.gz | samtools sort -o mapped.bam)
Option B: From Raw FASTQ files (Estimation Only)
If you do not have BAM files and only have the raw FASTQ files, you can calculate a highly accurate estimate based on total sequenced bases divided by genome size.
# Run this in the directory containing your .fna and .fastq.gz files
# Adjust READ_LENGTH if your sequencing was 2x250bp instead of 2x150bp
READ_LENGTH=150
for fna in *.fna; do
prefix=$(basename "$fna" .fna)
# Get genome size from seqkit
genome_size=$(seqkit stats "$fna" | awk 'NR==2 {print $5}')
# Find corresponding FASTQ files (ADJUST THESE PATTERNS to match your actual file names!)
# Example: A6WT_R1.fastq.gz and A6WT_R2.fastq.gz
R1="${prefix}_R1.fastq.gz"
R2="${prefix}_R2.fastq.gz"
if [[ -f "$R1" && -f "$R2" ]]; then
# Count total lines in both files, divide by 4 to get total read pairs, multiply by 2 for total reads
total_reads=$(zcat "$R1" "$R2" | wc -l)
total_reads=$(( total_reads / 4 ))
# Calculate coverage: (Total Reads * Read Length) / Genome Size
coverage=$(echo "scale=2; ($total_reads * $READ_LENGTH) / $genome_size" | bc)
echo "$prefix: Estimated Coverage = ${coverage}x (Genome size: $genome_size bp, Total reads: $total_reads)"
else
echo "Warning: Could not find FASTQ files for $prefix. Please adjust the R1/R2 naming pattern in the script."
fi
done
Part 2: The Truth About “Coarse Consistency” and “Fine Consistency”
You cannot calculate “Coarse Consistency” and “Fine Consistency” using standard local Ubuntu command-line tools.
As stated in your manuscript footnote, these are proprietary metrics generated exclusively by the BV-BRC (Bacterial and Viral Bioinformatics Resource Center) platform using their EvalCon tool. This tool relies on a proprietary, machine-learning-derived catalog of ~1,300 functional roles with predictable relationships that is hosted on their servers. There is no open-source, standalone CLI equivalent (like CheckM or BUSCO) that outputs these exact two named metrics.
How to get these metrics (Your 2 Options):
Option 1: The BV-BRC Web Interface (Easiest & Recommended)
Go to Services -> Genome Annotation -> Annotate Genome (or “Genome Evaluation”).
Upload your 4 .fna files.
Select the appropriate taxonomy (e.g., Acinetobacter baumannii ATCC 19606).
Run the job. Once complete, open the results table. It will explicitly list columns for “Coarse Consistency” and “Fine Consistency”.
Copy these 4 values directly into your manuscript table.
Option 2: BV-BRC Command Line Interface (If you absolutely must automate it)
BV-BRC does have a CLI, but it requires setting up an API key.
# 1. Install the BV-BRC CLI (requires Node.js)
npm install -g @bvr/cli
# 2. Login to get your token (you will be prompted for your BV-BRC credentials)
bvr login
# 3. Submit a genome evaluation job (example for one file)
# This submits the job to their cloud servers
bvr submit genome-evaluation --input A6WT_chr_plasmids.fna --output eval_A6WT
# 4. Check job status and download results
bvr job-status
<JOB_ID>
bvr download
<JOB_ID> --output eval_A6WT_results.tsv
# 5. Extract the specific columns from the downloaded TSV
awk -F'\t' 'NR==1 {for(i=1;i<=NF;i++) if($i=="Coarse Consistency" || $i=="Fine Consistency") print i}' eval_A6WT_results.tsv
(Note: Option 1 is vastly simpler for just 4 genomes).
Part 3: The Local Alternative (If the journal allows it)
If your co-authors or the journal decide that relying on a web platform for two metrics is inconvenient, the universally accepted local command-line alternative for assessing genome annotation consistency and completeness is BUSCO (Benchmarking Universal Single-Copy Orthologs).
While it doesn’t use the terms “coarse/fine consistency”, it provides “Complete (Single/Copy)”, “Fragmented”, and “Missing” percentages, which reviewers universally accept as the gold standard for genome quality.
# 1. Install BUSCO
conda install -c bioconda busco -y
# 2. Run BUSCO on your assemblies (using the bacteria_odb10 lineage)
# -m geno means genome mode, -c is threads
for fna in *.fna; do
prefix=$(basename "$fna" .fna)
busco -i "$fna" -o busco_${prefix} -l bacteria_odb10 -m genome -c 4 --auto-lineage-euk
done
# 3. View the short summary which contains the consistency/completeness metrics
cat busco_A6WT_chr_plasmids/short_summary.specific.bacteria_odb10.A6WT_chr_plasmids.txt
Summary Recommendation for Your Table:
Use mosdepth (Part 1, Option A) to get the exact, defensible Coverage depth.
For Coarse/Fine Consistency, either quickly run the 4 files through the BV-BRC web portal (takes 5 minutes) to get the exact numbers requested by your footnote, OR replace those two rows with BUSCO Complete (%) and BUSCO Missing (%) and update the footnote to cite BUSCO instead of BV-BRC EvalCon.
For 16S rRNA amplicon sequencing data, you should submit your raw data to the Sequence Read Archive (SRA), organized under a BioProject and linked to individual BioSamples.
You should not submit raw 16S sequencing data primarily to GEO (Gene Expression Omnibus).
Here is a breakdown of why, how the NCBI submission hierarchy works, and how to correctly link your data if processed files are also required by the journal.
1. Why SRA and not GEO for Raw Data?
SRA (Sequence Read Archive) is the official NCBI repository for raw high-throughput sequencing reads, including 16S rRNA amplicon data (FASTQ files). NCBI guidelines and most scientific journals explicitly require raw microbiome sequencing data to be deposited here.
GEO is designed primarily for functional genomics data (e.g., RNA-Seq, microarrays, ChIP-Seq, ATAC-Seq) where the focus is on gene expression or epigenetic profiles. While researchers occasionally upload processed microbiome data (like an OTU/ASV count table) to GEO as a supplementary dataset, the raw sequencing files belong in SRA.
2. The Correct NCBI Submission Hierarchy
When you submit, you will build the submission in this exact order:
BioProject (The Umbrella)
What it is: The overarching description of your entire study.
What you provide: Project title (e.g., “Sex-specific gut microbiota and IL-17A response in aged mice after experimental stroke”), study type (Metagenomics or Amplicon), and a brief abstract. This generates a PRJNAxxxxxx accession number.
BioSample (The Biological Source)
What it is: A record for each individual biological sample you are submitting (e.g., Sample A1, Sample C3, Sample J10).
What you provide: Metadata describing the mouse (e.g., organism: Mus musculus, age: 14-16 months, sex: male/female, tissue: feces, treatment group: post-stroke, pre-FMT, etc.). This generates a SAMNxxxxxx accession number for each sample.
SRA (The Sequencing Data)
What it is: The actual raw data files and sequencing metadata.
What you provide: You will upload your demultiplexed FASTQ files (or a tarball of them) and link each file to its corresponding BioSample. You will also specify the sequencing platform (e.g., Illumina MiSeq), library strategy (AMPLICON), and target gene (16S rRNA). This generates an SRRxxxxxx (or ERR/DRR) accession number for each run.
3. The Two-Step Strategy: Linking SRA Raw Data to GEO Processed Data
If the target journal require you to also submit processed data (e.g., the final OTU/ASV abundance table used to generate Figures 4 and 5) to GEO, NCBI provides a streamlined workflow to avoid duplicate uploads.
GEO submissions require a metadata spreadsheet. Metadata refers to descriptive information about the overall study, individual samples, all protocols, and references to processed and raw data file names. Information is supplied by completing all fields of a metadata template spreadsheet (guidelines are provided within the file).
💡 Important: Provide enough details so that users can get a general understanding of the study and samples from the GEO records. Please spell out all acronyms and abbreviations. Submit a separate metadata spreadsheet for each data type.
Have you already submitted raw data to SRA and now want to submit to GEO?
If you already have your raw data in SRA, you do not need to submit it again to GEO. NCBI only needs the processed data and a specialized metadata file in order to create GEO records and link them to your raw data records previously submitted to SRA.
To do this, you must choose the second option in the GEO submission portal:
👉 “Download metadata spreadsheet with SRA accessions”
What you need to do: You will need to enter the PRJNA, SAMN, and SRX or SRR accession numbers for all samples with raw data already submitted to SRA.
Where to find this: You can get this information for your SUB ID on the NCBI Submission Portal page after your SRA submission is initiated.
4. Actionable Next Steps & Summary Workflow
Finalize the sample list with your co-authors (confirming Groups 1–11 and excluding Groups 12–14 and the 2022 legacy data).
Prepare a Metadata Spreadsheet: Use the NCBI template. You will need one row per sample (e.g., A1, A2… B1, B2…) with columns for: sample_name, bioSample_model (mouse), sex, age, tissue (feces), collection_date, and treatment (e.g., “post-stroke day 3”, “pre-FMT baseline”).
Step 1: Submit to SRA First: Go to the NCBI SRA Submission Wizard (https://submit.ncbi.nlm.nih.gov/). Create the BioProject, batch-upload the BioSample metadata, and upload the raw FASTQ files. Save your generated PRJNA, SAMN, and SRR numbers.
Step 2: Submit Processed Data to GEO: Go to the GEO submission portal. Choose the option to “Download metadata spreadsheet with SRA accessions”. Fill it out with your processed data file names and the SRA accession numbers you just generated. Upload this to link everything together.
Pro Tip: If the journal is flexible, processed data can often just be included as a Supplementary File (e.g., a .csv or .xlsx file) with the manuscript, or deposited in a repository like Figshare or Zenodo. However, if GEO is explicitly requested, the two-step SRA-first workflow above is the correct and most efficient method.
TODOs: drafting the BioProject abstract and formatting the BioSample metadata spreadsheet!
I am organizing the 16S rRNA sequencing data for deposition in the NCBI Sequence Read Archive (SRA).
Because only a subset of the sequenced samples was ultimately used in the final manuscript figures, I have compiled an exact list of the specific samples to be submitted. I want to ensure our public dataset perfectly aligns with the content of the manuscript.
Here is the exact list of samples I will upload to NCBI, mapped to the manuscript figures. Could you please confirm that they are correct?
1. Stroke Model Groups (Used in Fig. 4D–F for blood/brain SCFA)
Group 1 (Aged ♂, Post-stroke): Submitting A1–A11
Group 2 (Aged ♀, Post-stroke): Submitting B1–B16
2. Baseline Donor Groups (Used in Fig. 4A–C, Supp. Fig. 4, Fig. 5C)
Group 3 (Aged ♀ FMT Donor): Submitting C1–C6 (n=6).
Excluded: C7–C10 (C8–C9 excluded due to age; C10 excluded as an outlier/low sequencing depth).
Group 4 (Aged ♂ FMT Donor): Submitting E1–E8 (n=8).
Excluded: E9–E10 (low sequencing depth/outliers).
Group 5 (Young ♂ Control Donor): Submitting F1–F5 (Control, not shown in main figures).
3. Pre-FMT Baseline Groups (Used in Fig. 5B as purple dots, n=18 total)
Group 6 (Aged ♂, Pre-FMT): Submitting G1–G6
Group 7 (Aged ♀, Pre-FMT): Submitting H1–H6
Group 8 (Young ♂, Pre-FMT): Submitting I1–I6
4. FMT Recipient Groups (Used in Fig. 5B, 5C, 5D, 5E)
Exclusion of Groups 12, 13, and 14 (Samples M, N, O), as well as Group 5, since they are not shown in the final manuscript.
Exclusion of the 2022 Legacy Dataset: I also identified an older sequencing run from 2022 (containing samples labeled Group 1 to Group 8, covering f.aged, f.young, m.aged, and m.young in pre/post-stroke conditions). Since this dataset is from an earlier pilot phase and is not referenced or utilized in the current manuscript, I assume we should NOT submit this 2022 data as part of this paper’s NCBI submission. Could you please confirm if this is correct?
“Principal coordinates analysis (PCoA) of young male mice before (purple) (n=18), and after FMT of aged male (n=6) (blue) or female (n=6) (red) or young male (n=5) (green) stool donors.”
→ 明确说明分析对象是 young male mice,括号内描述的是 stool donors(粪便供体)的特征。
来自 Supplemental Methods “Microbiota eradication and FMT”:
“4 weeks old male mice were treated for 2 weeks with an antibiotic cocktail… recipient mice were gavaged with donor stool four times over two weeks.”
→ 受体小鼠起始年龄为 4周龄(年轻)。
Figure 5 小标题:
“FMT of aged male microbiota increases IL-17A-producing γδ T cells in the post-ischemic brain of young recipient mice“
→ 再次确认受体是 young recipient mice。
🔹 为什么这样设计?
这个实验的核心科学问题是:
“供体微生物的年龄/性别特征,能否通过移植’传递’给受体,并影响受体的免疫反应?”
通过保持受体一致(年轻雄性),仅改变供体来源,可以:
排除受体自身年龄/性别的混杂效应
直接评估供体微生物对受体免疫表型(如 IL-17A⁺ γδ T 细胞)的因果影响
验证”微生物介导的年龄/性别差异”假说
✅ 快速记忆口诀
“FMT 标签 = 供体特征,不是受体特征”
aged♂ FMT = 供体是老年雄性
受体永远是年轻雄性(本实验中)
🔹 Figure 5B: PCoA of FMT Experiment
“Principal coordinates analysis (PCoA) of young male mice before (purple) (n=18), and after FMT of aged male (n=6) (blue) or female (n=6) (red) or young male (n=5) (green) stool donors.”
🟣 Purple (pre-FMT, n=18): Groups 6+7+8 → G1–G6, H1–H6, I1–I6
⚠️ Key difference: Group11 (young♂ FMT recipients, L2–L6) is shown in Figure 5B but is NOT included in Figure 5C, since Figure 5C focuses on comparing the effect of aged donor microbiota.
🔹 Figure 5D: Bubble Plot of Differentially Abundant Taxa (DESeq2)
“Bubble plot showing differentially abundant Operational Taxonomic Units (OTUs) between young male recipients of aged female vs. aged male FMT. x-axis = log₂ fold change, y-axis = bacterial family, bubble size = adjusted p-value, color = bacterial order.”
🔵 Aged♂ FMT recipients (Group9, n=6): J1, J2, J3, J4, J10, J11 → Reference group (log₂FC < 0 = enriched in this group)
🔴 Aged♀ FMT recipients (Group10, n=6): K1–K6 → Comparison group (log₂FC > 0 = enriched in this group)
Key families highlighted in the plot:
Direction
Family (Order)
Enriched in
Biological note
🔴 Positive log₂FC
Lachnospiraceae (Clostridiales)
Aged♀ FMT
SCFA producer
🔴 Positive log₂FC
Ruminococcaceae (Clostridiales)
Aged♀ FMT
SCFA producer
🔴 Positive log₂FC
Muribaculaceae (Bacteroidales)
Aged♀ FMT
SCFA producer
🔴 Positive log₂FC
Desulfovibrionaceae (Desulfovibrionales)
Aged♀ FMT
Sulfate-reducing
🔵 Negative log₂FC
Erysipelotrichaceae (Erysipelotrichales)
Aged♂ FMT
Pro-inflammatory association
🔵 Negative log₂FC
Rikenellaceae (Bacteroidales)
Aged♂ FMT
Context-dependent
🔵 Negative log₂FC
Clostridiales vadinBB60 group
Aged♂ FMT
Function unclear
⚠️ Note: This analysis uses DESeq2 on non-rarefied integer counts from ps_filt, with taxa prefiltered (total counts ≥10). Only taxa with Benjamini–Hochberg adjusted p < 0.05 are shown. The same ASVs/OTUs appear in Figure 4C and Supplementary Figure 4B, but Figure 5D specifically compares FMT recipient outcomes (Groups 9 vs. 10), not baseline donor differences.
🔹 Figure 4B-C: Sex Differences in Aged Mice (16S rRNA-seq panels B–C)
“We profiled the gut bacterial composition of aged male and female mice by 16S rRNA-seq…”
Baseline aged female donors: Group3 → C1–C6
Baseline aged male donors: Group4 → E1–E8
(Note: Figure 4D–F show SCFA concentrations measured by targeted UHPLC-MS/MS, not 16S data.)
✅ PICRUSt2 NOT used in Figure 4D–F
Your observation is CORRECT: PICRUSt2 results are NOT used in Figure 4D–F.
Question
Answer
Evidence
Are PICRUSt2 results used in Figure 4?
❌ No
Figure 4D–F legend explicitly states: “measured by targeted mass spectrometry”
Are PICRUSt2 results used anywhere in the manuscript?
❌ No evidence
README_PICRUSt2.txt files contain exploratory pipeline notes, but no PICRUSt2 figures, tables, or text appear in 260311_LTPaper.pdf or 260310_Supplements.pdf
Is the SCFA data in Figure 4D–F experimentally measured?
✅ Yes
Supplemental Methods (pages 12–13) describe UHPLC-MS/MS quantification with internal standards, derivatization, and MRM parameters
Key distinction:
PICRUSt2 → Predicts functional potential (gene/pathway abundances) from 16S sequences; outputs are relative, unitless values.
Figure 4D–F → Measures actual SCFA concentrations (acetate, butyrate, etc.) in µmol/l via targeted mass spectrometry; outputs are absolute, quantitative values.
Here is the merged quick reference table combining Figure 5B, 5C, and 5D with related figures, formatted for easy copy-paste:
🔹 Quick Reference: All Figure 5 Panels vs. Related Figures
Figure
Comparison
Sample IDs (exact)
n
Purpose
Figure 4B-C
Aged♀ vs. aged♂ donors (homeostatic)
C1–C6 vs. E1–E8
6 vs. 8
Baseline sex differences in microbiota (DESeq2 bubble plot)
Suppl Fig 4B
Same as Fig 4C
C1–C6 vs. E1–E8
6 vs. 8
Phylogenetic context of differential taxa (cladogram)
Taxonomic composition: donors vs. recipients (relative abundance)
Figure 5D
Aged♀ vs. aged♂ FMT recipients (DESeq2)
K1–K6 vs. J1, J2, J3, J4, J10, J11
6 vs. 6
Effect of donor microbiota on recipient immune response (differential abundance)
Figure 5E
Same recipients as Fig 5D (+ young♂ control)
K1–K6 vs. J1, J2, J3, J4, J10, J11 (+ L2–L6)
6 vs. 6 (+5)
IL-17A+ γδ T cells in brain post-FMT (flow cytometry)
🔹 Sample-ID Master List for Figure 5
Group #
Description
Sample Prefix
Full IDs
Used In
3
Aged female, baseline FMT donor
sample-C*
C1–C10 (C1–C6 used in Fig 4B-C, Suppl Fig 4, Fig 5C)
Fig 4C, Suppl Fig 4, Fig 5C
4
Aged male, baseline FMT donor
sample-E*
E1–E10 (E1–E8 used in Fig 4B-C, Suppl Fig 4, Fig 5C)
Fig 4B-C, Suppl Fig 4, Fig 5C
6
Aged male, pre-antibiotics FMT batch I
sample-G*
G1–G6
Fig 5B (purple), Fig 5C (Boxplot 1)
7
Aged female, pre-antibiotics FMT batch I
sample-H*
H1–H6
Fig 5B (purple), Fig 5C (Boxplot 1)
8
Young male, pre-antibiotics FMT batch II
sample-I*
I1–I6
Fig 5B (purple), Fig 5C (Boxplot 1)
9
Young male, post-FMT aged male stool
sample-J*
J1–J4, J10, J11 (J5–J9 excluded)
Fig 5B (blue), Fig 5C (Boxplot 4), Fig 5D, Fig 5E
10
Young male, post-FMT aged female stool
sample-K*
K1–K6
Fig 5B (red), Fig 5C (Boxplot 5), Fig 5D, Fig 5E
11
Young male, post-FMT young male stool
sample-L*
L2–L6 (L1, L7–L15 excluded)
Fig 5B (green), Fig 5E (not in Fig 5C/D)
🔹 Key Notes for Interpretation
Figure 5B vs. 5C: Figure 5B shows beta-diversity (PCoA) of all FMT groups; Figure 5C shows taxonomic composition (boxplots) of donors + recipients. Group11 (young♂ FMT) is in 5B but not in 5C.
Figure 5D: Uses DESeq2 on non-rarefied counts from ps_filt (taxa prefiltered: total counts ≥10). Only taxa with BH-adjusted p < 0.05 are shown.
Figure 5E: Includes the same recipients as Fig 5D plus the young♂ FMT control group (Group11, L2–L6) for comparison of IL-17A+ γδ T cells.
Sample exclusions: C7–C10, E9–E10, J5–J9, K7–K15, L1, L7–L15 were excluded for low depth, outliers, or QC reasons (see README files).
Let me know if you’d like me to:
Export the exact DESeq2 results table for Figure 5D as CSV/Excel,
Provide the R code snippet that generates the bubble plot for Figure 5D, or
Draft the full email reply to your colleague with these merged tables integrated. 🎯
Thank you for sending the manuscript and for the opportunity to review the specified sections. I have carefully reviewed lines 276–348 covering the microbiota composition analysis and FMT experiments.
✅ Text Review: Minor Corrections Suggested
I noticed a few minor typographical inconsistencies in the taxonomic nomenclature that may warrant correction before submission:
Line
Current Text
Suggested Correction
295
Muribaculae (order Bacteroidalis)
Muribaculaceae (order Bacteroidales)
298
Ruminococcae
Ruminococcaceae
334
Muribaculae
Muribaculaceae
These appear to be minor spelling variations; please confirm if these align with your intended taxonomic references.
The scientific content, logic flow, and figure references (Fig. 4A–D, Fig. 5A–E) are clear and well-integrated with our analysis scripts (MicrobiotaProcess_Group3-4.R and MicrobiotaProcess_Group9_10_11_PreFMT.R).
🗂️ NCBI SRA Data Submission
Regarding the NCBI SRA citation:
Data readiness: The 16S rRNA sequencing data (Group 3/4 and Group 9/10/11/pre-FMT) are processed and ready for upload.
Next steps:
I can prepare the metadata table (sample IDs, Group, Sex_age, pre_post_stroke) in the format required by NCBI BioProject.
Once uploaded, we will receive a BioProject/BioSample accession number (e.g., PRJNAxxxxxx) to cite in the manuscript.
Suggested placement for citation:
Dataset: 16S rRNA-seq data are deposited in the NCBI Sequence Read Archive (SRA)
under BioProject accession number [TO BE ADDED].
If you confirm, I can proceed with preparing the submission files this week so we meet your timeline.
📅 Timeline
I am flexible and ready to assist with final revisions or SRA submission as needed. Please let me know the exact submission date once confirmed, and I will prioritize accordingly.
Thank you again, and I wish you a pleasant weekend as well!
Note for me: Before sending,:
Double-check the taxonomic spellings against your reference database (SILVA/GTDB)
Confirm whether Marius prefers to handle the SRA upload himself or delegate it
Attach the prepared metadata template if you want to expedite the process
Would you like me to help draft the NCBI BioProject metadata table or refine any part of this reply?
Draft genome sequence of Enterobacter hormaechei HKEH-1 isolated from a diabetic patient’s blood (Data_Tam_DNAseq_2025_E.hormaechei_and_Non-antibiotic_transport_on_ATCC19606/)
Genome sequences and transcriptomic data of Acinetobacter baumannii ATCC19606 devoid of efflux pumps (Data_Foong_DNAseq_ATCC19606_Cm/)
Distinct Substrate Specificities of AdeABC and AdeIJK Shape Tolerance to Human-Targeted Drugs in Acinetobacter baumannii (Data_Tam_DNAseq_2025_E.hormaechei_and_Non-antibiotic_transport_on_ATCC19606/)
1. Specialized Analytical Approach for Isolates of Clinical and Environmental Origin (e.g., Z2605 and Z2914)
Run nextflow bacass
conda deactivate
# Downlod k2_standard_08_GB_20251015.tar.gz from https://benlangmead.github.io/aws-indexes/k2#kraken2--bracken
# Download 20190108_kmerfinder_stable_dirs.tar.gz from https://zenodo.org/records/13447056; 'tar xzf 20190108_kmerfinder_stable_dirs.tar.gz' #The database does not work!
# Download the kmerfinder database: https://www.genomicepidemiology.org/services/ --> https://cge.food.dtu.dk/services/KmerFinder/ --> https://cge.food.dtu.dk/services/KmerFinder/etc/kmerfinder_db.tar.gz #The database works!
# DEBUG: --kmerfinderdb /mnt/nvme1n1p1/REFs/kmerfinder/bacteria/ not working!
nextflow run nf-core/bacass -r 2.6.0 -profile docker --help
# -- Hybrid assembly --
nextflow run nf-core/bacass -r 2.6.0 -profile docker \
--input samplesheet_bacass.tsv \
--outdir bacass_out \
--assembly_type hybrid \
--assembler unicycler,dragonflye \
--kraken2db /mnt/nvme1n1p1/REFs/k2_standard_08_GB_20251015.tar.gz \
--skip_kmerfinder \
-resume \
-work-dir bacass_out/work
# -- Short assembly --
#Maybe BUG is from '--skip_kmerfinder for -r 2.6.0, using db in 2.5.0'
nextflow run nf-core/bacass -r 2.5.0 -profile docker \
--input samplesheet.tsv \
--outdir bacass_out \
--assembly_type short \
--kraken2db /mnt/nvme1n1p1/REFs/k2_standard_08_GB_20251015.tar.gz \
--kmerfinderdb /mnt/nvme1n1p1/REFs/kmerfinder/bacteria/ \
-resume \
-work-dir bacass_out/work
Verify if the genome is pure
# 1. Go up one level to the main 'bacass_out' directory
cd ..
# 2. Create directories for CheckM inputs and outputs
mkdir -p checkm_input checkm_output
# 3. Copy all .fna files into the 'checkm_input' folder
# (CheckM cannot search subdirectories, so they must be in one folder)
find ./Prokka -name "*.fna" -exec cp {} checkm_input/ \;
# 4. Run CheckM on all 4 assemblies
(checkm_env2) checkm lineage_wf -x fna checkm_input checkm_output
Species Identification: 快速筛查用 Mash → 精确分类用 GTDB-Tk → 种级验证用 FastANI,三者结合可最大限度提高物种鉴定的准确性和可解释性。
Please find below a summary of genomic analyses for samples 2605, 2617, 2631 and 2914.
### 1. Assembly and checkM
------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bin Id Completeness Contamination Strain heterogeneity
------------------------------------------------------------------------------------------------------------------------------------------------------------------
2631_ 100.00 100.00 78.57
2617_ 100.00 100.00 78.57
2605_ 100.00 0.00 0.00
2914_ 99.98 0.63 0.00
----------------------------------------------------------------------------------------------------------------------------------------------------------------
From the results of checkM, we see the samples 2631_ and 2617_ both are genomes between 7.0-7.1 M. and the contamination is 100.00, which means the DNA sample contained two closely related strains of the same species from a non-clonal culture. If the true genome size is a standard ~3.7 Mb and the assembler couldn't merge the two highly similar strains, it would build both side-by-side. This results in a ~7.0 Mb assembly where every gene is duplicated.
The sample 2605_.fna is 3.7 M and 2914_.fna is about 3.9M. they are pure isolates.
### 1. Species Identification
**Sample 2605_:** *Acinetobacter baumannii* ✅ Confirmed
| Parameter | Value | Interpretation |
|---|---|---|
| Closest Reference | GCF_009759685.1 | Reference genome of *A. baumannii* |
| ANI | 98.02% | ✅ Well above 95% species threshold |
| AF (Alignment Fraction) | 0.874 | ✅ 87.4% of genome aligns; ANI estimate is robust |
| Final Taxonomy | `d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Pseudomonadales;f__Moraxellaceae;g__Acinetobacter;s__Acinetobacter baumannii` | Consistent with genomic expectations |
🟢 **Conclusion:** 2605_ is confidently assigned to *Acinetobacter baumannii*.
***
**Sample 2617_:** *Acinetobacter baumannii* ✅ Confirmed
| Parameter | Value | Interpretation |
|---|---|---|
| Closest Reference | GCF_009759685.1 | Reference genome of *A. baumannii* |
| ANI | 98.00% | ✅ Well above 95% species threshold |
| AF (Alignment Fraction) | 0.859 | ✅ 85.9% of genome aligns; ANI estimate is robust |
| Final Taxonomy | `d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Pseudomonadales;f__Moraxellaceae;g__Acinetobacter;s__Acinetobacter baumannii` | Consistent with genomic expectations |
🟢 **Conclusion:** 2617_ is confidently assigned to *Acinetobacter baumannii*.
***
**Sample 2631_:** *Acinetobacter baumannii* ✅ Confirmed
| Parameter | Value | Interpretation |
|---|---|---|
| Closest Reference | GCF_009759685.1 | Reference genome of *A. baumannii* |
| ANI | 98.07% | ✅ Well above 95% species threshold |
| AF (Alignment Fraction) | 0.860 | ✅ 86.0% of genome aligns; ANI estimate is robust |
| Final Taxonomy | `d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Pseudomonadales;f__Moraxellaceae;g__Acinetobacter;s__Acinetobacter baumannii` | Consistent with genomic expectations |
🟢 **Conclusion:** 2631_ is confidently assigned to *Acinetobacter baumannii*.
***
**Sample 2914_:** *Acinetobacter baumannii* ✅ Confirmed
| Parameter | Value | Interpretation |
|---|---|---|
| Closest Reference | GCF_009759685.1 | Reference genome of *A. baumannii* |
| ANI | 98.11% | ✅ Well above 95% species threshold |
| AF (Alignment Fraction) | 0.873 | ✅ 87.3% of genome aligns; ANI estimate is robust |
| Final Taxonomy | `d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Pseudomonadales;f__Moraxellaceae;g__Acinetobacter;s__Acinetobacter baumannii` | Consistent with genomic expectations |
🟢 **Conclusion:** 2914_ is confidently assigned to *Acinetobacter baumannii*.
### 3. Since 2631_ and 2617_ are not a pure isolates, they are the mixed of two strains. I exclude the two samples from AMR and VFDB analysis. AMR Genes and Virulence Factors (VFDB) Summary, see the Resistome_Virulence_2605.xlsx and Resistome_Virulence_2914.xlsx.
6.1 Filter the FASTA files: Write a simple script (e.g., using awk or Biopython) to remove all contigs < 500 bp from both the 2605 and 2914 assemblies. Ensure the circular=true flag remains in the defline of the confirmed plasmids.
# Filter strain 2605 (keep contigs >= 500 bp)
seqkit seq -m 500 2605_.scaffolds.fa > strain_2605_500nt.fasta
# Filter strain 2914 (keep contigs >= 500 bp)
seqkit seq -m 500 2914_.scaffolds.fa > strain_2914_500nt.fasta
# Optional: Verify the number of contigs before and after
seqkit stats 2605_.scaffolds.fa strain_2605_500nt.fasta
6.2 To extract the plasmid candidates based on coverage (depth), we need to parse the FASTA headers, identify the coverage value, and filter out the contigs that have a significantly higher coverage than the chromosome (which is ~1.0x). Typically, plasmids have a coverage of ≥ 1.5x or 2.0x.
# Extract plasmid candidates for Strain 2605 (Threshold >= 1.5x)
#python ~/Scripts/extract_plasmid_candidates.py strain_2605_filtered.fasta strain_2605_plasmid_candidates.fasta 1.5
# Extract plasmid candidates for Strain 2914 (Threshold >= 1.5x)
#python ~/Scripts/extract_plasmid_candidates.py strain_2914_filtered.fasta strain_2914_plasmid_candidates.fasta 1.5
#Manually selecting all contigs after the number 40 as candidates; in manuscript say all contigs < 400,000 nt are checked by blastn web service.
cp strain_2605_500nt.fasta strain_2605_plasmid_candidates.fasta
cp strain_2914_500nt.fasta strain_2914_plasmid_candidates.fasta
### The Actual Maximum Size Record
The upper limit of bacterial plasmids is far beyond 100 kb:
- Plasmids in nature have been documented to range from 1 kb to **over 400 kb** as a common upper bound for standard plasmids [[12]].
- For megaplasmids, the recorded maximum size can reach up to **2.5 Mb (2,500,000 nt)** [[5]].
- Specific examples include linear or circular megaplasmids in bacteria like *Streptomyces* or *Pseudomonas* species that have been sequenced at sizes of **1.8 Mb** [[2]] and even up to **2.43 Mb (2,430 kb)** [[14]].
- In your specific BLAST results for *Acinetobacter baumannii*, you saw plasmids ranging from ~2 kb up to ~300 kb (e.g., the ~335 kb unnamed plasmids). This is completely normal for this pathogen, as it frequently harbors large conjugative plasmids carrying multiple antibiotic resistance genes (like NDM or OXA carbapenemases).
6.3 Web BLASTn Strategy
1. **Database Selection:** Choose **"Nucleotide collection (nr/nt)"** or **"RefSeq Representative Genomes"**.
2. **Organism Filter (Optional but recommended):** To avoid getting hits from completely unrelated species, you can restrict the organism to your specific genus/species (e.g., *Acinetobacter* or *Acinetobacter baumannii* based on your previous metadata).
3. **What to look for in the results:**
* **True Plasmids:** Will show high query coverage (>90%) and high identity (>95%) to known plasmids in the database. The subject titles will explicitly say "plasmid" (e.g., *Acinetobacter baumannii plasmid pAB3, complete sequence*).
* **Chromosomal misassemblies / Phages:** If a contig hits a "chromosome" with 100% coverage, it's likely a misassembled chromosomal fragment or a prophage integrated into the chromosome. If it hits a "bacteriophage", it's a phage, not a plasmid.
4. **Batch BLAST:** You can upload the entire `_plasmid_candidates.fasta` file directly into the BLASTn query box. NCBI will BLAST all contigs in the file simultaneously, saving you from doing it one by one.
# Click "Download" --> "Descriptions Table (CSV)" downlod the results for each contig, save them as contig40.csv ... and so on.
merge_contig.sh
mv all_plasmid_candidates_blast.txt 2605_all_plasmid_candidates_blast.txt
mkdir 2605_all_plasmid_candidates_blast
mv contig*.csv 2605_all_plasmid_candidates_blast
# Click "Download" --> "Descriptions Table (CSV)" downlod the results for each contig, save them as contig40.csv ... and so on.
merge_contig.sh
mv all_plasmid_candidates_blast.txt 2914_all_plasmid_candidates_blast.txt
mkdir 2914_all_plasmid_candidates_blast
mv contig*.csv 2914_all_plasmid_candidates_blast
# TODO: upload two python scripts code: merge_contig.sh and split_fasta.py.
python ~/Scripts/split_fasta.py strain_2605_500nt.fasta 2605_plasmids.fasta 2605_chromosome.fasta 47,49,50,51,61,62
python ~/Scripts/split_fasta.py strain_2914_500nt.fasta 2914_plasmids.fasta 2914_chromosome.fasta 46
#The circular=true Flag (Topology)
#Isolate 2605: Apply ONLY to contig 49 and contig 51.
#Isolate 2914: Apply ONLY to contig 46.
#True Linear Plasmids (Independent Replicons)
#Isolate 2605: contig 47, 50, 61, 62
#Isolate 2914: None. (Note: 2914’s only true plasmid is the circular contig 46. The other hits were MGEs/Phages).
6.4 Prepare Metadata: Ensure you have the required BioProject and BioSample accession numbers, along with the strain names, isolation sources, and assembly method details ready.
!!!! TODO !!!!: submit later also the fastq.gz files
Definition: Acinetobacter baumannii strain Z2605
Authors: 1) Zhang, Ximei, 2) Foong, Wuen-Ee, 3) Huang, Jiabin, 4) Tam, Heng-Keat
Title: Draft genome sequence of Acinetobacter baumannii strain Z2605 recovered from an untreated hospital effluent in Hengyang, China;
Source: mol_type="genomic DNA" strain="Z2605"
isolation_source="environment; untreated hospital wastewater";geo_loc_name="China: Hunan, Hengyang, The Second Affiliated Hospital of University of South China" collection_date="2026"
Culture
LB broth, 37 C, 18 h
DNA preparation
DNA preparation – TIANamp Bacteria DNA kit (Tiangen Biotech Co. Ltd.)
Short-read sequencing
Sequencing platform – Illumina (Novogene Bioinformatics Technology Co., Ltd)
Definition: Acinetobacter baumannii strain Z2914
Authors: 1) Zhang, Ximei, 2) Foong, Wuen-Ee, 3) Huang, Jiabin, 4) Tam, Heng-Keat
Title: Draft genome sequence of Acinetobacter baumannii strain Z2914, isolated from human urine
Source: mol_type="genomic DNA" strain="Z2914" host="Homo sapiens"
isolation_source="clinical; urine; urinary tract infection" geo_loc_name="China: Hunan, Hengyang, The Second Affiliated Hospital of University of South China" collection_date="2025"
Culture
LB broth, 37 C, 18 h
DNA preparation
DNA preparation – TIANamp Bacteria DNA kit (Tiangen Biotech Co. Ltd.)
Short-read sequencing
Sequencing platform – Illumina (Novogene Bioinformatics Technology Co., Ltd)
# The bacterial strain and its source DNA are available upon request by contacting the corresponding author or the submitter: Lab Tam, Department of Medical Microbiology, Hengyang Medical School, University of South China, Hengyang 421001, Hunan, China #-Heng‑Keat
6.5 Based on the BLAST results and standard plasmid naming conventions for Acinetobacter baumannii, here are the suggested plasmid names:
## **Isolate 2605:**
| Contig | Suggested Name | Rationale |
|--------|----------------|-----------|
| **47** | `pZ2605_1` | First plasmid, ~6.5 kb, matches *Acinetobacter* plasmids |
| **49** | `pZ2605_2` | Second plasmid, ~4.5 kb, circular, matches pRAB57-5 family |
| **50** | `pZ2605_3` | Third plasmid, ~4.2 kb, matches unnamed *Acinetobacter* plasmids |
| **51** | `pZ2605_4` | Fourth plasmid, ~2.9 kb, circular, small cryptic plasmid |
| **61** | `pZ2605_5` | Fifth plasmid, ~1 kb, matches pDETABR21-5 family |
| **62** | `pZ2605_6` | Sixth plasmid, small plasmid |
## **Isolate 2914:**
| Contig | Suggested Name | Rationale |
|--------|----------------|-----------|
| **46** | `pZ2914_1` | Primary plasmid, ~8.7 kb, circular |
---
### **Alternative Naming Convention (if you prefer feature-based names):**
If any of these plasmids carry specific resistance genes or features identified by PGAP annotation, you could use:
- `pZ2605_NDM` (if carrying blaNDM)
- `pZ2605_OXA` (if carrying blaOXA)
- `pZ2605_rep` (based on replication type)
### **For NCBI Submission:**
Use the simple numerical naming (`pZ2605_1`, `pZ2605_2`, etc.) in your FASTA headers. After PGAP annotation, you can update the names if specific features are identified.
# Note: Starting in early 2027, all sequences in prokaryotic and eukaryotic genome submissions must be at least 1,000 nucleotides long. Read the details and other new requirements.
To provide a complete and consolidated view without creating too many fragmented tables, I have merged all contigs into two comprehensive master tables (one for each isolate).
To keep the tables readable while strictly including every single contig, the main chromosomal backbone (Contigs 1–39 for 2605, and Contigs 1–45 for 2914) is grouped into a single summary row at the top, as they all share the exact same ~1.0x depth and 100% chromosomal BLAST identity. Every contig from 40 onwards is listed individually.
(Note: I have also corrected the depth/length mapping for a few contigs based on your original raw data to ensure 100% accuracy).
💡 Final Submission Checklist based on these Master Tables:
The circular=true Flag: Only apply this to contig 49 & 51 (2605) and contig 46 (2914).
The “Depth Traps” (Do NOT label as plasmids):
2605: 48, 58, 64, 65, 66
2914: 71, 72, 89, 90
Action: Submit them as linear contigs. PGAP will correctly identify them as chromosomal repeats.
The AMR/MGE Contigs:
2605: 54, 59 (NDM)
2914: 83 (NDM)
Action: Submit as linear. PGAP will annotate the AMR genes.
The Prophages:
2914: 62, 65, 73, 91, 93
Action: Submit as linear. PGAP will annotate them as prophage.
True Plasmids:
2605: 47, 50, 61, 62
Action: Submit as linear. PGAP will identify the rep genes and annotate them as plasmid.
You have a very sharp eye! You are absolutely correct to point out that omission.
The reason 2914 was missing from the “True Linear Plasmids” category is that, based on the BLAST results, 2914 only has one true plasmid (contig 46), and it is circular. All the other high-depth or plasmid-hitting contigs in 2914 turned out to be integrated AMR transposons (MGEs) or prophages, rather than independent linear plasmids.
Here is the Complete, Final, and Corrected Submission Checklist covering every single category for both isolates. You can use this as your final master guide before uploading to the NCBI Submission Portal.
📋 FINAL NCBI PGAP SUBMISSION CHECKLIST
1. The circular=true Flag (Topology)
This is the most critical manual step. PGAP relies on this exact string in the FASTA header to correctly format circular genomes/plasmids.
Isolate 2605: Apply ONLY to contig 49 and contig 51.
Isolate 2914: Apply ONLY to contig 46.
Action: Ensure no other contigs have this flag. Submit these as circular molecules.
2. True Linear Plasmids (Independent Replicons)
These contigs contain plasmid replication genes (e.g., repA) but are assembled as linear fragments.
Isolate 2605:contig 47, 50, 61, 62
Isolate 2914:None.(Note: 2914’s only true plasmid is the circular contig 46. The other hits were MGEs/Phages).
Action: Submit as standard linear contigs. PGAP will automatically detect the plasmid-specific genes and annotate them as plasmid.
3. AMR / Mobile Genetic Elements (MGEs)
These are resistance transposons (e.g., Tn125, Tn2006) or integrons. They have high depth because they may be multi-copy or highly expressed, but they lack plasmid replication genes.
Action: Submit as linear contigs. DO NOT label as plasmids. PGAP will annotate the AMR genes and transposases as mobile_element or misc_feature.
4. Prophages / Viral Elements
These are bacteriophage sequences. In draft assemblies, they often break off from the main chromosome due to repetitive attachment sites.
Isolate 2605:None explicitly fragmented as standalone contigs in this set. (PGAP will find integrated prophages within the main chromosomal contigs).
Isolate 2914:contig 62, 65, 73, 91, 93
Action: Submit as linear contigs. PGAP will automatically recognize the phage structural genes and annotate them as prophage or viral_sequence.
5. “Depth Traps” (Multi-copy Chromosomal Repeats)
These contigs have unusually high sequencing depth (e.g., 7x to 18x) but BLAST confirms they are 100% identical to the main chromosome. They are repetitive elements like rRNA operons or Insertion Sequences (IS).
Isolate 2605:contig 48, 58, 64, 65, 66
Isolate 2914:contig 89, 90
Action: Submit as linear contigs. DO NOT label as plasmids. PGAP will correctly identify them as repeat_region or chromosomal features.
6. Main Chromosomal Backbone
The standard ~1.0x depth contigs that make up the bulk of the genome.
Action: Submit as linear contigs. PGAP will group these together and annotate them as the main chromosome.
💡 Final Pre-Flight Check before clicking “Submit”:
FASTA Headers: Did I remove < 500 bp contigs? (Yes, this removes the tiny noise).
Circular Flags: Are circular=trueonly on 2605 (49, 51) and 2914 (46)?
No False Plasmids: Did I ensure the high-depth “Depth Traps” (2605: 48,58,64-66 | 2914: 89,90) and AMR MGEs (2605: 54,59 | 2914: 71,72,83) are just standard linear contigs?
Metadata: Are the BioProject (PRJNA...) and BioSample (SAMN...) accessions correctly linked in the NCBI Submission Portal?
If you check all these boxes, your submission is perfectly optimized for the NCBI PGAP pipeline. The automated annotator will do exactly what you want it to do without requiring manual corrections later!
Based on the detailed BLASTn results you provided for contigs 40 and above, I have re-evaluated the classifications. There are some critical corrections compared to our previous assumptions based solely on depth:
Correction for 2605 (contig54): Despite being a “depth trap” (10.6x), the BLAST hits explicitly identify it as an NDM-carrying plasmid/MGE (e.g., Enterobacter plasmid p14A20004_A_NDM). It is a mobile resistance element, not a chromosomal repeat.
Correction for 2914 (contig71 & 72): Despite having very high depth (~7.5x), the BLAST hits are 100% identical to the A. baumannii chromosome. These are multi-copy chromosomal repeats (like IS elements or rRNA operons), NOT plasmids.
Phage Identification in 2914: Several contigs in 2914 (e.g., 65, 73, 91) are definitively bacteriophages, which is common in Acinetobacter genomes.
To make the tables highly actionable for your NCBI submission, I have grouped the contigs by their biological classification rather than just numerical order.
Isolate 2605: Ensure it is present ONLY in the headers for contig49 and contig51.
Isolate 2914: Ensure it is present ONLY in the header for contig46.
Do not add it to any other contigs, even if they are plasmids (like 2605’s contig47). PGAP handles linear plasmid contigs perfectly.
Handling the “Depth Traps” (Crucial):
In 2605, contigs 48, 58, 64, 65, and 66 have high depth but are 100% chromosomal.
In 2914, contigs 71, 72, 89, and 90 are the same.
Action: Just submit them as standard linear contigs. Do not manually label them as plasmids. PGAP’s algorithm will recognize them as multi-copy chromosomal features (like Insertion Sequences or rRNA) and annotate them accordingly.
Handling the AMR/MGE Contigs:
2605 contig54 (10.6x) and 2914 contig83 (27x) are extreme depth traps, but their BLAST hits prove they are NDM-resistance transposons (e.g., Tn125).
Action: Submit them as linear contigs. PGAP will beautifully annotate the bla_NDM gene and the surrounding IS elements. This is exactly what you want for an AMR surveillance submission.
Phage Contigs in 2914:
Contigs like 65, 73, and 91 are clearly phages. PGAP will automatically classify them as “prophage” or “viral sequence” features within the genome. No manual intervention is needed.
To answer your fundamental question first: Yes, in the context of Whole Genome Shotgun (WGS) draft assemblies, the vast majority of these short MGE and Phage contigs are physically part of the chromosome.
Here is why they appear as separate contigs and how NCBI handles them:
They are Integrated (Prophages & Transposons): Most bacteriophages exist as prophages integrated directly into the bacterial chromosome. Similarly, AMR genes (like blaNDM or blaOXA) are usually carried on transposons (e.g., Tn125, Tn2006) that are inserted into the chromosome or into large conjugative plasmids.
The “Repeat” Assembly Problem: Why did the assembler break them into separate contigs? Because these elements often have identical insertion sites (like attL/attR sites for phages) or exist in multiple copies on the chromosome (like Insertion Sequences). The assembler cannot uniquely place them, so it “spits them out” as independent, linear contigs.
NCBI PGAP is Smart: You do not need to manually stitch them back. When you submit these independent MGE/Phage contigs alongside your main chromosomal contigs, PGAP will recognize them. It will annotate them as prophage regions or mobile_element features. It will not mistakenly label them as independent plasmids unless they contain plasmid-specific replication genes (rep).
Below are the Extra Tables specifically detailing the Phages and MGEs for both isolates, confirming their status as “chromosomal passengers” or integrated elements.
Table 3: Isolate 2605 – Integrated MGEs & Phages
These contigs do not form independent plasmids. They are resistance transposons or phage fragments integrated into the host genome.
Contig
Length
Depth
Top BLASTn Hits (Key Features)
Biological Identity
NCBI PGAP Expected Annotation
54
2,308 bp
10.60x
Enterobacter plasmid p14A20004_A_NDM; E. coli pNDM_333; Providencia plasmid p15628A_320
MGE (blaNDM Transposon)
mobile_element (e.g., Tn125 carrying blaNDM). The high depth indicates it’s a multi-copy chromosomal insertion or highly amplified region.
mobile_element. Likely a second copy or variant of the NDM transposon.
52(Inferred)
~2,650 bp
0.97x
Acinetobacter phage ABTW1; A. baumannii chromosome
Prophage Fragment
prophage. Integrated phage sequence that was fragmented during assembly.
Table 4: Isolate 2914 – Integrated MGEs & Phages
Isolate 2914 has a highly active mobilome, featuring both integrated AMR transposons and multiple prophage regions.
Contig
Length
Depth
Top BLASTn Hits (Key Features)
Biological Identity
NCBI PGAP Expected Annotation
71
1,860 bp
7.51x
E. coli pAMR2684_OXA-181; Citrobacter pF3321-1; A. baumannii chromosome
MGE (blaOXA Transposon)
mobile_element (e.g., Tn2006 or similar carrying blaOXA-181).
72
1,720 bp
7.48x
Same profile as Contig 71
MGE (blaOXA Transposon)
mobile_element. Likely a duplicate copy of the OXA transposon.
83
1,025 bp
27.02x
E. coli p07B19007_A_NDM; K. pneumoniae pNK_H16_016.1; Enterobacter IncHI2
MGE (blaNDM Transposon)
mobile_element. Extreme depth (27x) suggests a highly repeated IS-element flanking the NDM gene on the chromosome.
65
2,528 bp
2.26x
Acinetobacter phage vB_AbaS_Eva; A. baumannii chromosome
Prophage
prophage. Integrated phage genome fragment.
73
1,578 bp
1.20x
Acinetobacter phage vB_AbaS_SA1; A. baumannii chromosome
Prophage
prophage. Integrated phage genome fragment.
91
539 bp
2.41x
Acinetobacter phage Acba_4; A. baumannii chromosome
Prophage Fragment
prophage or misc_feature. Small phage remnant.
62
3,111 bp
1.30x
Acinetobacter phage PhabP_R1; E. coli plasmid; A. baumannii chromosome
Prophage / MGE
prophage.
💡 Final Strategy for your NCBI Submission
Do not delete these contigs: Even though they are “just” parts of the chromosome or MGEs, they contain crucial Antimicrobial Resistance (AMR) genes (blaNDM, blaOXA) and virulence/phage data. You must include them in your final filtered FASTA file.
Do not manually label them as plasmids: Only use the circular=true tag for the true, independent plasmids (2605: contig 49, 51; 2914: contig 46).
Let PGAP do the heavy lifting: Submit the entire filtered FASTA (chromosomes + true plasmids + MGEs + prophages). The PGAP pipeline will automatically:
Group the main ~1.0x contigs into the chromosome.
Identify the rep genes on contigs 47, 50, 61 (2605) and annotate them as plasmid.
Identify the transposase/integrase genes on contigs 54, 59, 71, 72, 83 and annotate them as mobile_element (specifying the AMR genes).
Identify the phage structural genes on contigs 65, 73, 91 and annotate them as prophage.
This approach guarantees that your submission is biologically accurate and perfectly formatted for NCBI’s automated curation!
2. Classic Processing for the reference-closed isolates (e.g. for 19606_adeAB, A10CraA, A6WT, adeIJ, see the manuscript ‘Genome sequences and transcriptomic data of Acinetobacter baumannii ATCC19606 devoid of efflux pumps’)
The processing method using RagTag: For 2605 and 2914 we don’t use RagTag, resulting in no scaffolds, rather than submit with a set of contigs recognized as chromosome. This is logical, since the two isolates are isolated from patient and environment, which we don’t have a good reference, so that we cannot generated reference-oriented scaffolds!
Chromosomal contigs are then identified by alignment against the reference genome CP059040.fasta using minimap2. Contigs lacking alignment are interpreted as putative plasmids and excluded from scaffolding.