The biobtreeR users guide

Introduction

The biobtreeR package provides an interface to biobtree tool which allows mapping the bioinformatics datasets via identifiers and special keywors with simple or advance chain query capability.

Getting started

library(biobtreeR)

# Create an folder and set as an output directory 
# It is used for database and configuration files

# temporary directory is used for demonstration purpose
bbUseOutDir(tempdir())

Build database

For mapping queries, biobtreeR use a database which stored in local storage. Database can be built 2 ways, first way is to retrieve pre built database. These database consist of commonly studied datasets and model organism and updated regularly following the major uniprot and ensembl data releases.

# Called once and saves the built in database to local disk

# Included datasets hgnc,hmdb,taxonomy,go,efo,eco,chebi,interpro
# Included uniprot proteins and ensembl genomes belongs to following organisms:
# homo_sapiens, danio_rerio(zebrafish), gallus_gallus(chicken), mus_musculus, Rattus norvegicus, saccharomyces_cerevisiae, 
# arabidopsis_thaliana, drosophila_melanogaster, caenorhabditis_elegans, Escherichia coli, Escherichia coli str. K-12 substr. MG1655, Escherichia coli K-12

# Requires ~ 6 GB free storage
bbBuiltInDB()

For the genomes which are not included in the pre built database can be built in local computer. All the ensembl and ensembl genomes organisms are supported. List of these genomes and their taxonomy identifiers can be seen from ensembl websites 1,2,3,4,5,6,

# multiple species genomes supported with comma seperated taxonomy identifiers
bbBuildCustomDB(taxonomyIDs = "1408103,206403")

Start web server

Once database is retrieved or built to local disk queries are performed via lightweight local server. Local server provide web interface for data expoloration in addition to the R functions for performing queries for R pipelines. Local server runs as a background process so both web interface and R functions can be used at the same time once it is started. While web server running web interface can be accessed via address http://localhost:8888/ui

 bbStart()

Search identifiers and keywords

Searching dataset identfiers and keywords such as gene name or accessions is performed with bbSearch function by passing comma seperated terms.

bbSearch("tpi1,vav_human,ENST00000297261")

If source parameter is passed search performed within the dataset.

bbSearch("tpi1,ENSG00000164690","ensembl")

Search results url is retrieved with

bbSearch("tpi1,vav_human,ENST00000297261",showURL =TRUE)

Chain mapping and filtering

Mapping and filtering queries are performed via bibobtree's mapping query syntax which allowed chain mapping and filtering capability from identifiers to target identifiers or attributes. Mapping query syntax consist of single or multiple mapping queries in the format map(dataset_id).filter(Boolean query expression).map(...).filter(...)... and allow performing chain mapping among datasets. For mapping queries bbMapping function is used, for instance in following example, maps protein to its go terms and in the second query mapping has been done with filter.

bbMapping("AT5G3_HUMAN",'map(go)',attrs = "type")
bbMapping("AT5G3_HUMAN",'map(go).filter(go.type=="biological_process")',attrs = "type")

In the example for the first parameter single protein accession has been used but similar with bbSearch functions multiple identifers or keywords can be used. In the last query type attribute was used to filter mapping only with biological process go terms. Dataset attributes are used in the filters starts with their dataset name as in the above example it starts with go.

In order use in filter expressions, each datasets attributes lists with bbListAttrsfunction via sample identifier. For instance following query shows gene ontology attributes.

bbListAttrs("go")
bbListAttrs("uniprot")

Example Use cases

In this section biobtreeR functionalities will be discussed in detail via gene and protein centric example use cases. For live demo of web interface including these use cases with additional chemistry centric use cases can be accessed via https://www.ebi.ac.uk/~tgur/biobtree/

Gene centric use cases

Ensembl, Ensembl Genomes and HGNC datasets are used for gene related data. One of the most common gene related dataset identfiers are ensembl,hgnc,transcript,exon. Let's start with listing their attiributes,

bbListAttrs("hgnc")
bbListAttrs("ensembl")
bbListAttrs("transcript")
bbListAttrs("exon")
bbListAttrs("cds")

Note that there are several other gene related datasets without attributes and can be used in mapping queries such as probesets, genebank and entrez etc. Full dataset list can be discovered with bbListDatasets. Now lets build example mapping queries,

