QTL analysis_distorsion segregation

112 views
Skip to first unread message

Princia NAKOMBO

unread,
Feb 6, 2023, 10:31:37 AM2/6/23
to rqtl...@googlegroups.com
Hello,
I am trying to do a qtl analysis of BC2F4 lines on rqtl and I have questions. If anyone can answer any of them, that would be great.
Actually, I have 175 individuals, 941 markers and the expected % heterozygosity is 3.125% but when I import my data with this code :
mydata<-read.cross(format="csv", file="dataRSA_QTL_Mb.csv",BC.gen=2, F.gen=4, genotypes=c("A", "AB", "B"),alleles=c("A", "B"),na.strings="NA", sep=";",estimate.map=F, map.function="haldane", error.prob=0.0001),
the summary I get for %genotype is: AA:58.9, AB:23.2, BB:17.9. There seems to be a segregation distortion because the observed frequencies are very different from the expected ones. Also, when I estimate the genetic map the length of the map is too large compared to the actual map of my species. So I tried to calculate the segregation distortion I got an error message that you suggested not to take it into account. So I ask if having this distortion greatly impacts the result of the QTL detection, can I trust the QTL that will be detected.
As there were many more heterozygotes than expected I decided to put the "AB" in my data in NA and do the QTL detection. Do you think that this is a way to solve the problem? but it creates a lot of missing data... how can i write the code for importing the data, because it's give give me a warning message : strange genotype pattern.

Also since the map is too big I tried to check the order of the markers but I get error messages.
I try to check order of my marker with the ripple function but i found different warning message depend on the data i use.
First i found this message : Error: 'list' object cannot be coerced to type 'double'
 
The code is below :

 rip <- vector("list",nchr(mydata))

names(rip)=names(mydata$geno)

for(i in names(mydata$geno)){

 rip[[i]]=ripple(mydata,i,3, verbose = T)

 }

   658 total orders

   638 total orders

   714 total orders

   442 total orders

   378 total orders

   470 total orders

   422 total orders

dif.nxo=sapply(rip,function(a)a[1,ncol(a)]-a[2,ncol(a)])

 dif.nxo

  1      2      3     4     5      6    7

220 192 136 136 148 124 152

for(i in names(mydata$geno))  { if (dif.nxo[i] > 0)   

   mydata=switch.order(mydata,i,rip[[i]][2,])}


> for (i in names(mydata$geno))

+   rip[[i]]=ripple(mydata,i,2,verbose=F)

> dif.nxo=sapply(rip, function(a)a[1,ncol(a)-a[2,ncol(a)]])

> #si dif.nxo est positif on conserve l'ordre des marker obtenus

> any(dif.nxo>0)


Error: 'list' object cannot be coerced to type 'double'


I try to import data without telling that it is BC2F4 but i have this error message when i want to check marker order

Warning message:

In est.map(cross, chr = chr, error.prob = error.prob, map.function = map.function,  :

  Didn't converge!

does R/QTL put by default a type of cross if its' not specified?

Can you suggest what kind of thing i can do

Princia

Karl Broman

unread,
Feb 6, 2023, 2:29:58 PM2/6/23
to R/qtl discussion
I would not omit the heterozygotes, particularly as they are 25% of the data.

I don't understand what you are trying to do with the ripple() analyses. If you get an error like "list object cannot be coerced to double", take a look at the object itself, and try to figure out what happened to it.

The estimated genetic map being long could be the markers are out of order but could also be that there are individual markers that are badly behaved, or that there's a generally high rate of genotyping error. Or there could be other problems, like the marker genotypes not being encoded consistently. How much of an effect it will have on QTL mapping results depends on the nature of the underlying problem.

The "Didn't converge" from est.map is a warning rather than an error. You could increase the number of iterations with the argument maxit to try to get full convergence.

In read.cross, if you don't provide a cross type, it will classify the cross either as a backcross or an F2 intercross.

karl
Reply all
Reply to author
Forward
0 new messages