Plot.pxg / effectplot and percentage of variance explained by a marker

384 views
Skip to first unread message

Mark Lendenmann

unread,
Sep 25, 2013, 10:00:11 AM9/25/13
to rqtl...@googlegroups.com

Hi Karl

I have two questions:

1st: plot.pxg / effectplot

I am trying to plot the effect size of a marker I found during scanone analysis (using interval mapping). My scanone output came up with the following pseudomarker: 7...@147.033206.

I then used the following commands to try to gain effect plots:

AllChrSuperNewNewIM <- calc.genoprob(AllChrSuperNewNew, step=1, error.prob=0.001, map.function="kosambi")

par(mfrow=c(2,1))

c7.loc147 <- find.marker(AllChrSuperNewNewIM, 7, 147.033206)

plot.pxg(AllChrSuperNewNewIM , pheno.col="Cyp51Bin", marker=c7.loc147, infer=T)

effectplot(AllChrSuperNewNewIM , pheno.col="Cyp51Bin", mname1=c7.loc147)

The plots work fine, but it seems as instead of showing me the effect size of the desired pseudomarker, the output is on the closest true marker. When reading the help file for ‘effectplot’, I found that it uses the ‘sim.geno’ output, thus I also tried the following (at least for the effectplot):

AllChrSuperNewNewSIM <- sim.geno(AllChrSuperNewNew, step=1, n.draws=16, error.prob=0.001, map.function="kosambi")

eff <- effectplot(AllChrSuperNewNewSIM  , pheno.col="Cyp51Bin", mname1="7...@147.033206")

Still I get a plot for the closest true marker. Where am I going wrong?

 

 

2nd: Variance explained by a marker

For the same pseudomarker as mentioned above, I was hopping to calculate the percentage of total variance explained by this marker. I used two approaches:

1.

AllChrSuperNewNewSIM <- sim.geno(AllChrSuperNewNew, step=1, n.draws=16, error.prob=0.001, map.function="kosambi")

qtl <- makeqtl(AllChrSuperNewNewSIM, chr=7, pos=147.033206)

summary(fitqtl(AllChrSuperNewNewSIM, pheno.col="Cyp51Bin", qtl=qtl, method="hk", model=c("binary")))

2.

1 – 10^(-2 LOD / n)

Both provided me with an output of around 70% of variance. The effect plots from above however seemed to indicate far higher percentage. Thus I am a bit skeptical about the output, especially because I also ran an ANOVA model outside of RQTL and it came up with 93%, which seems to fit more to the plot.

What am I missing here?

Thanks for your help.

 Best,

 Mark

Karl Broman

unread,
Sep 25, 2013, 11:03:36 AM9/25/13
to rqtl...@googlegroups.com
Regarding the first question, it may be that the closest pseudomarker was actually a marker.
You could try using find.pseudomarker rather than find.marker.

Regarding the second question, it could concern the amount of missing genotype information at the QTL.
And with a binary trait, "percent variance explained" is not very natural, and the plots wouldn't do a great job of characterizing it.

karl
> --
> You received this message because you are subscribed to the Google Groups "R/qtl discussion" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to rqtl-disc+...@googlegroups.com.
> To post to this group, send email to rqtl...@googlegroups.com.
> Visit this group at http://groups.google.com/group/rqtl-disc.
> For more options, visit https://groups.google.com/groups/opt_out.

Mark Lendenmann

unread,
Sep 26, 2013, 10:22:47 AM9/26/13
to rqtl...@googlegroups.com
Hi Karl 

Thanks for your answers. They really helped.

I have a further question, however this one is a bit R QTL unrelated:

I am working with two different crosses, whereas both have been phenotyped for the same traits. As I know the physical position of each of our true markers, I used flanking true markers to estimate bp positions on the genome of pseudomarker outputs from scanone and confidence intervals. Now I was wondering if you would know of some plot, which would allow a efficient visualisation of the confidence interval lengths and marker peaks within the intervals amongst all phenotypes and even amongst both crosses, maybe somewhat like my jpg attachment?

Best,

Mark
Template.jpg

Karl Broman

unread,
Sep 27, 2013, 9:49:49 AM9/27/13
to rqtl...@googlegroups.com
I don't know of any simple function to produce such a plot.
I would create it using a combination of plot(), points(), and segments().

I attach an example. It'd probably be better to make it into a function, but this is the sort of thing I'd do.

karl

qtl_interval_plot.R
qtl_intervals.png

Karl Broman

unread,
Sep 27, 2013, 9:55:56 AM9/27/13
to rqtl...@googlegroups.com
I might rearrange it a bit, too. Here's another alternative.

karl
qtl_interval_plot_2.R
qtl_intervals_2.png
Reply all
Reply to author
Forward
0 new messages