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