I have mouse gene data but I am unable to do conversion through this code:
# Load required libraries
library(biomaRt)
# Read the gene expression data
expression_data <- read.delim("combined_expression.tsv", header = TRUE, sep = "\t")
# Extract Ensembl IDs from the first column
ensembl_ids <- expression_data[, 1] # Assuming the first column contains Ensembl IDs
# Use biomaRt to map Ensembl IDs to gene names
mart <- useMart("ensembl", dataset = "mmusculus_gene_ensembl")
# Get gene names corresponding to Ensembl IDs
annotation <- getBM(attributes = c("ensembl_gene_id", "external_gene_name"),
filters = "ensembl_gene_id",
values = ensembl_ids,
mart = mart)
# Merge the annotation with the expression data
# Match annotation based on Ensembl IDs
annotated_data <- merge(annotation, expression_data, by.x = "ensembl_gene_id", by.y = colnames(expression_data)[1], all.y = TRUE)
# Save the updated expression data as a CSV file
write.csv(annotated_data, "updated_expression_data.csv", row.names = FALSE)
# Print a message indicating completion
print("Gene names successfully mapped and saved to updated_expression_data.csv.")
But its showing NA in external gene id column in updated csv file
I again tried with 10 enseml ids like:
test_ids <- head(ensembl_ids, 10)
test_annotation <- getBM(attributes = c("ensembl_gene_id", "external_gene_name"),
filters = "ensembl_gene_id",
values = test_ids,
mart = mart)
print(test_annotation)
But its showing:
ensembl_gene_id external_gene_name
<0 rows> (or 0-length row.names)
ensembl
biomart