stringMLST icon indicating copy to clipboard operation
stringMLST copied to clipboard

Accuracy

Open ralphmatar opened this issue 1 year ago • 4 comments

Hi, I am using stringMLST and I noticed that I got different results for running the same sample more than once. The database changed (updated). What was surprising that some of the assigned ST's in the first run were completely different in the second. is this normal?

ralphmatar avatar Aug 07 '24 09:08 ralphmatar

Hi Ralph,

stringMLST should be deterministic given the same reads and kmer db. If you update the database that has the possibility of calling a different ST because additional gene sequences and alleles are available - this I don't think is super surprising. I would be surprised if running stringMLST on the same sample, with the same db resulted in different results. This should really only happen if there's significant contamination and even then be rare.

❯ mkdir -p stringMLST_analysis; cd stringMLST_analysis
stringMLST.py --getMLST -P neisseria/nmb --species neisseria
Preparing: neisseria
	Database ready for neisseria
	neisseria/nmb

~/stringMLST_analysis took 23s
❯ wget -qqq ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR026/ERR026529/ERR026529_1.fastq.gz ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR026/ERR026529/ERR026529_2.fastq.gz

~/stringMLST_analysis took 16s
❯ for n ({1..5}); stringMLST.py --predict -P neisseria/nmb -1 ERR026529_1.fastq.gz -2 ERR026529_2.fastq.gz && echo '-----'

Sample	abcZ	adk	aroE	fumC	gdh	pdhC	pgm	ST
ERR026529	231	180	306	612	269	277	260	10174
-----
Sample	abcZ	adk	aroE	fumC	gdh	pdhC	pgm	ST
ERR026529	231	180	306	612	269	277	260	10174
-----
Sample	abcZ	adk	aroE	fumC	gdh	pdhC	pgm	ST
ERR026529	231	180	306	612	269	277	260	10174
-----
Sample	abcZ	adk	aroE	fumC	gdh	pdhC	pgm	ST
ERR026529	231	180	306	612	269	277	260	10174
-----
Sample	abcZ	adk	aroE	fumC	gdh	pdhC	pgm	ST
ERR026529	231	180	306	612	269	277	260	10174
-----

ar0ch avatar Aug 09 '24 03:08 ar0ch

I appreciate the clarification. I have 2 more questions if you don't mind.

  1. Is StringMLST applicable on Oxford Nanopore Technologies (long reads), I have the amplicon from 7 housekeeping genes sequenced.
  2. I also used RAxML on the variant calling from mpileup files including all fastq files, some samples have the same ST predicted and in the tree they do not seem to cluster together.

ralphmatar avatar Aug 18 '24 16:08 ralphmatar

Screenshot from 2024-08-18 18-35-39 This is an example

ralphmatar avatar Aug 18 '24 16:08 ralphmatar

  1. Is StringMLST applicable on Oxford Nanopore Technologies (long reads), I have the amplicon from 7 housekeeping genes sequenced.

Technically yes, though it's sensitive to read errors, which tend to be more prevalent in ONT reads, and converges to a solution better with higher read count which can sometimes be an issue with ONT reads. If you have high coverage ONT, error corrected data you should be fine.

  1. I also used RAxML on the variant calling from mpileup files including all fastq files, some samples have the same ST predicted and in the tree they do not seem to cluster together.

Variant calling provides much more fine grained data - remember an ST is 7 data points, variant calls could be hundreds or thousands. STs are an approximation of genetic relatedness (more phenotype than genotype). They may not cluster in the same branch but they'll likely appear in the same subtree.

ar0ch avatar Aug 22 '24 20:08 ar0ch