Map gene names to Ensembl transcript identifiers

res<-bbMapping("ATP5MC3,TP53",'map(transcript)')
head(res)

Map gene names to exon identifiers and retrieve the region

res<-bbMapping("ATP5MC3,TP53",'map(transcript).map(exon)',attrs = "seq_region")
head(res)

Map human gene to its ortholog identifiers

res<-bbMapping("shh",'filter(ensembl.genome=="homo_sapiens").map(ortholog)')
head(res)

Map gene to its paralogs

bbMapping("fry,mog",'map(paralog)',showInputColumn = TRUE)

Map ensembl identifier or gene name to the entrez identifier

bbMapping("ENSG00000073910,shh" ,'map(entrez)')

Map refseq identifiers to hgnc identifiers

bbMapping("NM_005359,NM_000546",'map(hgnc)',attrs = "symbols")

Get all Ensembl human identifiers and gene names on chromosome Y with lncRNA type

res<-bbMapping("homo_sapiens",'map(ensembl).filter(ensembl.seq_region=="Y" && ensembl.biotype=="lncRNA")',attrs = "name")
head(res)

Get CDS from genes

bbMapping("tpi1,shh",'map(transcript).map(cds)')

Get all Ensembl human identifiers and gene names within or overlapping range

bbMapping("9606",'map(ensembl).filter((114129278>ensembl.start && 114129278<ensembl.end) || (114129328>ensembl.start && 114129328<ensembl.end))',attrs = "name")

In the above example as a first parameter taxonomy identifier is used instead of specifying as homo sapiens like in the previous example. Both of these usage are equivalent and produce same output as homo sapiens refer to taxonomy identifer 9606.

Built in function for genomic range queries

To simplfy previous use case query 3 builtin range query functions are provided. These functions are overlaps, within and covers. These functions can be used for ensembl, transcript, exon and cds entries which have start and end genome coordinates. For instance previous query can be written following way with overlaps function which list all the overlapping genes in human with given range.

bbMapping("9606",'map(ensembl).filter(ensembl.overlaps(114129278,114129328))',attrs = "name")

Map Affymetrix identifiers to Ensembl identifiers and gene names

bbMapping("202763_at,213596_at,209310_s_at",source ="affy_hg_u133_plus_2" ,'map(transcript).map(ensembl)',attrs = "name")

Note that all mappings can be done with opposite way, for instance from gene name to Affymetrix identifiers mapping is performed following way

bbMapping("CASP3,CASP4",'map(transcript).map(affy_hg_u133_plus_2)')

Retrieve all the human gene names which contains TTY

res<-bbMapping("homo sapiens",'map(ensembl).filter(ensembl.name.contains("TTY"))',attrs = "name")
head(res)

Protein centric use cases

Uniprot is used for protein related dataset such as protein identifiers, accession, sequence, features, variants, and mapping information to other datasets. Let's list some protein related datasets attributes and then execute example queries similary with gene centric examples,

bbListAttrs("uniprot")
bbListAttrs("ufeature")
bbListAttrs("pdb")
bbListAttrs("interpro")

Map gene names to reviewed uniprot identifiers

bbMapping("msh6,stk11,bmpr1a,smad4,brca2","map(uniprot)",source ="hgnc")

Filter proteins by sequence mass and retrieve protein sequences

bbMapping("clock_human,shh_human,aicda_human,at5g3_human,p53_human","filter(uniprot.sequence.mass > 45000)" ,attrs = "sequence$mass,sequence$seq")

Helix type feature locations of a protein

bbMapping("shh_human",'map(ufeature).filter(ufeature.type=="helix")' ,attrs = "location$begin,location$end")

Get all variation identifiers from a gene with given condition

bbMapping("tp53",'map(uniprot).map(ufeature).filter(ufeature.original=="I" && ufeature.variation=="S").map(variantid)',source = "hgnc")

Stop web server

When working with biobtreeR completed, the biobtreeR web server should stop.

bbStop()

Session Info

sessionInfo()


Try the biobtreeR package in your browser

Any scripts or data that you put into this service are public.

biobtreeR documentation built on Nov. 8, 2020, 5:19 p.m.