BioMart.jl

Make simple requests to Ensembl BioMart database.

Usage

using BioMart
import BioMart: Dataset, Filters, Attributes

BioMart.query(
    Dataset("hsapiens_gene_ensembl"),
    Filters(
        ensembl_gene_id = "ENSG00000146648", 
        chromosome_name = "7"
    ),
    Attributes(
        "external_gene_name",
        "strand"
    ),
)

1×2 DataFrames.DataFrame
│ Row │ Gene name │ Strand │
│     │ String    │ Int64  │
├─────┼───────────┼────────┤
│ 1   │ EGFR      │ 1      │

Index

Types and methods

BioMart.QueryMethod
Query(dataset::Dataset, args...)

Build a Query for the given Dataset and combination of Filters and Attributes. An Interval from GenomicFeatures can also be provided to filter by genomic position.

A Query build the request in XML format but does not execute it. To do so you can call BioMart.execute or directly call the Query object.

To build and execute a Query at once use BioMart.query.

Example:

q = BioMart.Query(
    BioMart.Dataset("maj_gene_ensembl"),
    Interval("1", 1, 200000),
    BioMart.Attribute("external_gene_name"),
    BioMart.Attributes("ensembl_gene_id", "ensembl_transcript_id", "strand"),
    BioMart.Filter(strand = "1")
)
q() #BioMart.execute(q)
BioMart.executeMethod
execute(q::Query)

Exectute a Query and returns a DataFrame with the results.

BioMart.queryMethod
query(args...)

Build a Query using args, exectute it immediately and returns the results.

BioMart.AttributeType
struct Attribute
    name::String
end

Specify an attribute to be returned by the query.

Example :

BioMart.Attribute("external_gene_name")
BioMart.AttributesMethod
Attributes(args...)

Specify a list of attributes to be returned by the query.

Example :

BioMart.Attributes(
    "external_gene_name",
    "strand"
)
BioMart.FilterType
struct Filter
    name::String
    value::String
end

Specify a filter to be applied to the query.

Examples :

BioMart.Filter(ensembl_gene_id = "ENSG00000146648")
BioMart.Filter("ensembl_gene_id", "ENSG00000146648")
BioMart.FiltersMethod
BioMart.Filters(;args...)

Specify a list of filters to be applied to the query.

Example :

BioMart.Filters(
    ensembl_gene_id = "ENSG00000146648", 
    chromosome_name = "7"
)
BioMart.datasetsMethod
BioMart.datasets(database::Database)
BioMart.datasets(database::String)

List the datasets available for a given database.

Examples :

BioMart.datasets("ENSEMBL_MART_ENSEMBL")

dbs = BioMart.databases()
BioMart.datasets(dbs[1])
BioMart.list_attributesMethod
BioMart.list_attributes(dataset::Dataset)
BioMart.list_attributes(dataset::String)

List the attributes available for a given dataset.

Examples :

BioMart.list_attributes("hsapiens_gene_ensembl")

Internals

Currently only calls to databases and datasets are cached in memory using Memoization.jl since memoization seems rather slow on queries.