FindMyFriends: Microbial Comparative Genomics in R

A framework for doing microbial comparative genomics in R. The main purpose of the package is assisting in the creation of pangenome matrices where genes from related organisms are grouped by similarity, as well as the analysis of these data. FindMyFriends provides many novel approaches to doing pangenome analysis and supports a gene grouping algorithm that scales linearly, thus making the creation of huge pangenomes feasible.

Install the latest version of this package by entering the following in R:
AuthorThomas Lin Pedersen
Bioconductor views Clustering ComparativeGenomics DataRepresentation GenomicVariation GraphAndNetwork SequenceMatching
Date of publicationNone
MaintainerThomas Lin Pedersen <>
LicenseGPL (>=2)

View on Bioconductor

Man pages

addGenomes: Add new organisms to an existing pangenome

addGroupInfo: Safely add group info

addOrgInfo: Safely add organisms info

cdhitGrouping: Gene grouping by preclustering with CD-HIT

collapseParalogues: Merge paralogue gene groups into new gene groups

defaults: Access default values for a pgVirtual subclass object

fillDefaults: Assign object defaults to missing values

FindMyFriends-package: FindMyFriends: Comparative microbial genomics in R

geneLocation: Get gene location for all genes

geneNames: Get and set the names of the genes in the pangenome

genes: Extract gene sequences from a pangenome

geneWidth: Get the sequence length of each gene

getNeighborhood: Extract a graph representation of a gene group neighborhood

getRep: Get a representative sequence for each gene group

gpcGrouping: Guided Pairwise Comparison grouping of genes

graphGrouping: Use igraph to create gene grouping from a similarity matrix

groupInfo: Get and set information about gene group

groupNames: Get and set the names of gene groups in the pangenome

groupStat: Calculate statistics about each gene group

hasGeneGroups: Check whether gene groups are defined

hasGeneInfo: Checks for existance of gene location information

hasParalogueLinks: Checks whether linking of paralogues has been done

internalGroupGenes: Add gene grouping to pangenome

internalMergePangenomes: Merge information from two pangenomes

internalMetadata: Add metadata to the pangenome

kmerLink: Link gene groups by homology

kmerSimilarity: Calculate a similarity matrix based on kmers

kmerSplit: Split gene groups based on similarity

loadPgExample: Load an example pangenome

manualGrouping: Define gene grouping manually

neighborhoodSplit: Split gene groups by neighborhood synteny

nGeneGroups: Get the number of gene groups in a pangenome

nGenes: Get the total number of genes in a pangenome

nOrganisms: Get the number of organisms represented in a pangenome

orgInfo: Get and set information about organisms

orgNames: Get and set the names of organisms in the pangenome

orgStat: Calculate statistics about each organism

pangenome: Construct a pangenome from fasta files

pcGraph: Calculate the panchromosome graph

pgFull-class: Class for in memory pangenome data

pgFullLoc-class: Class for in memory pangenome data with location information

pgInMem-class: FindMyFriends standard base class for pangenomic data

pgInMemLoc-class: Superclass for gene location aware pangenome

pgLM-class: Class for reference based pangenome data

pgLMLoc-class: Class for reference based pangenome data with location...

pgMatrix: Get the pangenome matrix

pgSlim-class: Class for pangenome data with no reference to genes

pgSlimLoc-class: Class for pangenome data with no reference to genes

pgVirtual-class: Base class for pangenomic data

pgVirtualLoc-class: Superclass for gene location aware pangenome

plotEvolution: Plot the evolution in gene groups

plotGroup: Plot the similarities of genes within a group

plotNeighborhood: Plot the neighborhood of a gene group

plotSimilarity: Create a heatplot with similarities between all organisms

plotStat: Plot (very) basic statistics on the pangenome

plotTree: Plot a dendrogram of the organisms in a pangenome

readAnnot: Import annotation from an .annot file

removeGene: Remove genes from a pangenome

reportGroupChanges: Reports the change in grouping

seqToGeneGroup: Get gene-to-genegroup relationship

seqToOrg: Get gene-to-organism relationship

translated: Check the sequence type of the pangenome

variableRegions: Detect regions of high variability in the panchromosome


