Genesets¶
Geneset is a special kind of Data resource. In addition to all of
the functionality of Data, it also has genes attribute and
support for set-like operations (intersection, union, etc…).
In the most common case, genesets exist somewhere on Resolwe server and user just fetches them:
# Get one geneset by slug
gs = res.geneset.get("my-slug")
# Get all human genesets in a given collection:
genesets = res.geneset.filter(collection=<my-collection>, species="Homo sapiens"):
What one gets is an object (or list of them) of type Geneset. This
object has all the attributes of Data plus some additional ones:
# Set of genes in the geneset:
gs.genes
# Source of genes, e.g. ENSEMBL, UCSC, NCBI...
gs.source
# Species of the genes in the geneset
gs.species
A common thing to do with Geneset objects is to perform set-like
operations on them to create new Geneset. This is easily done with
exactly the same syntax as for Python set objects:
gs1 = res.geneset.get("slug-1")
gs2 = res.geneset.get("slug-2")
# Union
gs3 = gs1 | gs2
# Intersection
gs3 = gs1 & gs2
# Difference
gs3 = gs1 - gs2
Note
Performing these operations is only possible on genesets that have equal values
of species and source attribute. Otherwise newly created sets would not
make sense and would be inconsistent.
So far, geneset gs3 only exists locally. One can easily save it to Resolwe server:
gs3.save()
# As with Data, it is a good practice to include it in a collection:
gs3.collection = <my_collection>
gs.save()
Alternative way of creating genesets is to use
Resolwe.geneset.create method. In such case, you need to enter the
genes, species and source information manually:
res.geneset.create(genes=["MYC", "FHT"], source="UCSC", species="Homo sapiens")