Uma interface R para a família de ferramentas da Meme Suite, que fornece várias concessionárias para realizar análises de motivos em sequências de DNA, RNA e proteína. Os memes trabalham detectando uma instalação local da suíte de meme, executando os comandos e depois importando os resultados diretamente para R.
Os memes estão atualmente disponíveis no Bioconductor devel
Branch:
if ( ! requireNamespace( " BiocManager " , quietly = TRUE ))
install.packages( " BiocManager " )
# The following initializes usage of Bioc devel
BiocManager :: install( version = ' devel ' )
BiocManager :: install( " memes " )
Você pode instalar a versão de desenvolvimento dos memes do GitHub com:
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
Os memes se baseiam em uma instalação local da suíte meme. Para instruções de instalação para o Meme Suite, consulte o Guia de instalação do Meme Suite.
Os memes precisam conhecer a localização do meme/bin/
diretório em sua máquina local. Você pode dizer aos memes a localização do seu Meme Suite instalar de 4 maneiras. Os memes sempre preferirão a definição mais específica se for um caminho válido. Aqui eles são classificados da maioria dos mais específicos:
meme_path
de todos os memes funçõesoptions(meme_bin = "/path/to/meme/bin/")
dentro do seu script R RMEME_BIN=/path/to/meme/bin/
no seu arquivo .Renviron
~/meme/bin/
Se os memes não detectarem sua instalação no local especificado, ele voltará à próxima opção.
Para verificar os memes, pode detectar sua instalação de meme, use check_meme_install()
que usa a herdarchia de pesquisa acima para encontrar uma instalação válida de meme. Ele relatará se alguma ferramenta está faltando e imprimirá o caminho para o meme que ele vê. Isso pode ser útil para solucionar problemas com sua instalação.
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
Nome da função | Usar | Entrada de sequência | Entrada de motivos | Saída |
---|---|---|---|---|
runStreme() | Descoberta de motivos (motivos curtos) | Sim | Não | universalmotif_df |
runDreme() | Descoberta de motivos (motivos curtos) | Sim | Não | universalmotif_df |
runAme() | Enriquecimento de motivos | Sim | Sim | Data.Frame (coluna Opcional: sequences ) |
runFimo() | Digitalização de motivos | Sim | Sim | GRANGES de posições de motivos |
runTomTom() | Comparação de motivos | Não | Sim | universalmotif_df com best_match_motif e tomtom Colunas* |
runMeme() | Descoberta de motivos (motivos longos) | Sim | Não | universalmotif_df |
* Nota: Se runTomTom()
for executado usando um universalmotif_df
os resultados serão unidos com os resultados universalmotif_df
como colunas extras. Isso permite uma comparação fácil de motivos descobertos de de-Novo com suas partidas.
As entradas de sequência podem ser de qualquer:
Biostrings::XStringSet
(pode ser gerado a partir de granges usando a função get_sequence()
)Biostrings::XStringSet
(gerados por get_sequence()
)As entradas de motivos podem ser de qualquer:
universalmotif
, ou lista de objetos universalmotif
runDreme()
Resultados (isso permite que os resultados do runDreme()
passem diretamente para runTomTom()
)list()
(por exemplo list("path/to/database.meme", "dreme_results" = dreme_res)
)Tipos de saída :
runDreme()
, runStreme()
, runMeme()
e runTomTom()
Return universalmotif_df
Objetos que são dados.Frames com colunas especiais. A coluna motif
contém um objeto universalmotif
, com 1 entrada por linha. As colunas restantes descrevem as propriedades de cada motivo retornado. Os seguintes nomes das colunas são especiais, pois seus valores são usados ao executar update_motifs()
e to_list()
para alterar as propriedades dos motivos armazenados na coluna motif
. Tenha cuidado ao alterar esses valores, pois essas alterações se propagam para a coluna motif
ao chamar update_motifs()
ou to_list()
.
O MEMES é construído em torno do pacote universalMotif, que fornece uma estrutura para manipular motivos nos objetos R. universalmotif_df
pode se interconverter entre dados.frame e o formato da Lista universalmotif
usando as funções to_df()
e to_list()
, respectivamente. Isso permite que o uso de memes
resulta em todos os outros pacotes de motivos biocondutores, pois os objetos universalmotif
podem se converter para qualquer outro tipo de motivo usando convert_motifs()
.
runTomTom()
retorna uma coluna especial: tomtom
, que é um data.frame
de todos os dados correspondentes a cada motivo de entrada. Isso pode ser expandido usando tidyr::unnest(tomtom_results, "tomtom")
e renunciado com nest_tomtom()
. As colunas best_match_
prefixadas retornadas por runTomTom()
indicam valores para o motivo, que foi a melhor correspondência com o motivo de entrada.
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
A função get_sequence
pega um GRanges
ou GRangesList
como entrada e retorna as seqüências como um BioStrings::XStringSet
, ou lista de objetos XStringSet
, respectivamente. get_sequence
nomeará cada entrada da FASTA pelas coordenadas genômicas que cada sequência é de.
# Generate sequences from 200bp about the center of my peaks of interest
sequences <- example_peaks % > %
resize( 200 , " center " ) % > %
get_sequence( dm.genome )
runDreme()
aceita XStringset ou um caminho para um arquivo fasta como entrada. Você pode usar outras seqüências ou sequências de entrada embaralhadas como conjunto de dados de controle.
# 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 )
Os memes são construídos em torno do pacote UniversityMotif. Os resultados são retornados universalmotif
to_df()
universalmotif_df
, universalmotif
é um R Data to_list()
O uso to_list()
permite o uso de resultados memes
com todas as funções universalmotif
como So:
library( universalmotif )
dreme_results % > %
to_list() % > %
view_motifs()
Os motivos descobertos podem ser correspondidos aos motivos TF conhecidos usando o RuntomTom runDreme()
runTomTom()
, que podem aceitar como entrada um caminho para universalmotif
.
O TomTom usa um banco de dados de motivos conhecidos que podem ser passados para o parâmetro database
como um caminho para um arquivo de formato .meme ou um objeto universalmotif
.
Opcionalmente, você pode definir a variável de ambiente MEME_DB
em .Renviron
como um arquivo no disco ou o valor meme_db
nas options
para um arquivo de formato .meme de formato. Os memes sempre preferem a entrada do usuário à chamada de função em uma configuração de variável 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()
adicionará seus resultados como colunas a um data runDreme()
resulta.frame.
full_results <- dreme_results % > %
runTomTom()
O AME é usado para testar o enriquecimento de motivos conhecidos em sequências alvo. runAme()
usará a entrada MEME_DB
em .Renviron
ou options(meme_db = "path/to/database.meme")
como o banco de dados do motivo. Como alternativa, ele aceitará todas as entradas válidas semelhantes a 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
permite comparar os motivos de entrada com os sucessos superiores do TomTom. A inspeção manual dessas correspondências é importante, pois às vezes a partida superior nem sempre é a atribuição correta. Altering top_n
permite que você mostre correspondências adicionais em ordem decrescente de sua classificação.
full_results % > %
view_tomtom_hits( top_n = 1 )
# > $m01_AGAGC
Pode ser útil visualizar os resultados do runAme()
como um mapa de calor. plot_ame_heatmap()
pode criar visualizações complexas para análise do enriquecimento entre diferentes tipos de região (consulte as vinhetas para obter detalhes). Aqui está um exemplo simples de mapa de calor.
ame_results % > %
plot_ame_heatmap()
A ferramenta FIMO é usada para identificar correspondências com motivos conhecidos. runFimo
retornará esses hits como um objeto GRanges
que contém as coordenadas genômicas da correspondência do motivo.
# 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 )
Os memes também suportam a importação de resultados gerados usando o Meme Suite fora de R (por exemplo, executando trabalhos no meme-suite.org ou em execução na linha de comando). Isso permite o uso de resultados preexistentes do Meme Suite com funções de memes a jusante.
Ferramenta de meme | Nome da função | Tipo de arquivo |
---|---|---|
Estreme | importStremeXML() | streme.xml |
Dreme | importDremeXML() | dreme.xml |
Tomtom | importTomTomXML() | tomtom.xml |
AME | importAme() | AME.TSV* |
FIMO | importFimo() | FIMO.TSV |
Meme | importMeme() | meme.txt |
* importAME()
também pode usar a saída "sequências.tsv" quando o AME usou method = "fisher"
, isso é opcional.
Atualmente, o MEME Suite não suporta o Windows, embora possa ser instalado no Cygwin ou no Subsetem do Windows Linux (WSL). Observe que, se o meme estiver instalado no Cygwin ou WSL, você também deverá executar R dentro de Cygwin ou WSL para usar memes.
Uma solução alternativa é usar o Docker para executar um ambiente virtual com o Meme Suite instalado. Fornecemos um recipiente de memes do Docker
Isso é enviado com a Suite Meme, R Studio e todas as dependências memes
pré-instaladas.
MEMES é um invólucro para algumas ferramentas selecionadas da Suite Meme, que foram desenvolvidas por outro grupo. Além de citar memes, cite as ferramentas do Meme Suite correspondentes às ferramentas que você usa.
Se você usar runDreme()
em sua análise, cite:
Timothy L. Bailey, “Dreme: Motif Descobery em Dados de Chip-Seq do fator de transcrição”, Bioinformatics, 27 (12): 1653-1659, 2011. Texto completo
Se você usar runTomTom()
em sua análise, cite:
Shobhit Gupta, Ja Stamatoyannopolous, Timothy Bailey e William Stafford Noble, “Quantificando a similaridade entre os motivos”, Genome Biology, 8 (2): R24, 2007. Texto completo
Se você usar runAme()
em sua análise, cite:
Robert McLeay e Timothy L. Bailey, “Análise de enriquecimento por motivos: uma estrutura unificada e avaliação de métodos”, BMC Bioinformatics, 11: 165, 2010, doi: 10.1186/1471-2105-11-165. texto completo
Se você usar runFimo()
em sua análise, cite:
Charles E. Grant, Timothy L. Bailey e William Stafford Noble, “FIMO: Examinando para ocorrências de um determinado motivo”, Bioinformatics, 27 (7): 1017-1018, 2011. Texto completo
O Meme Suite é gratuito para uso sem fins lucrativos, mas os usuários com fins lucrativos devem comprar uma licença. Veja a página de direitos autorais da Meme Suite para obter detalhes.