Learn R Programming

⚠️There's a newer version (0.4.1) of this package.Take me there.

MAPpoly (v. 0.2.0) is an R package to construct genetic maps in autopolyploids with even ploidy levels. In its current version, MAPpoly can handle ploidy levels up to 8 when using hidden Markov models (HMM), and up to 12 when using the two-point simplification. When dealing with large numbers of markers (> 10,000), we strongly recommend using high-performance computation.

In its current version, MAPpoly can handle three different types of datasets:

  1. CSV files
  2. MAPpoly files
  • Dosage based
  • Probability based
  1. VCF files

The mapping strategy is based on using pairwise recombination fraction estimation as the first source of information to position allelic variants in specific homologs sequentially. For situations where pairwise analysis has limited power, the algorithm relies on the multilocus likelihood obtained through a hidden Markov model (HMM). The derivation of the HMM used in MAPpoly can be found in Mollinari and Garcia, 2019. Recently, we used MAPpoly to build an ultra-dense multilocus integrated genetic map containing ~30k SNPs and characterized the inheritance system in a sweetpotato full-sib family (Mollinari et al., 2020). See the resulting map here and the haplotype composition of all individuals in the full-sib population here.

Installation

From CRAN (stable version - not available yet)

To install MAPpoly from the The Comprehensive R Archive Network (CRAN) use

install.packages("mappoly")

From GitHub (development version)

You can install the development version from Git Hub. Within R, you need to install devtools:

install.packages("devtools")

If you are using Windows, you must install the the latest recommended version of Rtools.

To install MAPpoly from Git Hub use

devtools::install_github("mmollina/mappoly", dependencies=TRUE)

For further QTL analysis, we recommend our QTLpoly package. QTLpoly is an under development software to map quantitative trait loci (QTL) in full-sib families of outcrossing autopolyploid species based on a random-effect multiple QTL model Pereira et al. 2020.

Vignettes

Related software

Miscellaneous

Acknowledgment

This package has been developed as part of the Genomic Tools for Sweetpotato Improvement project (GT4SP) and SweetGAINS, both funded by Bill & Melinda Gates Foundation.

Copy Link

Version

Install

install.packages('mappoly')

Monthly Downloads

311

Version

0.2.0

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Marcelo Mollinari

Last Published

October 10th, 2020

Functions in mappoly (0.2.0)

add_marker

Add a single marker to a map
calc_prefpair_profiles

Preferential pairing profiles
calc_genoprob_dist

Compute conditional probabilities of the genotypes using probability distribution of dosages
add_mrk_at_tail_ph_list

add a single marker at the tail of a linkage phase list
calc_homoprob

Homolog probabilities
calc_genoprob

Compute conditional probabilities of the genotypes
calc_genoprob_haplo

Compute conditional probabilities of the genotypes given a sequence of block markers
cat_phase

cat for phase information
calc_genoprob_error

Compute conditional probabilities of the genotypes using global error
cache_counts_twopt

Frequency of genotypes for two-point recombination fraction estimation
check_data_sanity

Data sanity check
compare_haplotypes

Compare two polyploid haplotypes stored in list format
create_map

Create a map with pseudomarkers at a given step
check_pairwise

Check if all pairwise combinations of elements of input.seq are contained in twopt
est_haplo_hmm

Estimate a genetic map given a sequence of block markers
check_data_dose_sanity

Checks the consistency of dataset (dosage)
est_full_hmm_with_prior_prob

Re-estimate genetic map using dosage prior probability distribution
est_full_hmm_with_global_error

Re-estimate genetic map given a global genotyping error
concatenate_new_marker

Concatenate new marker
concatenate_ph_list

concatenate two linkage phase lists
dist_prob_to_class

Returns the class with the highest probability in a genotype probability distribution
check_data_dist_sanity

Checks the consistency of dataset (probability distribution)
elim_equiv

Eliminates equivalent linkage phase configurations
draw_cross

Draw simple parental linkage phase configurations
check_ls_phase

Compare a list of linkage phases and return the markers for which they are different.
draw_phases

Plot the linkage phase configuration given a list of homologous chromosomes
filter_missing

Filter missing genotypes
filter_missing_ind

Filter individuals based on missing genotypes
export_map_list

Export a genetic map to a CSV file
elim_redundant

Eliminate redundant markers
export_data_to_polymapR

Export data to polymapR
get_cache_two_pts_from_web

Access a remote server to get Counts for recombinant classes
est_rf_hmm_sequential

Multipoint analysis using Hidden Markov Models: Sequential phase elimination
est_map_haplo_given_genoprob

Estimate a genetic map given a sequence of block markers given the conditional probabilities of the genotypes
generate_all_link_phase_elim_equivalent

Generate all possible linkage phases in matrix form given the dose and the number of shared alleles between a inserted marker and a pre-computed linkage configuration.
filter_missing_mrk

Filter markers based on missing genotypes
est_rf_hmm_single

Multipoint analysis using Hidden Markov Models (single phase)
get_counts

Counts for recombinant classes
make_mat_mappoly

Subset recombination fraction matrices
get_rf_from_list

