Une interface R avec la famille d'outils de la suite de mèmes, qui fournit plusieurs utilitaires pour effectuer une analyse du motif sur les séquences d'ADN, d'ARN et de protéines. Les mèmes fonctionnent en détectant une installation locale de la suite de mèmes, en exécutant les commandes, puis en important les résultats directement dans R.
Memes est actuellement disponible sur la branche devel
bioconductrice:
if ( ! requireNamespace( " BiocManager " , quietly = TRUE ))
install.packages( " BiocManager " )
# The following initializes usage of Bioc devel
BiocManager :: install( version = ' devel ' )
BiocManager :: install( " memes " )
Vous pouvez installer la version de développement des mèmes de GitHub avec:
if ( ! requireNamespace( " remotes " , quietly = TRUE ))
install.packages( " remotes " )
remotes :: install_github( " snystrom/memes " )
# To temporarily bypass the R version 4.1 requirement, you can pull from the following branch:
remotes :: install_github( " snystrom/memes " , ref = " no-r-4 " )
# Get development version from dockerhub
docker pull snystrom/memes_docker:devel
# the -v flag is used to mount an analysis directory,
# it can be excluded for demo purposes
docker run -e PASSWORD= < password > -p 8787:8787 -v < path > / < to > / < project > :/mnt/ < project > snystrom/memes_docker:devel
Les mèmes s'appuient sur une installation locale de la suite de mèmes. Pour les instructions d'installation pour la suite Meme, consultez le guide d'installation de la suite de mèmes.
Les mèmes doivent connaître l'emplacement du meme/bin/
répertoire sur votre machine locale. Vous pouvez dire aux mèmes l'emplacement de votre suite de mèmes d'installation de 4 manières. Les mèmes préféreront toujours la définition plus spécifique s'il s'agit d'un chemin valide. Ici, ils sont classés du plus à la moins spécifique:
meme_path
de toutes les fonctions de mèmesoptions(meme_bin = "/path/to/meme/bin/")
à l'intérieur de votre script RMEME_BIN=/path/to/meme/bin/
dans votre fichier .Renviron
~/meme/bin/
Si les mèmes ne détectent pas votre installation à l'emplacement spécifié, il retombera à l'option suivante.
Pour vérifier que les mèmes peuvent détecter votre installation de mèmes, utilisez check_meme_install()
qui utilise l'hérirarchie de recherche ci-dessus pour trouver une installation de mèmes valide. Il rapportera si des outils sont manquants et impriment le chemin vers le mème qu'il voit. Cela peut être utile pour résoudre les problèmes avec votre installation.
library( memes )
# Verify that memes detects your meme install
# (returns all green checks if so)
check_meme_install()
# > checking main install
# > ✓ /opt/meme/bin
# > checking util installs
# > ✓ /opt/meme/bin/dreme
# > ✓ /opt/meme/bin/ame
# > ✓ /opt/meme/bin/fimo
# > ✓ /opt/meme/bin/tomtom
# > ✓ /opt/meme/bin/meme
# > x /opt/meme/bin/streme
# You can manually input a path to meme_path
# If no meme/bin is detected, will return a red X
check_meme_install( meme_path = ' bad/path ' )
# > checking main install
# > x bad/path
Nom de la fonction | Utiliser | Entrée de séquence | Entrée du motif | Sortir |
---|---|---|---|---|
runStreme() | Découverte de motif (motifs courts) | Oui | Non | universalmotif_df |
runDreme() | Découverte de motif (motifs courts) | Oui | Non | universalmotif_df |
runAme() | Enrichissement du motif | Oui | Oui | data.frame (facultatif: colonne sequences ) |
runFimo() | Balayage du motif | Oui | Oui | Groanges de positions de motif |
runTomTom() | Comparaison du motif | Non | Oui | universalmotif_df w / best_match_motif et colonnes tomtom * |
runMeme() | Découverte de motif (motifs longs) | Oui | Non | universalmotif_df |
* Remarque: si runTomTom()
est exécuté en utilisant un universalmotif_df
les résultats seront joints aux résultats universalmotif_df
en tant que colonnes supplémentaires. Cela permet une comparaison facile des motifs découverts De-novo avec leurs matchs.
Les entrées de séquence peuvent être n'importe laquelle:
Biostrings::XStringSet
(peut être généré à partir de GRANGES en utilisant la fonction d'assistance get_sequence()
)Biostrings::XStringSet
(généré par get_sequence()
)Les entrées du motif peuvent être n'importe laquelle:
universalmotif
, ou la liste des objets universalmotif
runDreme()
Résultats (cela permet aux résultats de runDreme()
de passer directement à runTomTom()
)list()
(par exemple list("path/to/database.meme", "dreme_results" = dreme_res)
)Types de sortie :
runDreme()
, runStreme()
, runMeme()
et runTomTom()
renvoie des objets universalmotif_df
qui sont des données. La colonne motif
contient un objet universalmotif
, avec 1 entrée par ligne. Les colonnes restantes décrivent les propriétés de chaque motif retourné. Les noms de colonnes suivants sont spéciaux en ce que leurs valeurs sont utilisées lors de l'exécution update_motifs()
et to_list()
pour modifier les propriétés des motifs stockés dans la colonne motif
. Faites attention à modifier ces valeurs car ces modifications se propageront à la colonne motif
lors de l'appel update_motifs()
ou to_list()
.
Les mèmes sont construits autour du package Universalotif qui fournit un cadre pour la manipulation des motifs dans les objets R. universalmotif_df
peut interconvertir entre Data.Frame et universalmotif
List Format à l'aide des fonctions to_df()
et to_list()
, respectivement. Cela permet d'utiliser des résultats memes
avec tous les autres packages de motifs de bioconductrice, car les objets universalmotif
peuvent se convertir en tout autre type de motif à l'aide convert_motifs()
.
runTomTom()
Renvoie une colonne spéciale: tomtom
qui est un data.frame
de toutes les données de correspondance pour chaque motif d'entrée. Cela peut être étendu à l'aide de tidyr::unnest(tomtom_results, "tomtom")
et renommé de nest_tomtom()
. Les colonnes préfixées best_match_
renvoyées par runTomTom()
indiquent des valeurs pour le motif qui était la meilleure correspondance du motif d'entrée.
suppressPackageStartupMessages(library( magrittr ))
suppressPackageStartupMessages(library( GenomicRanges ))
# Example transcription factor peaks as GRanges
data( " example_peaks " , package = " memes " )
# Genome object
dm.genome <- BSgenome.Dmelanogaster.UCSC.dm6 :: BSgenome.Dmelanogaster.UCSC.dm6
La fonction get_sequence
prend un GRanges
ou GRangesList
en entrée et renvoie les séquences en tant que BioStrings::XStringSet
, ou liste des objets XStringSet
, respectivement. get_sequence
nommera chaque entrée FastA par les coordonnées génomiques de chaque séquence.
# Generate sequences from 200bp about the center of my peaks of interest
sequences <- example_peaks % > %
resize( 200 , " center " ) % > %
get_sequence( dm.genome )
runDreme()
accepte XStringSet ou un chemin vers un fichier FASTA en entrée. Vous pouvez utiliser d'autres séquences ou des séquences d'entrée mélangées comme ensemble de données de contrôle.
# runDreme accepts all arguments that the commandline version of dreme accepts
# here I set e = 50 to detect motifs in the limited example peak list
# In a real analysis, e should typically be < 1
dreme_results <- runDreme( sequences , control = " shuffle " , e = 50 )
Les mèmes sont construits autour du package Universalotif. Les résultats sont renvoyés au format universalmotif_df
, qui est un R data.frame qui peut interconvertir de manière transparente entre Data.Frame et universalmotif
Format à l'aide de to_list()
pour convertir au format de liste universalmotif
, et to_df()
pour se convertir au format Data.Frame. L'utilisation to_list()
permet d'utiliser des résultats memes
avec toutes les fonctions universalmotif
comme tel:
library( universalmotif )
dreme_results % > %
to_list() % > %
view_motifs()
Les motifs découverts peuvent être appariés à des motifs TF connus à l' runDreme()
de runTomTom()
universalmotif
qui peuvent accepter en entrée un chemin vers un fichier formaté.
TomTom utilise une base de données de motifs connus qui peuvent être transmis au paramètre database
comme chemin vers un fichier de format .Meme, ou un objet universalmotif
.
En éventuellement, vous pouvez définir la variable d'environnement MEME_DB
dans .Renviron
sur un fichier sur disque, ou la valeur meme_db
dans options
dans un fichier et mèmes de format .meme valides utiliseront ce fichier comme base de données. Les mèmes préféreront toujours l'entrée de l'utilisateur à l'appel de fonction à un paramètre de variable global.
options( meme_db = system.file( " extdata/flyFactorSurvey_cleaned.meme " , package = " memes " ))
m <- create_motif( " CMATTACN " , altname = " testMotif " )
tomtom_results <- runTomTom( m )
tomtom_results
# > motif name altname consensus alphabet strand icscore type
# > 1 <mot:motif> motif testMotif CMATTACN DNA +- 13 PPM
# > bkg best_match_name best_match_altname
# > 1 0.25, 0.25, 0.25, 0.25 prd_FlyReg prd
# > best_db_name best_match_offset best_match_pval best_match_eval
# > 1 flyFactorSurvey_cleaned 0 9.36e-05 0.052
# > best_match_qval best_match_strand
# > 1 0.0353 +
# > best_match_motif
# > 1 <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>
#> tomtom
#> 1 prd_FlyReg, tup_SOLEXA_10, CG13424_Cell, CG11085_Cell, BH2_Cell, CG13424_SOLEXA_2, Tup_Cell, Tup_SOLEXA, Bsh_Cell, Exex_SOLEXA, Odsh_SOLEXA, Unc4_Cell, Ubx_FlyReg, Unc4_SOLEXA, E5_Cell, inv_SOLEXA_5, BH2_SOLEXA, Zen_SOLEXA, CG33980_SOLEXA_2_10, BH1_SOLEXA, CG33980_SOLEXA_2_0, Hgtx_Cell, NK7.1_Cell, Slou_Cell, CG13424_SOLEXA, Zen2_Cell, AbdA_SOLEXA, Antp_SOLEXA, Btn_Cell, Dfd_SOLEXA, Eve_SOLEXA, Ftz_Cell, Hmx_SOLEXA, Hmx_Cell, CG34031_Cell, zen2_SOLEXA_2, En_Cell, Pb_SOLEXA, Slou_SOLEXA, Unpg_Cell, inv_SOLEXA_2, ovo_FlyReg, lim_SOLEXA_2, C15_SOLEXA, Ems_Cell, Btn_SOLEXA, Unpg_SOLEXA, Pb_Cell, Bsh_SOLEXA, Scr_SOLEXA, Zen2_SOLEXA, CG34031_SOLEXA, Eve_Cell, Pph13_Cell, BH1_Cell, CG11085_SOLEXA, CG32532_Cell, en_FlyReg, Dll_SOLEXA, Dfd_Cell, Dr_SOLEXA, Ap_Cell, Ro_Cell, CG4136_SOLEXA, CG33980_SOLEXA, Hbn_SOLEXA, Lbl_Cell, Otp_Cell, Rx_Cell, CG32532_SOLEXA, NK7.1_SOLEXA, Dr_Cell, Odsh_Cell, Al_SOLEXA, Antp_Cell, Hgtx_SOLEXA, Ftz_SOLEXA, Lab_SOLEXA, Dfd_FlyReg, Ap_SOLEXA, Awh_SOLEXA, CG11294_SOLEXA, CG4136_Cell, E5_SOLEXA, Ro_SOLEXA, PhdP_SOLEXA, CG12361_SOLEXA_2, Ind_Cell, Scr_Cell, CG9876_Cell, CG18599_Cell, CG9876_SOLEXA, Otp_SOLEXA, Lbl_SOLEXA, Ubx_Cell, Ubx_SOLEXA, en_SOLEXA_2, Pph13_SOLEXA, Rx_SOLEXA, CG15696_SOLEXA, CG18599_SOLEXA, Ems_SOLEXA, Repo_Cell, Dll_Cell, C15_Cell, CG12361_SOLEXA, Abd-A_FlyReg, Repo_SOLEXA, Zen_Cell, Inv_Cell, En_SOLEXA, Lim3_Cell, Lim1_SOLEXA, CG15696_Cell, Crc_CG6272_SANGER_5, Lab_Cell, CG32105_SOLEXA, Bap_SOLEXA, CG9437_SANGER_5, AbdA_Cell, pho_FlyReg, CG33980_Cell, Cad_SOLEXA, CG4328_SOLEXA, CG4328_Cell, Gsc_Cell, vri_SANGER_5, AbdB_SOLEXA, Xrp1_CG6272_SANGER_5, Al_Cell, Exex_Cell, br-Z4_FlyReg, CG11294_Cell, Aef1_FlyReg, CG7745_SANGER_5, PhdP_Cell, Awh_Cell, prd, tup, lms, CG11085, B-H2, lms, tup, tup, bsh, exex, OdsH, unc-4, Ubx, unc-4, E5, inv, B-H2, zen, CG33980, B-H1, CG33980, HGTX, NK7.1, slou, lms, zen2, abd-A, Antp, btn, Dfd, eve, ftz, Hmx, Hmx, CG34031, zen2, en, pb, slou, unpg, inv, ovo, Lim1, C15, ems, btn, unpg, pb, bsh, Scr, zen2, CG34031, eve, Pph13, B-H1, CG11085, CG32532, en, Dll, Dfd, Dr, ap, ro, CG4136, CG33980, hbn, lbl, otp, Rx, CG32532, NK7.1, Dr, OdsH, al, Antp, HGTX, ftz, lab, Dfd, ap, Awh, CG11294, CG4136, E5, ro, PHDP, CG12361, ind, Scr, CG9876, CG18599, CG9876, otp, lbl, Ubx, Ubx, en, Pph13, Rx, CG15696, CG18599, ems, repo, Dll, C15, CG12361, abd-A, repo, zen, inv, en, Lim3, Lim1, CG15696, crc, lab, CG32105, bap, CG9437, abd-A, pho, CG33980, cad, CG4328, CG4328, Gsc, vri, Abd-B, Xrp1, al, exex, br, CG11294, Aef1, CG7745, PHDP, Awh, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, <S4 class 'universalmotif' [package "universalmotif"] with 20 slots>, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, flyFactorSurvey_cleaned, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, -3, 0, 4, 1, 0, 0, 0, 0, -2, 0, -2, 1, 0, -2, 1, 0, 2, -1, 0, 9.36e-05, 0.000129, 0.00013, 0.000194, 0.000246, 0.000247, 0.000319, 0.000364, 0.000427, 0.000435, 0.000473, 0.000473, 0.000556, 0.000643, 0.000694, 0.000728, 0.000748, 0.000748, 0.000785, 0.000828, 0.000849, 0.000868, 0.000868, 0.000868, 0.00102, 0.00113, 0.00116, 0.00116, 0.00116, 0.00116, 0.00116, 0.00116, 0.00118, 0.00126, 0.00134, 0.00141, 0.00144, 0.00145, 0.00145, 0.00154, 0.00161, 0.00165, 0.00173, 0.00177, 0.00177, 0.00179, 0.00179, 0.0019, 0.00191, 0.00191, 0.00191, 0.00203, 0.00203, 0.00203, 0.00212, 0.00214, 0.00219, 0.00232, 0.00242, 0.00247, 0.0026, 0.00264, 0.00264, 0.00268, 0.00282, 0.00282, 0.00282, 0.00282, 0.00282, 0.00286, 0.00286, 0.00296, 0.00305, 0.00316, 0.0032, 0.0032, 0.00326, 0.00326, 0.00341, 0.00348, 0.00348, 0.00348, 0.00348, 0.00348, 0.00348, 0.0035, 0.00359, 0.00359, 0.00359, 0.00364, 0.00372, 0.00372, 0.00372, 0.00387, 0.00387, 0.00412, 0.00415, 0.00424, 0.00424, 0.00439, 0.00452, 0.00452, 0.00467, 0.00483, 0.00497, 0.00497, 0.00528, 0.00549, 0.0059, 0.00597, 0.00624, 0.00635, 0.00709, 0.00761, 0.0079, 0.00856, 0.00859, 0.00912, 0.00935, 0.0097, 0.00974, 0.0101, 0.0109, 0.0116, 0.0123, 0.0123, 0.0127, 0.0138, 0.0138, 0.014, 0.014, 0.0147, 0.0148, 0.0155, 0.0165, 0.0166, 0.0177, 0.052, 0.0718, 0.0725, 0.108, 0.137, 0.137, 0.177, 0.202, 0.238, 0.242, 0.263, 0.263, 0.309, 0.357, 0.386, 0.405, 0.416, 0.416, 0.436, 0.46, 0.472, 0.483, 0.483, 0.483, 0.566, 0.629, 0.646, 0.646, 0.646, 0.646, 0.646, 0.646, 0.654, 0.702, 0.745, 0.785, 0.8, 0.808, 0.808, 0.858, 0.897, 0.92, 0.961, 0.985, 0.985, 0.993, 0.993, 1.05, 1.06, 1.06, 1.06, 1.13, 1.13, 1.13, 1.18, 1.19, 1.22, 1.29, 1.34, 1.38, 1.45, 1.47, 1.47, 1.49, 1.57, 1.57, 1.57, 1.57, 1.57, 1.59, 1.59, 1.65, 1.7, 1.76, 1.78, 1.78, 1.81, 1.81, 1.9, 1.94, 1.94, 1.94, 1.94, 1.94, 1.94, 1.95, 2, 2, 2, 2.02, 2.07, 2.07, 2.07, 2.15, 2.15, 2.29, 2.31, 2.36, 2.36, 2.44, 2.52, 2.52, 2.6, 2.68, 2.76, 2.76, 2.94, 3.05, 3.28, 3.32, 3.47, 3.53, 3.94, 4.23, 4.39, 4.76, 4.77, 5.07, 5.2, 5.39, 5.41, 5.61, 6.06, 6.42, 6.81, 6.81, 7.03, 7.66, 7.65, 7.78, 7.78, 8.15, 8.26, 8.59, 9.18, 9.2, 9.85, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0353, 0.0368, 0.0369, 0.0369, 0.0369, 0.0369, 0.0369, 0.0372, 0.0372, 0.0372, 0.0372, 0.0372, 0.0372, 0.0372, 0.0372, 0.0372, 0.0372, 0.0372, 0.0372, 0.0372, 0.0372, 0.0372, 0.0379, 0.0379, 0.0381, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0396, 0.0404, 0.0404, 0.0424, 0.0424, 0.0424, 0.0424, 0.0435, 0.0439, 0.0439, 0.0449, 0.046, 0.0464, 0.0464, 0.0489, 0.0504, 0.0536, 0.0538, 0.0557, 0.0562, 0.0622, 0.0662, 0.0681, 0.0727, 0.0727, 0.0765, 0.0778, 0.0797, 0.0797, 0.0819, 0.0877, 0.0923, 0.0964, 0.0964, 0.0987, 0.106, 0.106, 0.106, 0.106, 0.11, 0.111, 0.114, 0.121, 0.121, 0.128, +, -, -, -, -, -, -, -, -, -, -, -, +, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, +, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, +, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, +, -, -, -, -, -, -, -, +, -, -, -, +, -, -, -, -, -, -, -, +, -, +, -, -, -, +, +, +, -, -
# >
# > [Hidden empty columns: family, organism, nsites, bkgsites, pval, qval,
# > eval.]
runTomTom()
ajoutera ses résultats en tant que colonnes à un runDreme()
Results Data.frame.
full_results <- dreme_results % > %
runTomTom()
L'AME est utilisée pour tester l'enrichissement des motifs connus dans les séquences cibles. runAme()
utilisera l'entrée MEME_DB
dans .Renviron
ou options(meme_db = "path/to/database.meme")
comme base de données du motif. Alternativement, il acceptera toutes les entrées valides similaires à runTomTom()
.
# here I set the evalue_report_threshold = 30 to detect motifs in the limited example sequences
# In a real analysis, evalue_report_threshold should be carefully selected
ame_results <- runAme( sequences , control = " shuffle " , evalue_report_threshold = 30 )
ame_results
# > # A tibble: 2 x 17
# > rank motif_db motif_id motif_alt_id consensus pvalue adj.pvalue evalue tests
# > <int> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <int>
# > 1 1 /usr/lo… Eip93F_… Eip93F ACWSCCRA… 5.14e-4 0.0339 18.8 67
# > 2 2 /usr/lo… Cf2-PB_… Cf2 CSSHNKDT… 1.57e-3 0.0415 23.1 27
# > # … with 8 more variables: fasta_max <dbl>, pos <int>, neg <int>,
# > # pwm_min <dbl>, tp <int>, tp_percent <dbl>, fp <int>, fp_percent <dbl>
view_tomtom_hits
permet de comparer les motifs d'entrée aux coups supérieurs de TomTom. L'inspection manuelle de ces matchs est importante, car parfois la correspondance supérieure n'est pas toujours la bonne affectation. La modification de top_n
vous permet d'afficher des matchs supplémentaires dans l'ordre décroissant de leur rang.
full_results % > %
view_tomtom_hits( top_n = 1 )
# > $m01_AGAGC
Il peut être utile de visualiser les résultats de runAme()
comme une carte thermique. plot_ame_heatmap()
peut créer des visualisations complexes pour l'analyse de l'enrichissement entre différents types de région (voir Vignettes pour plus de détails). Voici un exemple simple de chaleur.
ame_results % > %
plot_ame_heatmap()
L'outil FIMO est utilisé pour identifier les correspondances aux motifs connus. runFimo
renverra ces tubes sous forme d'objet GRanges
contenant les coordonnées génomiques de la correspondance du motif.
# Query MotifDb for a motif
e93_motif <- MotifDb :: query( MotifDb :: MotifDb , " Eip93F " ) % > %
universalmotif :: convert_motifs()
# > See system.file("LICENSE", package="MotifDb") for use restrictions.
# Scan for the E93 motif within given sequences
fimo_results <- runFimo( sequences , e93_motif , thresh = 1e-3 )
# Visualize the sequences matching the E93 motif
plot_sequence_heatmap( fimo_results $ matched_sequence )
Les mèmes prennent également en charge l'importation de résultats générés à l'aide de la suite de mèmes en dehors de R (par exemple, exécuter des travaux sur meme-site.org, ou exécuter sur la ligne de commande). Cela permet l'utilisation de résultats de suite de mèmes préexistants avec des fonctions de mèmes en aval.
Outil de mème | Nom de la fonction | Type de fichier |
---|---|---|
Streme | importStremeXML() | streme.xml |
Drème | importDremeXML() | dreme.xml |
Tomtom | importTomTomXML() | tomtom.xml |
AME | importAme() | ame.tsv * |
Fimo | importFimo() | fimo.tsv |
Mème | importMeme() | meme.txt |
* importAME()
peut également utiliser la sortie «Sequence.tsv» Lorsque AME a utilisé method = "fisher"
, c'est facultatif.
La suite Meme ne prend pas actuellement en charge les fenêtres, bien qu'elle puisse être installée sous Cygwin ou dans le sous-système Windows Linux (WSL). Veuillez noter que si le mème est installé sur Cygwin ou WSL, vous devez également exécuter R à l'intérieur de Cygwin ou WSL pour utiliser des mèmes.
Une autre solution consiste à utiliser Docker pour exécuter un environnement virtuel avec la suite de mèmes installée. Nous fournissons un conteneur docker de mèmes
qui expédie avec la suite Meme, R Studio et toutes les dépendances memes
préinstallées.
Memes est un wrapper pour quelques outils sélectionnés dans la suite Meme, qui ont été développés par un autre groupe. En plus de citer les mèmes, veuillez citer les outils de suite de mèmes correspondant aux outils que vous utilisez.
Si vous utilisez runDreme()
dans votre analyse, veuillez citer:
Timothy L. Bailey, «Dreme: Motif Discovery in Transcription Factor Chip-Seq Data», Bioinformatics, 27 (12): 1653-1659, 2011. Texte complet
Si vous utilisez runTomTom()
dans votre analyse, veuillez citer:
Shobhit Gupta, Ja Stamatoyannopolous, Timothy Bailey et William Stafford Noble, «Quantification de similitude entre les motifs», Genome Biology, 8 (2): R24, 2007. Text complet
Si vous utilisez runAme()
dans votre analyse, veuillez citer:
Robert McLeay et Timothy L. Bailey, «Analyse d'enrichissement du motif: un cadre unifié et évaluation des méthodes», BMC Bioinformatics, 11: 165, 2010, doi: 10.1186 / 1471-2105-11-165. texte intégral
Si vous utilisez runFimo()
dans votre analyse, veuillez citer:
Charles E. Grant, Timothy L. Bailey et William Stafford Noble, «FIMO: analyse pour les occurrences d'un motif donné», Bioinformatics, 27 (7): 1017-1018, 2011. Texte complet
La suite Meme est gratuite pour une utilisation à but non lucratif, mais les utilisateurs à but lucratif devraient acheter une licence. Voir la page Copyright de la suite Meme pour plus de détails.