addGenomes Man page
addGenomes,pgVirtual,pgVirtual-method Man page
addGroupInfo Man page
addGroupInfo,pgVirtual-method Man page
addOrgInfo Man page
addOrgInfo,pgVirtual-method Man page
as Man page
cdhitGrouping Man page
cdhitGrouping,pgVirtual-method Man page
collapseParalogues Man page
collapseParalogues,pgVirtual-method Man page
defaults Man page
defaults<- Man page
defaults<-,pgVirtual-method Man page
defaults,pgVirtual-method Man page
.fillDefaults Man page
FindMyFriends-package Man page
geneLocation Man page
geneLocation,pgInMemLoc-method Man page
geneNames Man page
geneNames<- Man page
geneNames<-,pgFull-method Man page
geneNames,pgFull-method Man page
geneNames<-,pgLM-method Man page
geneNames,pgLM-method Man page
geneNames<-,pgSlim-method Man page
geneNames,pgSlim-method Man page
genes Man page
genes,pgFull,character-method Man page
genes,pgFull,missing-method Man page
genes,pgLM,character-method Man page
genes,pgLM,missing-method Man page
genes,pgSlim,character-method Man page
genes,pgSlim,missing-method Man page
geneWidth Man page
geneWidth,pgFull-method Man page
geneWidth,pgLM-method Man page
geneWidth,pgSlim-method Man page
getNeighborhood Man page
getNeighborhood,pgVirtualLoc-method Man page
getRep Man page
getRep,pgVirtual,character-method Man page
gpcGrouping Man page
gpcGrouping,pgVirtual-method Man page
graphGrouping Man page
graphGrouping,pgVirtual-method Man page
groupGenes Man page
groupGenes,pgInMem-method Man page
groupGenes,pgVirtual-method Man page
groupInfo Man page
groupInfo<- Man page
groupInfo<-,pgInMem-method Man page
groupInfo,pgInMem-method Man page
groupNames Man page
groupNames<- Man page
groupNames<-,pgInMem-method Man page
groupNames,pgInMem-method Man page
groupStat Man page
groupStat,pgVirtual-method Man page
hasGeneGroups Man page
hasGeneGroups,pgVirtual-method Man page
hasGeneInfo Man page
hasGeneInfo,pgVirtual-method Man page
hasParalogueLinks Man page
hasParalogueLinks,pgVirtual-method Man page
internal-groupGenes Man page
internal-mergePangenomes Man page
internal-metadata Man page
kmerLink Man page
kmerLink,pgVirtual-method Man page
kmerSimilarity Man page
kmerSimilarity,pgVirtual-method Man page
kmerSplit Man page
kmerSplit,pgVirtual-method Man page
length,pgVirtual-method Man page
.loadPgExample Man page
manualGrouping Man page
manualGrouping,pgVirtual,integer-method Man page
manualGrouping,pgVirtual,list-method Man page
mergePangenomes Man page
mergePangenomes,pgFullLoc,pgFullLoc-method Man page
mergePangenomes,pgFull,pgFull-method Man page
mergePangenomes,pgInMem,pgInMem-method Man page
mergePangenomes,pgLMLoc,pgLMLoc-method Man page
mergePangenomes,pgLM,pgLM-method Man page
mergePangenomes,pgSlimLoc,pgSlimLoc-method Man page
neighborhoodSplit Man page
neighborhoodSplit,pgVirtualLoc-method Man page
nGeneGroups Man page
nGeneGroups,pgVirtual-method Man page
nGenes Man page
nGenes,pgVirtual-method Man page
nOrganisms Man page
nOrganisms,pgVirtual-method Man page
orgInfo Man page
orgInfo<- Man page
orgInfo<-,pgInMem-method Man page
orgInfo,pgInMem-method Man page
orgNames Man page
orgNames<- Man page
orgNames<-,pgInMem-method Man page
orgNames,pgInMem-method Man page
orgStat Man page
orgStat,pgVirtual-method Man page
pangenome Man page
pcGraph Man page
pcGraph,pgVirtualLoc-method Man page
pgFull-class Man page
pgFullLoc-class Man page
pgInMem-class Man page
pgInMemLoc-class Man page
pgLM-class Man page
pgLMLoc-class Man page
pgMatrix Man page
pgMatrix,pgVirtual-method Man page
pgSlim-class Man page
pgSlimLoc-class Man page
[[,pgVirtual,ANY,ANY-method Man page
[,pgVirtual,character,ANY,ANY-method Man page
pgVirtual-class Man page
[,pgVirtual,integer,ANY,ANY-method Man page
pgVirtualLoc-class Man page
[,pgVirtual,logical,ANY,ANY-method Man page
[,pgVirtual,numeric,ANY,ANY-method Man page
plotEvolution Man page
plotEvolution,pgVirtual-method Man page
plotGroup Man page
plotGroup,pgVirtual-method Man page
plotNeighborhood Man page
plotNeighborhood,pgVirtualLoc-method Man page
plotSimilarity Man page
plotSimilarity,pgVirtual-method Man page
plotStat Man page
plotStat,pgVirtual-method Man page
plotTree Man page
plotTree,pgVirtual-method Man page
readAnnot Man page
removeGene Man page
removeGene,pgInMem,missing,missing,missing,numeric-method Man page
removeGene,pgVirtual,character,character,missing,missing-method Man page
removeGene,pgVirtual,character,missing,missing,missing-method Man page
removeGene,pgVirtual,character,numeric,missing,missing-method Man page
removeGene,pgVirtual,missing,character,missing,missing-method Man page
removeGene,pgVirtual,missing,character,missing,numeric-method Man page
removeGene,pgVirtual,missing,missing,character,missing-method Man page
removeGene,pgVirtual,missing,missing,character,numeric-method Man page
removeGene,pgVirtual,missing,missing,numeric,missing-method Man page
removeGene,pgVirtual,missing,missing,numeric,numeric-method Man page
removeGene,pgVirtual,missing,numeric,missing,missing-method Man page
removeGene,pgVirtual,missing,numeric,missing,numeric-method Man page
reportGroupChanges Man page
seqToGeneGroup Man page
seqToGeneGroup,pgInMem-method Man page
seqToOrg Man page
seqToOrg,pgInMem-method Man page
setGroupInfo Man page
setGroupInfo,pgInMem-method Man page
setOrgInfo Man page
setOrgInfo,pgInMem-method Man page
show,pgVirtual-method Man page
translated Man page
translated,pgVirtual-method Man page
variableRegions Man page
variableRegions,pgVirtualLoc-method Man page


R/FindMyFriends-package.R R/RcppExports.R R/aaa.R R/constructor.R R/generics.R R/ggGraph.R R/grouping.R R/investigating.R R/linearKernel.R R/linking.R R/modifying.R R/pgFull.R R/pgFullLoc.R R/pgInMem.R R/pgInMemLoc.R R/pgLM.R R/pgLMLoc.R R/pgSlim.R R/pgSlimLoc.R R/pgVirtual.R R/pgVirtualLoc.R R/progress.R R/similarities.R R/splitting.R
man/FindMyFriends-package.Rd man/addGenomes.Rd man/addGroupInfo.Rd man/addOrgInfo.Rd man/cdhitGrouping.Rd man/collapseParalogues.Rd man/defaults.Rd man/fillDefaults.Rd man/geneLocation.Rd man/geneNames.Rd man/geneWidth.Rd man/genes.Rd man/getNeighborhood.Rd man/getRep.Rd man/gpcGrouping.Rd man/graphGrouping.Rd man/groupInfo.Rd man/groupNames.Rd man/groupStat.Rd man/hasGeneGroups.Rd man/hasGeneInfo.Rd man/hasParalogueLinks.Rd man/internalGroupGenes.Rd man/internalMergePangenomes.Rd man/internalMetadata.Rd man/kmerLink.Rd man/kmerSimilarity.Rd man/kmerSplit.Rd man/loadPgExample.Rd man/manualGrouping.Rd man/nGeneGroups.Rd man/nGenes.Rd man/nOrganisms.Rd man/neighborhoodSplit.Rd man/orgInfo.Rd man/orgNames.Rd man/orgStat.Rd man/pangenome.Rd man/pcGraph.Rd man/pgFull-class.Rd man/pgFullLoc-class.Rd man/pgInMem-class.Rd man/pgInMemLoc-class.Rd man/pgLM-class.Rd man/pgLMLoc-class.Rd man/pgMatrix.Rd man/pgSlim-class.Rd man/pgSlimLoc-class.Rd man/pgVirtual-class.Rd man/pgVirtualLoc-class.Rd man/plotEvolution.Rd man/plotGroup.Rd man/plotNeighborhood.Rd man/plotSimilarity.Rd man/plotStat.Rd man/plotTree.Rd man/readAnnot.Rd man/removeGene.Rd man/reportGroupChanges.Rd man/seqToGeneGroup.Rd man/seqToOrg.Rd man/translated.Rd man/variableRegions.Rd
tests/testthat.R tests/testthat/test-GPC.R tests/testthat/test-addGenomes.R tests/testthat/test-constructor.R tests/testthat/test-defaults.R tests/testthat/test-geneLocation.R tests/testthat/test-grouping.R tests/testthat/test-investigating.R tests/testthat/test-linking.R tests/testthat/test-loadPgExample.R tests/testthat/test-modifying.R tests/testthat/test-orgCompare.R tests/testthat/test-parallelLinearKernel.R tests/testthat/test-pgFull.R tests/testthat/test-pgLM.R tests/testthat/test-pgSlim.R tests/testthat/test-similarities.R tests/testthat/test-splitAndBind.R tests/testthat/test-splitting.R

Questions? Problems? Suggestions? or email at

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.