Get the recombination fraction for a sequence of markers given an object of class poly.est.two.pts.pairwise and a list containing the linkage phase configuration. This list can be found in any object of class two.pts.linkage.phases, in x$config.to.test$'Conf-i', where x is the object of class two.pts.linkage.phases and i is one of the possible configurations.
ls_linkage_phases

List of linkage phases
imf_h

Map functions
imf_k

Map functions
get_ph_list_subset

subset of a linkage phase list
get_genomic_order

Get the genomic position of markers in a sequence
filter_non_conforming_classes

Filter non-conforming classes in F1, non double reduced population.
generate_all_link_phases_elim_equivalent_haplo

Eliminate equivalent linkage phases
get_ij

Given a pair of character indicating the numbers i and j : 'i-j', returns a numeric pair c(i,j)
mf_m

Map functions
mrk_chisq_test

Chi-square test
est_rf_hmm

Multipoint analysis using Hidden Markov Models in autopolyploids
get_LOD

Extract the LOD Scores in a 'mappoly.map' object
elim_conf_using_two_pts

Eliminate configurations using two-point information
drop_marker

Remove markers from a map
est_pairwise_rf

Pairwise two-point analysis
filter_segregation

Filter markers based on chi-square test
get_full_info_tail

Get the tail of a marker sequence up to the point where the markers provide no additional information.
get_counts_two_parents

Counts for recombinant classes
genotyping_global_error

Prior probability for genotyping error
get_rf_from_mat

Get recombination fraction from a matrix
get_indices_from_selected_phases

Get the indices of selected linkage phases given a threshold
plot_mrk_info

Plot marker information
plot_map_list

Plot a genetic map
format_rf

Format results from pairwise two-point estimation in C++
import_data_from_polymapR

Import data from polymapR
get_tab_mrks

Get table of dosage combinations
print_ph

cat for graphical representation of the phases
get_counts_one_parent

Counts for recombinant classes in a polyploid parent.
get_counts_all_phases

Counts for recombinant classes
get_w_m

Get the number of bivalent configurations
imf_m

Map functions
get_ph_conf_ret_sh

Given a homology group in matrix form, it returns the number shared homologous for all pairs of markers in this group
import_from_updog

Import from updog
hexafake

Simulated autohexaploid dataset.
hexafake.geno.dist

Simulated autohexaploid dataset with genotype probabilities.
get_submap

Extract sub-map from map
mf_h

Map functions
plot_compare_haplotypes

Plot two overlapped haplotypes
plot_genome_vs_map

Physical versus genetic distance
poly_hmm_est

Estimate genetic map using as input the probability distribution of genotypes (wrapper function to C++)
pos_twopt_est

Check if it is possible to estimate the recombination fraction between neighbor markers using two-point estimation
mf_k

Map functions
make_pairs_mappoly

Subset pairwise recombination fractions
make_seq_mappoly

Create a sequence of markers
merge_datasets

Merge datasets
merge_maps

Merge two maps
plot_one_map

plot a single linkage group with no phase
reest_rf

Re-estimate the recombination fractions in a genetic map
read_geno

Data Input
read_vcf

Data Input VCF
perm_pars

N!/2 combination
segreg_poly

Polysomic segregation frequency
poly_cross_simulate

Simulate an autopolyploid full-sib population
import_phased_maplist_from_polymapR

Import phased map list from polymapR
mds_mappoly

Estimates loci position using Multidimensional Scaling
ph_list_to_matrix

Linkage phase format conversion: list to matrix
prepare_map

prepare maps for plot
maps.hexafake

print_mrk

Summary of a set of markers
summary_maps

Summary map
perm_tot

N! combination
sample_data

Random sampling of dataset
rf_snp_filter

Remove markers that do not meet a LOD criteria
tetra.solcap.geno.dist

Autotetraploid potato dataset with genotype probabilities.
sim_homologous

Simulate homology groups
select_rf

Select rf and lod based on thresholds
solcap.err.map

solcap.mds.map

extract_map

Extract the maker position from an object of class 'mappoly.map'
solcap.dose.map

update_map

Update map
msg

Msg function
plot.mappoly.homoprob

Plots mappoly.homoprob
loglike_hmm

Multipoint log-likelihood computation
group_mappoly

Assign markers to linkage groups
paralell_pairwise

Wrapper function to pairwise two-point estimation in C++
filter_map_at_hmm_thres

remove maps under a certain threshold
gg_color_hue

Color pallet ggplot-like
is.prob.data

Is it a probability dataset?
rev_map

Reverse map
ph_matrix_to_list

Linkage phase format conversion: matrix to list
tetra.solcap

Autotetraploid potato dataset.
rf_list_to_matrix

Recombination fraction list to matrix
split_and_rephase

Divides map in sub-maps and re-phase them
solcap.prior.map

plot.mappoly.prefpair.profiles

Plots mappoly.prefpair.profiles
update_ph_list_at_hmm_thres

makes a phase list from map, selecting only configurations under a certain threshold
read_geno_prob

Data Input
update_missing

Update missing information
read_geno_csv

Data Input in CSV format
sim_cross_two_informative_parents

Simulate mapping population (tow parents)
sim_cross_one_informative_parent

Simulate mapping population (one parent)