Checking gene conversion events in recombination() callback

22 views
Skip to first unread message

Dan Schrider

unread,
Apr 10, 2025, 6:10:02 PM4/10/25
to slim-discuss
Hi Ben,

Question for you about gene conversion in SLiM:

In a recombination() callback, is there currently no way to determine with certainty which breakpoints correspond to gene conversion events and which ones do not? What I would like to do is prevent a gamete from have a gene conversion tract that spans a certain focal site.

I guess one thing I could do is add some spacer flanking sequences on either side of that site, modify the recombination map so the rec rate is zero there, and then ignore all mutations in these spacer sequences so I basically pretend that they don't exist. If these spacer sequences are long enough such that it is very unlikely that the gene conversion tract stretches from outside the spacer all the way to the focal site, then I should be mostly good. But this could be a pain for what I am doing (programmatically modifying SLiM scripts generated by stdpopsim that model different chromosome chunks with different recombination landscapes, etc). So I was hoping for a simpler solution if possible.

Thanks!

Dan

Ben Haller

unread,
Apr 10, 2025, 6:19:42 PM4/10/25
to slim-discuss
Hi Dan!

That's correct, the information is not available.

The simplest thing is probably to simply implement your own algorithm to generation recombination breakpoint positions that look like gene conversion tracts in the pattern you want.  As long as you don't need heteroduplex mismatch repair, it shouldn't be very hard really.  Here's a recent thread about this topic: https://groups.google.com/g/slim-discuss/c/GsvbF5pA2mA/m/htkB8HJBAgAJ.

Good luck and happy modeling!

Cheers,
-B.

Benjamin C. Haller
Messer Lab
Cornell University

Dan Schrider

unread,
Apr 10, 2025, 10:19:05 PM4/10/25
to slim-discuss
Thanks Ben, this is helpful.

I read the thread and I think I get most of it but have just one dumb question: if I want to set breakpoints for both crossover and gene conversion events in a recombination callback, how do I specify which breakpoints correspond to which type of recombination event? Sorry if I am being dense and missed this somehow...

Cheers,

Dan

Ben Haller

unread,
Apr 10, 2025, 11:06:09 PM4/10/25
to Dan Schrider, slim-discuss
Hi Dan!  You don't specify that, because inside the SLiM core, as long as heteroduplex mismatch repair is not involved, they end up being the same thing.  Gene conversion tracts produce crossover breakpoints, which just get thrown together into the same vector of breakpoints as non-gene-conversion breakpoints.  If it isn't clear how that works, perhaps review section 1.5.6 of the manual, but basically: gene conversion tracts just change which strand is the copy strand, just like regular crossovers do, so just put together a vector of all the positions where you want the copy strand to change – whatever the reason for that might be.  :->  People do seem to find this confusing; let me know if you have any suggestions for how the doc could be improved.


Cheers,
-B.

Benjamin C. Haller
Messer Lab
Cornell University


Dan Schrider wrote on 4/10/25 10:19 PM:
--
SLiM forward genetic simulation: http://messerlab.org/slim/
---
You received this message because you are subscribed to the Google Groups "slim-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to slim-discuss...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/slim-discuss/36780b84-5f37-47b5-8947-1b2308fd52e1n%40googlegroups.com.

Dan Schrider

unread,
Apr 11, 2025, 7:47:38 AM4/11/25
to slim-discuss
No that makes perfect sense. Obviously my brain had totally shut down last night...

Thanks!

Dan
Reply all
Reply to author
Forward
0 new messages