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
BioMart.Attribute
BioMart.Attributes
BioMart.Filter
BioMart.Filters
BioMart.Query
BioMart.collect_elems
BioMart.databases
BioMart.datasets
BioMart.execute
BioMart.list_attributes
BioMart.query
Types and methods
BioMart.Query
— MethodQuery(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.execute
— Methodexecute(q::Query)
Exectute a Query
and returns a DataFrame
with the results.
BioMart.query
— Methodquery(args...)
Build a Query
using args
, exectute it immediately and returns the results.
BioMart.Attribute
— Typestruct Attribute
name::String
end
Specify an attribute to be returned by the query.
Example :
BioMart.Attribute("external_gene_name")
BioMart.Attributes
— MethodAttributes(args...)
Specify a list of attributes to be returned by the query.
Example :
BioMart.Attributes(
"external_gene_name",
"strand"
)
BioMart.Filter
— Typestruct 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.Filters
— MethodBioMart.Filters(;args...)
Specify a list of filters to be applied to the query.
Example :
BioMart.Filters(
ensembl_gene_id = "ENSG00000146648",
chromosome_name = "7"
)
BioMart.databases
— MethodBioMart.databases()
List the available databases.
BioMart.collect_elems
— Methodgo recursively over the XML and collect AttributeDescription
s
BioMart.datasets
— MethodBioMart.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_attributes
— MethodBioMart.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.