linkage map

786 views
Skip to first unread message

maria

unread,
Jul 23, 2009, 6:39:13 AM7/23/09
to R/qtl discussion
Hi,
does R/qtl prepare a linkage map from scratch?
Using est.rf I could estimate the recombination fraction of the
markers.However I can't see any function that use the Haldane or the
Kosambi functions...
Am I missing anything ?
cheers
mc

Karl Broman

unread,
Jul 23, 2009, 10:14:26 AM7/23/09
to Rqtl...@googlegroups.com, maria
Dear Maria,

We had initially focused on cases in which one had a reasonably
complete genetic map. For QTL mapping, it is particularly important
that the order of genetic markers (and their placement on chromosomes)
are known. To re-estimate the inter-marker positions, use the
function est.map() and then replace.map() to replace the map within
the cross object with the newly estimated one. The argument
map.function in est.map() is used to specify the map function.

To explore possible errors in marker order, use est.rf() and
plot.rf(), to see whether some markers might need to be moved from one
chromosome to another, and then movemarker() to move a marker from one
chromosome to another. To study the order of markers within a
chromosome, use ripple() and then switch.order() to revise marker order.

One can also prepare a linkage map from scratch, though this part of
the software is not thoroughly developed. One begins with est.rf() to
estimate inter-marker recombination fractions, and then
formLinkageGroups() to use that information to partition markers into
linkage groups. orderMarkers() can be used to get an initial ordering
of markers in a linkage group, then use ripple() and switch.order(),
as described above.

regards,
karl

maria

unread,
Jul 23, 2009, 5:41:38 PM7/23/09
to R/qtl discussion
Dear Karl,
thank you for your answer. However something is still not clear to me.
Which would be the format of the input file ?
As I understand from the tutorial all the formats require the
chromosome location and the genetic distance between markers.
Best Regards
mc

Karl Broman

unread,
Jul 23, 2009, 5:49:47 PM7/23/09
to Rqtl...@googlegroups.com, maria
Assign all the markers to the same chromosome (say chromosome "1"),
and given them arbitrary locations (1, ..., n).

karl

marcelo

unread,
Dec 8, 2009, 4:38:40 PM12/8/09
to Karl Broman, rqtl...@googlegroups.com
Dear Dr. Karl,

I am trying to do a linkage map from scratch like your previous advice
here (see below).

I modify the listeria.csv data to do my tests.

I have removed the chromosome and cM rows from data and the first rows
is like this:

pheno D10M44 D1M3 D1M75 D1M215 D1M309 D1M218
1 1 1 1 1 1
118317 B B B H H H
264 0 B B B H H
194917 0 H H H H H
264 B B H H H H

I didn't do anything more!

I run this code:

> listeria.a <- read.cross("csv", ".", "list_test.csv")
--Read the following data:
120 individuals
133 markers
1 phenotypes
--Estimating genetic map
--Cross type: f2
Warning message:
In read.cross.csv(dir, file, na.strings, genotypes, estimate.map, :
The following unexpected genotype codes were treated as missing.
|0|

> plot(listeria.a)
> listeria.est.map.est.rf = est.rf(listeria.est.map)
Error in est.rf(listeria.est.map) : Input should have class "cross".
> listeria.est.map.est.rf = est.rf(listeria.a)
> plot.rf(listeria.est.map.est.rf)
> listeria.est.rf = est.rf(listeria.a)
> listeria.formLinkageGroups = formLinkageGroups(listeria.est.rf)
> listeria.orderMakers = orderMarkers(listeria.formLinkageGroups)Error in nmar(cross) : Input should have class "cross" or "map".
>

So, I don't know what am I doing? You have advised Maria for:

begins with
est.rf()
formLinkageGroups()
orderMarkers()
ripple()
switch.order()

I suppose that the way is:

> listeria.a <- read.cross("csv", ".", "list_test.csv")
> l.est.rf = est.rf(listeria.a)
> l.formLinkageGroups = formLinkageGroups(l.est.rf)
> l.orderMakers = orderMarkers(l.formLinkageGroups)
> l.ripple = ripple(l.orderMakers)
> l.switch.order = switch.order(l.ripple)
> plot(l.switch.order)

Here we have the linkage map.

I ask you because I don't have the order of genetic markers nor their
placement on chromosomes.

Thank you very much!

Marcelo

Karl Broman

unread,
Dec 9, 2009, 4:36:10 PM12/9/09
to marcelo, rqtl...@googlegroups.com

Dear Marcelo,

I'd advise you to first read the help files for the relevant functions. Pay particular attention to the examples, and to the output of each function.

I give some code below to illustrate, briefly, what to do.

karl

#####################
#### 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)
#####################

Marcelo Laia

unread,
Dec 10, 2009, 10:04:36 AM12/10/09
to Karl Broman, rqtl...@googlegroups.com
Dear Dr. Karl,

Thank you very much!

Marcelo

2009/12/9 Karl Broman <kbr...@gmail.com>:
--
Marcelo Luiz de Laia
Universidade do Estado de Santa Catarina
UDESC - www.cav.udesc.br
Lages - SC - Brazil
Linux user number 487797
Reply all
Reply to author
Forward
0 new messages