I am interested in identifying mappings between different types of Affymetrix arrays. I am aware that mappings between gene and probeset can be extracted using Ensembl's Biomart database.

Ensembe gene id ENSG00000181019 maps to 
1. AFFY HG-U133_Plus_2's 210519_s_at
2. AFFY HuGene-1_0-st-v1's 8002303

Is there any way to extract mappings of probeset ids between two arrays(eg: HG-U133_Plus_2, HuGene-1_0-st-v1)?

eg: 210519_s_at and 8002303
  • $\begingroup$ Is your question how to find overlapping probe sets between arrays? Or how to identify probe sets in general? It is not clear. $\endgroup$
    – woemler
    May 18, 2017 at 13:29
  • $\begingroup$ I have added an example. Does this make sense now? $\endgroup$
    – Prradep
    May 18, 2017 at 14:08
  • $\begingroup$ So basically you can retrieve two gene-id mappings from Ensembl's Biomart. Correct? What is preventing you from joining these two tables based on the Ensembl gene id? You can use merge function in R or JOIN statement in SQL. $\endgroup$ May 18, 2017 at 14:42
  • $\begingroup$ @IakovDavydov or a Unix join would work too $\endgroup$ May 18, 2017 at 16:22
  • 1
    $\begingroup$ You should not necessarily expect to see one-to-one mappings, see my answer below. $\endgroup$
    – neilfws
    May 19, 2017 at 1:19

3 Answers 3


If your question is: can probeset IDs from different platforms be mapped to one another in a similar way as mapping probesets to genes, then the answer is: Yes. BioMart allows you to map almost anything that has an ID to anything else that has an ID.

You can use BioMart either via the web interface or programatically. A brief guide to using the web interface, for mapping HG U133 Plus 2 to HuGene 1.0:

  1. Go to the start page
  2. Select H. sapiens Ensembl genes for your database; Human genes (GRCh38.p10) for your dataset
  3. Click Filters in the left-hand column
  4. Expand "REGION", scroll down to GENE and select "Input microarray probes/probesets ID list [Max 500 advised]"
  5. Select AFFY HG U133 PLUS 2 probe ID(s) and either copy/paste or upload a list, one per line
  6. Click Attributes in the left-hand column
  7. Scroll through, uncheck what you don't want to see and choose what you do, for example Gene Stable ID, AFFY HuGene 1 0 st v1 probe and AFFY HG U133 Plus 2 probe
  8. Finally click "Results" in the menu at the top of the left-hand column

And you should see a result like this (you'll need to click the "Results" button).

You should not expect that there be a one-to-one mapping, for two reasons:

  • Genes have multiple transcripts and probesets are mapped to each transcript
  • Some transcripts have more than one probeset: in this case, the HuGene IDs 8002301 and 8002303 map to transcripts for this gene

Finally: here's a programmatic example using R/BioMart:

mart.hs <- useMart("ensembl", "hsapiens_gene_ensembl")
results <- getBM(attributes = c("ensembl_gene_id", "affy_hugene_1_0_st_v1", "affy_hg_u133_plus_2"),
                 filters = "affy_hg_u133_plus_2",
                 values = c("210519_s_at"),
                 mart = mart.hs)

  ensembl_gene_id affy_hugene_1_0_st_v1 affy_hg_u133_plus_2
1 ENSG00000181019               8002301         210519_s_at
2 ENSG00000181019               8002303         210519_s_at

Instead of biomaRt, it is also possible to use the mapping databases built into Bioconductor itself, and map from probe to gene, and then from gene to probe in the second. Some R code to convert between hgu133 and hgu95 using the same probe ID provided in another:


query_probe <- "210519_s_at"

hgu133_ensembl <- select(hgu133plus2.db, keys = query_probe, columns = "ENSEMBL")

ensembl_hgu95 <- select(hgu95av2.db, keys = hgu133_ensembl$ENSEMBL, keytype = "ENSEMBL", columns = "PROBEID")

dplyr::inner_join(hgu133_ensembl, ensembl_hgu95, by = "ENSEMBL", suffix = c(".133", ".95"))

Other answers explain why there might not be one to one mapping between the probes.

The AbsID database does conversion based on mapping the probe sequences to a genome build, and then determines mappings based on overlapping genome alignment coordinates. This is really useful if you want to be sure that two probes are actually likely measuring the same transcript.

It is dependent on both probes aligning to the genome, however.

Disclaimer: I worked in the group that provides the AbsID mapping tool.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.