How to add multiple line segments between two associated points in ggplot2?
===

I have some sequence feature information I want to visualize. 
Here is some toy data(the specific r code to regenerate the data is at the end)

              type index variable position
    ...
    14         CDS    14    start 31129
    15        exon    15    start 32196
    16         CDS    16    start 32196
    17  stop_codon    17    start 32247
    18        exon     1      end 12166
    19         CDS     2      end 12166
    ...


The command I used to generate the following plot is

    qplot(position,type,data=m2data,color=type)+xlim(11950,15000)

![what I have so far][1]


But I want to add the line segments between "start" and "end" that share the same "index"
like following, which I made with the paint.

![What I want][2]


How can I achieve this with ggplot2 in R?


The following is the data

m2data<-structure(list(type = structure(c(2L, 1L, 3L, 2L, 1L, 2L, 1L, 
4L, 2L, 2L, 1L, 3L, 2L, 1L, 2L, 1L, 4L, 2L, 1L, 3L, 2L, 1L, 2L, 
1L, 4L, 2L, 2L, 1L, 3L, 2L, 1L, 2L, 1L, 4L), class = "factor", .Label = c("CDS", 
"exon", "start_codon", "stop_codon")), index = c("1", "2", "3", 
"4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", 
"16", "17", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
"11", "12", "13", "14", "15", "16", "17"), variable = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L), .Label = c("start", "end"), class = "factor"), position= c(11955L, 
12026L, 12026L, 16677L, 16677L, 17745L, 17745L, 17787L, 18309L, 
28587L, 28658L, 28658L, 31129L, 31129L, 32196L, 32196L, 32247L, 
12166L, 12166L, 12028L, 16841L, 16841L, 17814L, 17786L, 17789L, 
18898L, 28798L, 28798L, 28660L, 31299L, 31299L, 32270L, 32246L, 
32249L)), .Names = c("type", "index", "variable", "position"), row.names = c(NA, 
-34L), class = "data.frame")


  [1]: http://i.stack.imgur.com/coJ2o.png
  [2]: http://i.stack.imgur.com/QJEuy.png