Decreasing gaps b/w markers when creating linkage map from scratch

395 views
Skip to first unread message

Elisa Zhang

unread,
Feb 22, 2012, 6:46:33 AM2/22/12
to R/qtl discussion
Dear Karl,

I am using R/QTL to create a linkage map for an organism which does
not already have an established linkage map. We used data from an F2
intercross, with 148 individuals, 115 markers, and 1 phenotypes. I am
new to genetic mapping so please let me know if there's anything below
that you want me to clarify.

***Background:
I followed your instructions from "Genetic map construction with R/
qtl" (formatted our input data exactly like how you formatted your
mapthis data, first ran segregation distortion analysis, took out a
marker that had P-value < 1e ^-10 , imported my data as if all on one
chromosome). Plotting my LOD scores against the estimated
recombination fraction showed that I don't have marker pairs with
large LOD scores but RF >> 1/2. The genotype frequency plot and
histogram of number of matching genotypes b/w pairs of individuals
also came out as expected. We omitted some markers and individuals
that had lots of missing data. (I can show you our plots if you'd
like), but there is still a scattering of missing data throughout our
data set. I did get this warning message from summary.cross(): Some
chromosomes > 1000 cM in length; there may be a problem with the
genetic map.
(Perhaps it is in basepairs?)

***My question:
I then used formLinkageGroups(), setting max.rf=0.4, min.lod=0.4. This
resulted in 21 linkage groups and 11 singletons.

