This tutorial requires RcisTarget >= 1.11
packageVersion("RcisTarget")
2. Load the RcisTarget databases
This analysis requires the region-based databases (for the
appropriate organism): - Region-based motif rankings - Motif-TF
annotations (same for region- & gene-based analysis) - Region
location (i.e. conversion from region ID to genomic location)
The databases can be downloaded from: https://resources.aertslab.org/cistarget/
Note: This example uses an old version of the database (mc9nr), we
recommend to use the latest version (v10_clus).
library(RcisTarget)
# Motif rankings
featherFilePath <- "~/databases/hg19-regions-9species.all_regions.mc9nr.feather"
## Motif - TF annotation:
data(motifAnnotations_hgnc_v9) # human TFs (for motif collection 9)
motifAnnotation <- motifAnnotations_hgnc_v9
# Regions location *
data(dbRegionsLoc_hg19)
dbRegionsLoc <- dbRegionsLoc_hg19
- Note: The region location is only needed for human and mouse
databases. For drosophila, the region ID contains the
location, and can be obtained with:
dbRegionsLoc <- getDbRegionsLoc(featherFilePath)
3. Run the analysis
The main difference with a gene-based analysis is that the regions
need to be converted to the database IDs first, and the parameter
aucMaxRank
should be adjusted:
- For Human:
aucMaxRank= 0.005
- For Mouse:
aucMaxRank= 0.005
- For Fly:
aucMaxRank= 0.01
# Convert regions
regionSets_db <- lapply(regionSets, function(x) convertToTargetRegions(queryRegions=x, targetRegions=dbRegionsLoc))
# Import rankings
allRegionsToImport <- unique(unlist(regionSets_db)); length(allRegionsToImport)
motifRankings <- importRankings(featherFilePath, columns=allRegionsToImport)
# Run RcisTarget
motifEnrichmentTable <- cisTarget(regionSets_db, motifRankings, aucMaxRank=0.005*getNumColsInDB(motifRankings))
# Show output:
showLogo(motifEnrichmentTable)
LS0tCnRpdGxlOiAiTW90aWYgZW5yaWNobWVudCBpbiBnZW5vbWljIHJlZ2lvbnMiCmFic3RyYWN0OiA+CiAgRXhhbXBsZSB1c2luZyAqKlJjaXNUYXJnZXQqKiB0byBhbmFseXplIGdlbm9taWMgcmVnaW9ucyAoaW5zdGVhZCBvZiBnZW5lcykuCnZpZ25ldHRlOiA+CiAgJVxWaWduZXR0ZUluZGV4RW50cnl7UmNpc1RhcmdldCAtIG9uIHJlZ2lvbnN9CiAgJVxWaWduZXR0ZUVuZ2luZXtrbml0cjo6cm1hcmtkb3dufQpvdXRwdXQ6IAogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMKICAgIG51bWJlcl9zZWN0aW9uczogZmFsc2UKICBwZGZfZG9jdW1lbnQ6CiAgICB0b2M6IHllcwogIGh0bWxfbm90ZWJvb2s6CiAgICB0b2M6IHllcwotLS0KYGBge3IgbGlicmFyaWVzLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpzdXBwcmVzc1BhY2thZ2VTdGFydHVwTWVzc2FnZXMoewpsaWJyYXJ5KFJjaXNUYXJnZXQpCn0pCmBgYAoKVGhpcyB0dXRvcmlhbCByZXF1aXJlcyBSY2lzVGFyZ2V0ID49IDEuMTEKYGBge3J9CnBhY2thZ2VWZXJzaW9uKCJSY2lzVGFyZ2V0IikKYGBgCgojIyMgMS4gUHJlcGFyZS9kb3dubG9hZCB0aGUgaW5wdXQgcmVnaW9ucwoKYGBge3J9CiMgZG93bmxvYWQuZmlsZSgiaHR0cHM6Ly9nYmlvbWVkLmt1bGV1dmVuLmJlL2FwcHMvbGNiL2ktY2lzVGFyZ2V0L2V4YW1wbGVzL2lucHV0X2ZpbGVzL2h1bWFuL3BlYWtzL0VuY29kZV9HQVRBMV9wZWFrcy5iZWQiLCAiRW5jb2RlX0dBVEExX3BlYWtzLmJlZCIpCnR4dEZpbGUgPC0gcGFzdGUoZmlsZS5wYXRoKHN5c3RlbS5maWxlKCdleGFtcGxlcycsIHBhY2thZ2U9J1JjaXNUYXJnZXQnKSksIkVuY29kZV9HQVRBMV9wZWFrcy5iZWQiLCBzZXA9Ii8iKQpyZWdpb25zTGlzdCA8LSBydHJhY2tsYXllcjo6aW1wb3J0LmJlZCh0eHRGaWxlKQpyZWdpb25TZXRzIDwtIGxpc3QoR0FUQTFfcGVha3M9cmVnaW9uc0xpc3QpCmBgYAoKIyMjIDIuIExvYWQgdGhlIFJjaXNUYXJnZXQgZGF0YWJhc2VzCgpUaGlzIGFuYWx5c2lzIHJlcXVpcmVzIHRoZSByZWdpb24tYmFzZWQgZGF0YWJhc2VzIChmb3IgdGhlIGFwcHJvcHJpYXRlIG9yZ2FuaXNtKToKLSBSZWdpb24tYmFzZWQgbW90aWYgcmFua2luZ3MKLSBNb3RpZi1URiBhbm5vdGF0aW9ucyAoc2FtZSBmb3IgcmVnaW9uLSAmIGdlbmUtYmFzZWQgYW5hbHlzaXMpCi0gUmVnaW9uIGxvY2F0aW9uIChpLmUuIGNvbnZlcnNpb24gZnJvbSByZWdpb24gSUQgdG8gZ2Vub21pYyBsb2NhdGlvbikKClRoZSBkYXRhYmFzZXMgY2FuIGJlIGRvd25sb2FkZWQgZnJvbTogaHR0cHM6Ly9yZXNvdXJjZXMuYWVydHNsYWIub3JnL2Npc3RhcmdldC8gCgpOb3RlOiBUaGlzIGV4YW1wbGUgdXNlcyBhbiBvbGQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgKG1jOW5yKSwgCndlIHJlY29tbWVuZCB0byB1c2UgdGhlIGxhdGVzdCB2ZXJzaW9uICh2MTBfY2x1cykuCgpgYGB7ciBldmFsPUZBTFNFfQpsaWJyYXJ5KFJjaXNUYXJnZXQpCiMgTW90aWYgcmFua2luZ3MKZmVhdGhlckZpbGVQYXRoIDwtICJ+L2RhdGFiYXNlcy9oZzE5LXJlZ2lvbnMtOXNwZWNpZXMuYWxsX3JlZ2lvbnMubWM5bnIuZmVhdGhlciIKCiMjIE1vdGlmIC0gVEYgYW5ub3RhdGlvbjoKZGF0YShtb3RpZkFubm90YXRpb25zX2hnbmNfdjkpICMgaHVtYW4gVEZzIChmb3IgbW90aWYgY29sbGVjdGlvbiA5KQptb3RpZkFubm90YXRpb24gPC0gbW90aWZBbm5vdGF0aW9uc19oZ25jX3Y5CgojIFJlZ2lvbnMgbG9jYXRpb24gKgpkYXRhKGRiUmVnaW9uc0xvY19oZzE5KQpkYlJlZ2lvbnNMb2MgPC0gZGJSZWdpb25zTG9jX2hnMTkKYGBgCgoqIE5vdGU6IFRoZSByZWdpb24gbG9jYXRpb24gaXMgb25seSBuZWVkZWQgZm9yIGh1bWFuIGFuZCBtb3VzZSBkYXRhYmFzZXMuCkZvciAqKmRyb3NvcGhpbGEqKiwgdGhlIHJlZ2lvbiBJRCBjb250YWlucyB0aGUgbG9jYXRpb24sIGFuZCBjYW4gYmUgb2J0YWluZWQgd2l0aDoKYGBge3IgZXZhbD1GQUxTRX0KZGJSZWdpb25zTG9jIDwtIGdldERiUmVnaW9uc0xvYyhmZWF0aGVyRmlsZVBhdGgpCmBgYCAKCiMjIyAzLiBSdW4gdGhlIGFuYWx5c2lzCgpUaGUgbWFpbiBkaWZmZXJlbmNlIHdpdGggYSBnZW5lLWJhc2VkIGFuYWx5c2lzIGlzIHRoYXQgdGhlIHJlZ2lvbnMgbmVlZCB0byBiZSBjb252ZXJ0ZWQgdG8gdGhlIGRhdGFiYXNlIElEcyBmaXJzdCwgYW5kIHRoZSBwYXJhbWV0ZXIgYGF1Y01heFJhbmtgIHNob3VsZCBiZSBhZGp1c3RlZDoKCiogRm9yIEh1bWFuOiBgYXVjTWF4UmFuaz0gMC4wMDVgCiogRm9yIE1vdXNlOiBgYXVjTWF4UmFuaz0gMC4wMDVgIAoqIEZvciBGbHk6IGBhdWNNYXhSYW5rPSAwLjAxYAoKYGBge3IgZXZhbD1GQUxTRX0KIyBDb252ZXJ0IHJlZ2lvbnMKcmVnaW9uU2V0c19kYiA8LSBsYXBwbHkocmVnaW9uU2V0cywgZnVuY3Rpb24oeCkgY29udmVydFRvVGFyZ2V0UmVnaW9ucyhxdWVyeVJlZ2lvbnM9eCwgdGFyZ2V0UmVnaW9ucz1kYlJlZ2lvbnNMb2MpKQoKIyBJbXBvcnQgcmFua2luZ3MKYWxsUmVnaW9uc1RvSW1wb3J0IDwtIHVuaXF1ZSh1bmxpc3QocmVnaW9uU2V0c19kYikpOyBsZW5ndGgoYWxsUmVnaW9uc1RvSW1wb3J0KQptb3RpZlJhbmtpbmdzIDwtIGltcG9ydFJhbmtpbmdzKGZlYXRoZXJGaWxlUGF0aCwgY29sdW1ucz1hbGxSZWdpb25zVG9JbXBvcnQpCgojIFJ1biBSY2lzVGFyZ2V0Cm1vdGlmRW5yaWNobWVudFRhYmxlIDwtIGNpc1RhcmdldChyZWdpb25TZXRzX2RiLCBtb3RpZlJhbmtpbmdzLCBhdWNNYXhSYW5rPTAuMDA1KmdldE51bUNvbHNJbkRCKG1vdGlmUmFua2luZ3MpKQoKIyBTaG93IG91dHB1dDoKc2hvd0xvZ28obW90aWZFbnJpY2htZW50VGFibGUpCmBgYAoK