QTL analysis with physical positions of the markers

204 views
Skip to first unread message

ALI SAID

unread,
Nov 19, 2021, 7:32:08 PM11/19/21
to R/qtl discussion
Hi Karl,

Currently, I'm running QTL analysis fr a RIL poulation (chickpea). We have 1649 markers across the genome and we have the coordinates and the physical positions of each markers and the order of each marker. Do I need to have the physical distance in cM to run MQMSCAN AND SCANONE, etc?. If yes, what is the best way to convert  the physical postions into cM and if there are codes for that in R/qtl?.

Thanks,

Ali Said

Karl Broman

unread,
Nov 19, 2021, 8:27:47 PM11/19/21
to R/qtl discussion
It does need cM locations, but the more dense the markers and the more complete the genotype data, the less important the cM locations are for the QTL analysis.

I’d start by just using Mbp locations, or converting to approximate cM using some estimate of the overall cM:Mbp ratio in chickpea.

You can use the function est.map() to get estimated inter-marker distances, and then replace.map() to plug them back into the cross object.

data(hyper)
newmap <- est.map(hyper)
hyper <- replace.map(hyper, newmap)

karl

ALI SAID

unread,
Nov 20, 2021, 9:56:09 AM11/20/21
to R/qtl discussion
Hi Karl,

Thank you so much, I will definitely try this approach.

Ali

ALI SAID

unread,
Nov 20, 2021, 1:38:09 PM11/20/21
to R/qtl discussion
Hi Karl,

Thank you so much for the input on resolving my issue. After running the est.map function, the genetic maps look great and I could run the single QTL mapping using scanone function. But,  when trying to run MQM  using mqmscan function, I got 2 errors. First, when running mqmaugment (oyali_aug <- mqmaugment(oyali), I got this, INFO: VALGRIND MEMORY DEBUG BARRIERE TRIGGERED. I set already my memory.limit for the R session 15000000000000. I proceeded with setting minprob = 1.0 (oyali_mini <- mqmaugment(oyali, minprob = 1.0) and this time it worked with no problems. Then, I tried to run mqmscan (mqm_mini <- mqmscan(oyali_mini), but it gave this error, Error in mqmscan(oyali_mini) : Singular matrix. Could you please help resolving this issue and how to proceed going forward with the MQM?. I don't know if there is a problem with the genetic maps after augmentation (genetic maps before and after augmentation with minipprob = 1.0 are attched).


                                                                           BEFORE AUGMENTATION 
                                                                                      
AFTER AUGMENTATION

Thanks a lot,

Ali

On Friday, November 19, 2021 at 5:27:47 PM UTC-8 kbr...@gmail.com wrote:

Karl Broman

unread,
Nov 20, 2021, 10:13:34 PM11/20/21
to R/qtl discussion
Could you say more about the scale of the dataset, in terms of number of lines?

Augmentation doesn’t scale well to dense markers, so you may instead want to do a single imputation with fill.geno when doing mqmscan.

Singular matrix means that the model is over-parameterized, so maybe reduce the number of cofactors to use? 
But I’m not an expert on MQM, and personally I’d start with single-locus analysis with scanone().

karl

ALI SAID

unread,
Nov 21, 2021, 12:38:11 PM11/21/21
to R/qtl discussion
Hi Karl,

My dateset includes 52 individuals of F 6 population and 1649 markers, 14% hetrozygos loci.

The single -locus analysis with scanone works fine but the problem is with the MQM with mqmscan().

I have tried fill.geno and also, mqmaugment with miniprob = 1.0 which is the same imputing with fill.geno but still is giving me the same error, SINGULAR MATRIX. If you have any suggestion in mind that I could try to resolve the issue that would be greatly appreciated?

I really appreciate your help and input.

Thanks,

Ali

ALI SAID

unread,
Nov 29, 2021, 6:28:53 PM11/29/21
to R/qtl discussion
Hi Karl,

I run scanone, using 52 individuals of F6 chickpea population and 2541 markers. I got  3 significant QTLs (hk) at p-value  = 0.05, one on chromosome 7 (LOD SCORE 7.24, p-value = 0.004), another QTL on chromosome 6 (LOD SCORE 3.99, p-value = 0.048) and the third one on chromosome 1 (LOD SCORE 4.04, p-value = 0.035). I was wondering if there is anyway to calculate/know the portion of phynotypic variance is explained by a given QTL?. For example, what portion of phynotypic variace is explained by the QTL on chromosome 7?.


 Please see below the pics for the QTL peaks on chr 7, 6, and 1
                                             
                                           



I appreciate anyone could help!

Thanks,

Ali

Karl Broman

unread,
Nov 30, 2021, 12:30:09 AM11/30/21
to R/qtl discussion
The only function in R/qtl that provides estimated variance explained is fitqtl().
Use makeqtl() to create a QTL object and then fitqtl() to fit the model.

karl

ALI SAID

unread,
Nov 30, 2021, 10:15:50 AM11/30/21
to R/qtl discussion
Hi Karl,

Thank you so much for the advice. I think, fitqtl() function can be used only with the multiple QTL model and not with  scanone model. Is that correct?

Best,

Ali

Karl Broman

unread,
Nov 30, 2021, 10:36:36 AM11/30/21
to R/qtl discussion
scanone fits a single-QTL model at each position in the genome, one at a time.
fitqtl fits a single model, which can have a single QTL or multiple QTL.

karl

ALI SAID

unread,
Nov 30, 2021, 11:27:03 AM11/30/21
to R/qtl discussion
Thank you so much, Karl!

Ali
Reply all
Reply to author
Forward
0 new messages