When I followed your method for ordering markers on each chromosome
(using orderMarkers(), then ripple(), method="likelihood", I got 2
linkage groups where the maximum space between markers is 60cM and
52cM respectively (not sure why this happened, since I set
max.rf=0.4?) . I want to get rid of gaps between markers greater than
50cM, but there doesn't seem to be a command in R/QTL to do this:

droponemarker() can't accomplish this because dropping one marker
doesn't now break the linkage group into two separate linkage groups.
I know that allchrsplits() returns the LOD score comparing the linkage
group split up at different intervals to the intact linkage group, but
there doesn't seem to be a way to actually split up the linkage
group.

The only solution I've figured out is to use tryallpositions() on the
markers that are >50cM away from another marker, and this allowed me
to find a position that was <50cM away from other markers. However,
this isn't ideal; the maximum gap is still ~40cM.

So, my main questions are:

-is there a better way to decrease gaps between markers? i.e. break a
linkage group into two separate linkage groups?
-alternatively, is there an argument I can use when creating the
linkage group or ordering the markers to prevent markers with >0.5 RF
to be grouped together?
-If not, what do you suggest is the best way to proceed in creating
such a linkage map with <50cM between markers?

Thank you very much for any advice, and let me know if you'd like me
to clarify anything.

Best,

Elisa


Karl Broman

unread,
Feb 22, 2012, 9:56:18 AM2/22/12
to rqtl...@googlegroups.com
> I got 2
> linkage groups where the maximum space between markers is 60cM and
> 52cM respectively (not sure why this happened, since I set
> max.rf=0.4?)


With the Haldane map function, a recombination fraction of 0.4 corresponds to a map distance of 80 cM.

> -is there a better way to decrease gaps between markers? i.e. break a
> linkage group into two separate linkage groups?

You can use movemarker() to move a set of markers to a different linkage group (and even create a new linkage group in this way).

data(hyper)
chr1mar <- markernames(hyper, chr=1)
for(i in 1:5) hyper <- movemarker(hyper, chr1mar[i], "1b")
chrnames(hyper)

> -alternatively, is there an argument I can use when creating the
> linkage group or ordering the markers to prevent markers with >0.5 RF
> to be grouped together?

Use a smaller max.rf.

karl

> --
> You received this message because you are subscribed to the Google Groups "R/qtl discussion" group.
> To post to this group, send email to rqtl...@googlegroups.com.
> To unsubscribe from this group, send email to rqtl-disc+...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/rqtl-disc?hl=en.
>

Elisa Zhang

unread,
Feb 22, 2012, 8:47:17 PM2/22/12
to rqtl...@googlegroups.com
Hi Karl,

Thank you so much for your answers--it helped a lot! 

I re-created my linkage map using max.rf=0.25 and min.lod=3. It is attached, along with the summary of average inter-marker distance. 

As you can see, LG's 20-27 only have 2 markers, and when I run the orderMarkers() command on them, all the markers are uniformly placed 10cM apart from each other. (This actually happened as well when I created my first linkage map using max.rf=0.4) 

Is there a reason why this is happening? It doesn't seem to be the case that there weren't enough individuals to resolve it further,  as LG 16, which contains 3 markers, is tiny (0.9 cM). 

And in general, is there a method you would recommend for creating such a linkage map from scratch? i notice in your guide, you set max.rf=0.35 and used droponemarker() to reduce the intermarker distance. Do you think this is preferable to setting max.rf=0.25, or breaking up LGs with large intermarker gaps?


Thanks once again for your patience and your help!


Elisa
LM_new.pdf
summary_map.rtf

Karl Broman

unread,
Feb 23, 2012, 9:04:51 AM2/23/12
to rqtl...@googlegroups.com
> As you can see, LG's 20-27 only have 2 markers, and when I run the orderMarkers() command on them, all the markers are uniformly placed 10cM apart from each other. (This actually happened as well when I created my first linkage map using max.rf=0.4)
>
> Is there a reason why this is happening? It doesn't seem to be the case that there weren't enough individuals to resolve it further, as LG 16, which contains 3 markers, is tiny (0.9 cM).

The formLinkageGroups function (with reorgMarkers=TRUE) places markers at an arbitrary spacing of 10 cM.

orderMarkers() doesn't do anything with linkage groups that have just 2 markers, and so the inter-marker distance doesn't get estimated...those linkage groups are just left alone.

So, you need to follow up with est.map() and replace.map()

> And in general, is there a method you would recommend for creating such a linkage map from scratch? i notice in your guide, you set max.rf=0.35 and used droponemarker() to reduce the intermarker distance. Do you think this is preferable to setting max.rf=0.25, or breaking up LGs with large intermarker gaps?

I generally start with smaller linkage groups and then try to merge them, rather than go for larger groups that may need to be split apart.

karl

Elisa Zhang

unread,
Feb 23, 2012, 1:55:50 PM2/23/12
to R/qtl discussion
Hi Karl,

Just one clarifying question: after running orderMarkers() on all my
linkage groups, should I then run est.map() on all the linkage groups,
or just the linkage groups with 2 markers?

Thanks again,

Elisa

On Feb 23, 6:04 am, Karl Broman <kbro...@biostat.wisc.edu> wrote:
> > As you can see, LG's 20-27 only have 2 markers, and when I run the orderMarkers() command on them, all the markers are uniformly placed 10cM apart from each other. (This actually happened as well when I created my first linkage map using max.rf=0.4)
>
> > Is there a reason why this is happening? It doesn't seem to be the case that there weren't enough individuals to resolve it further,  as LG 16, which contains 3 markers, is tiny (0.9 cM).
>
> The formLinkageGroups function (with reorgMarkers=TRUE) places markers at an arbitrary spacing of 10 cM.
>
> orderMarkers() doesn't do anything with linkage groups that have just 2 markers, and so the inter-marker distance doesn't get estimated...those linkage groups are just left alone.
>
> So, you need to follow up withest.map() and replace.map()

Karl Broman

unread,
Feb 23, 2012, 2:24:00 PM2/23/12
to rqtl...@googlegroups.com
You can run it on all linkage groups. If you use the same parameters (particularly error.prob, map.function) as in orderMarkers, the maps for the other linkage groups shouldn't change. [After the markers on a linkage group are ordered, orderMarkers calls est.map to estimate the inter-marker distances.]

karl

Reply all
Reply to author
Forward
0 new messages