Creating Linkage map for F2 intercross derived from two inbred strains

78 views
Skip to first unread message

Julie Kim

unread,
Jan 3, 2019, 1:15:05 PM1/3/19
to R/qtl discussion
Dr. Karl,

After loading in the genotype data set into R with read.cross(), I am trying to figure out what is the best way to map the markers for an F2 intercross. I followed the manual for genetic map construction with R/qtl, and tried these functions:

> lg <- formLinkageGroups(mapthis, max.rf=0.35, min.lod=6)
> table(lg[,2])

but when I plot
> plotRF(mapthis, alternate.chrid=TRUE)
to see how well it worked, the plot is not anywhere close to the example plot in the manual.

Here is my code (I tried ordering markers on chromosome 5):

> lg <- formLinkageGroups(map_athaf, max.rf=0.35, min.lod=13)
Warning message:
In formLinkageGroups(map_athaf, max.rf = 0.35, min.lod = 13) :
Running est.rf.
> table(lg[,2])

1 2 3 4 5
207 106 97 85 4

> map_athaf_lg <- formLinkageGroups(map_athaf, max.rf=0.35, min.lod=13, reorgMarkers=TRUE)
Warning message:
In formLinkageGroups(map_athaf, max.rf = 0.35, min.lod = 13, reorgMarkers = TRUE) :
Running est.rf.
> plotRF(map_athaf_lg, alternate.chrid=TRUE)
> map_athaf_chr5 <- orderMarkers(map_athaf_lg, chr=5)
> pull.map(map_athaf_chr5, chr=5)
30.1_CHR_5_544767 30.1_CHR_5_1283613 30.1_CHR_5_1283633 30.1_CHR_5_1297106
0.0000000 0.4163351 0.4163486 0.4163621


I then came across another discussion on the google group, and I wondered whether I should be doing this:

#####################
#### listeria data, pretending we don't know chr assignments or marker order
# load listeria data
data(listeria)

# omit the X chromosome
listeria <- subset(listeria, chr="-X")

# markers not on chr 1
mnames <- markernames(listeria, chr="-1")

# move them to chr 1
for(i in mnames)
listeria <- movemarker(listeria, i, 1)

# randomize marker order
listeria <- switch.order(listeria, chr=1, order=sample(totmar(listeria)))


#### estimate pairwise recombination fractions
listeria <- est.rf(listeria)
plot.rf(listeria)

#### establish linkage groups
revlisteria <- formLinkageGroups(listeria, reorgMarkers=TRUE)
plot.rf(revlisteria)


#### determine marker order on each chromosome
revlisteria <- orderMarkers(revlisteria, verbose=TRUE)
plot.rf(revlisteria)
#####################

What would be the best way to go about ordering the markers? Thank you so much for your help!

Karl Broman

unread,
Jan 3, 2019, 3:41:29 PM1/3/19
to rqtl...@googlegroups.com
I'd suggest following the "Genetic map construction with R/qtl",
http://rqtl.org/tutorials/geneticmaps.pdf

formLinkageGroups() will just assign markers to linkage groups, but
without attempting to order them.
orderMarkers() attempts to order the markers on each chromosome, but it
should be followed up with ripple() and close inspection of the plotRF()
plot.

karl

John Lovell

unread,
Jan 4, 2019, 11:27:34 AM1/4/19
to R/qtl discussion
With a lot of markers, ordering can be pretty slow. But, check out TSPmap (https://biodatamining.biomedcentral.com/articles/10.1186/s13040-017-0158-0). 
The TSPmap package (https://github.com/mckaylab/TSPmap/tree/master/R) can integrate with R/qtl to do accurate and quick ordering of markers based on recombination fractions. 
Reply all
Reply to author
Forward
0 new messages