Megan Justice
05/13/2026, 8:33 PMJonathan Manning
05/14/2026, 8:22 AMBiotype QC: That step (featureCounts) defaults to grouping by a gene_biotype attribute (controlled by --featurecounts_group_type, default gene_biotype). Prokka's GFF doesn't emit gene_biotype at all - its feature class lives in column 3 (CDS / tRNA / rRNA / tmRNA), and the attributes it writes
are ID, locus_tag, product, gene (when matched), EC_number, inference, etc. The pipeline docs do mention this case briefly and recommend --skip_biotype_qc for non-Ensembl annotations, which is what you ended up doing.
To get the RNA-type breakdown back, a couple of options:
1. Patch the GFF. Add gene_biotype=... to each feature's attributes, derived from column 3 (CDS → protein_coding, tRNA → tRNA, rRNA → rRNA, tmRNA → tmRNA). Heads-up though: the prokaryotic profile also sets featurecounts_feature_type=CDS, so to actually see a breakdown you'd want to widen that
(e.g. via --featurecounts_feature_type gene after also patching parent gene records into the GFF), otherwise featureCounts only looks at CDS rows.
2. Use a RefSeq/NCBI annotation if your strain (or a very close one) is there - those tend to come with biotype-equivalent fields and integrate more cleanly.
Gene names: Totally normal for bacteria. Prokka only assigns gene=... when there's a confident hit against its curated DBs (HAMAP and friends). For a non-model strain it's expected that the majority of CDSs come back with just a locus tag and no gene name. The product field is usually the more
informative one. If you want richer functional annotation you can run eggNOG-mapper or InterProScan against the Prokka proteins and merge those results back in, but it won't change the biotype QC story.Thomas Danhorn
05/14/2026, 7:59 PMgene_biotype statitistics in #CE8SSJV3N you need that field in the GTF, and it can only be there is the (basic) function of the gene is know. Since you are annotating from scratch (i.e. you not using a preannotated genome reference, presumably because there is none), it really depends on how well each gene matches any homologs in the databases from well-studied organisms, and how well the algorithm of your tool is able to detect that homology. More comprehensive databases should help here, but if your strain does not have well-characterized "relatives", the information you can attach to genes may be limited. (Additionally, the tool has to actually find the correct ORFs in the first place, before they can be compared to the database. Any mistakes there can further limit success. Might be worthwhile seeing if Bacta gives you different results.)
The best you can do (beyond trying a different tool/different databases) is to BLAST the identified ORFs yourself and see if the output reveals anything beyond what the annotation tools give you (the tools will probably tend to be conservative to avoid being misleading when finding a tentative match with low confidence).
That said, I am not very convinced that there is a lot of interesting information in the gene_biotypes. Bacteria have a lot fewer of those compared to eukaryotes, so besides the obvious ones, like rRNAs, tRNAs, tmRNAs, etc., I would expect most of them to just be "protein coding".Megan Justice
05/15/2026, 9:49 PMThomas Danhorn
05/15/2026, 10:10 PMWhat could cause a p-value to be reported as 0? Is it just a rounding thing?I cannot tell from the picture if that number was was just lower than whatever precision they normally display (e.g. 3 or 4 digits after the decimal point) and that's why it looks like zero, if it is actually "zero" (if there is some text or Excel table with the full information, you can tell). I had the latter case in an experiment and PI had the same complaint as you. The reason for this is that the smallest number you can store in a 64-bit "double-precision" floating point number (which is commonly used for standard math in computer programs) is about 5*10^-324. If the p-value calculation (with rounding errors, etc.) yields a value lower than this, it will be rounded to and stored as zero.
Is there a way to get a p-value for this gene so that we can report on it?If you don't want to show the "zero", you could say something like "<10^-300". Giving an upper bound is often done for p-values in scientific literature (most people don't care if a p-value is 10^-10, 10^-30, 10^-300, or less).
Megan Justice
05/15/2026, 10:13 PMThomas Danhorn
05/15/2026, 10:23 PM