Strain_transmission.py not detecting transmission events

I am having issues detecting strain sharing events using strain_transmission.py. For your reference I am using 4.0.6 version of MetaPhlAn and the following code, strain_transmission.py -t “${prefix}.tre” -m metadata -o “$dir” --save_dist. I am trying to detect transmission events for non-human samples and when looking at the phylogeny trees I would think there would be some however, I am not detecting any events. I have an example of a tree below. As you can see, it appears that some of the individuals in this tree share the same strain, however no sharing was detected using strain_transmission.py. Do you know why transmission events are not being detected? Should I be using different parameters?

Also encountering the same issue, also on MetaphlAn v. 4.0.6.
In my case it is human stool samples.
The threshold selected in the output file appears to be very strict and corresponds to the lowest nGD between samples from the same individual:

Selected strain-transmission threshold: 0.0002890290502800887
Number of transmission events: 0

Hi @blair.merrick @mattea.allert , could you share the metadata table you are using? It might just be a problem of format of the table

Hi Aitor,

Metadata table attached for one of the strains below:
metadata.txt (502 Bytes)

Best wishes,
Blair

Hi @aitor.blancomiguez , I have attached my metadata table.

Thank you,
Mattea
metadata_strainphlan.txt (1.7 KB)

@mattea.allert Hi, have you solved your problem? I got the same issues.

Hi @blair.merrick
From the metadata you provided, no transmission event could be reported since the script only reports transmission events when two strains, from different subjects and within the same relationID are below the threshold

1 Like

@mattea.allert
your problem is the same as @blair.merrick problem

I am also encountering the same issue, using MetaphlAn v. 4.0.6.

strain_transmission.py produced the following:
Selected strain-transmission threshold: 0.01588133432363217
Number of transmission events: 0

However, when I checked the pairwise distances, I saw some distances below 0.01588133432363217, but the strain_transmission.py script did not detect any transmission events. The following are the distances that were below 0.0158813343236321:

BIOME168093_S3 BIOME168643_S10 0.001332549
BIOME168093_S3 BIOME182751_S53 0.001645779
BIOME168651_S12 BIOME168655_S13 0.000227581
BIOME169624_S22 BIOME171096_S36 0.015881334
BIOME168314_S6 BIOME168318_S5 0.000587234
BIOME168643_S10 BIOME182751_S53 0.000313955

I am also attaching the metadata.

Thank you so much!
metadata_strain_transmission.txt (2.9 KB)

@guptaniper Because the strain_transmission.py only reports strain transmission events from two samples with different subjects ID and same relationID. In your metadata, for example, BIOME168093_S3 and BIOME168643_S10 have different relation ID.

@aitor.blancomiguez Hi Aitor, thank you for your guidance on how to detect transmission events by strain_transmission.py. But I am still a bit confused.
Here are my issues:
I want to detect strain sharing between two samples from a same individual. Is strain_tranmission.py suitable here to do this? How should I set my metadata since it only reports strain transmission events when two strains, from different subjects and within the same relationID are below the threshold as you said. If I set different subject ID for samples from same individual, does it affect the calculation of the nGD threshold, since longitudinal samples from same individual would be treated as being from unrelated individuals, right?

Looking forward to your reply. Thanks.