Hot answers tagged

24

To add to rightskewed answer: While it is true that: Gencode is an additive set of annotation (the manual one done by Havana and an automated one done by Ensembl), the annotation (GTF) files are quite similar for a few exceptions involving the X chromosome and Y par and additional remarks in the Gencode file (see more at FAQ - Gencode). What are the actual ...


13

There's rarely a good reason to use a hard-masked genome (sometimes for blast, but that's it). For that reason, we use soft-masked genomes, which only have the benefit of showing roughly where repeats are (we never make use of this for our *-seq experiments, but it's there in case we ever want to). For primary vs. toplevel, very few aligners can properly ...


12

Ensembl vs Gencode https://www.gencodegenes.org/faq.html The GENCODE annotation is made by merging the Havana manual gene annotation and the Ensembl automated gene annotation. [...] In practical terms, the GENCODE annotation is identical to the Ensembl annotation. Further, for the GTF file differences: The only exception is that the genes which are ...


11

You can use the standard annotation package for humans (you can also use biomaRt, but it can be more confusing, see below): library("org.Hs.eg.db") # remember to install it if you don't have it already symbols <- mapIds(org.Hs.eg.db, keys = ensemblsIDS, keytype = "ENSEMBL", column="SYMBOL") The ensemblsIDS should be a ...


9

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 ...


8

You need to specify the number without the version. Instead of "ENSMUST00000178862.1" just "ENSMUST00000178862": You can do this with one more line: g <- gsub("\\..*", "", rownames(txi.kallisto$counts)) (hgnc_symbols <- getBM(attributes = c("hgnc_symbol", "chromosome_name", "ensembl_transcript_id"), filters = "ensembl_transcript_id", values = g, mart ...


8

Generally, you should use the soft-masked or unmasked primary assembly. Cross-species whole-genome aligners, especially older ones, do need to know soft-masked regions; otherwise they can be impractically slow for mammalian genomes. Modern read aligners are designed to work with repeats efficiently and therefore they don't need to see the soft mask. For ...


7

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: library(hgu133plus2.db) library(hgu95av2.db) query_probe <- "210519_s_at" hgu133_ensembl &...


6

To add practical advice to what others have said: In a practical sense, I think the biggest difference between RefSeq and Ensembl/GENCODE is in the sensitivity/specificity trade off. Ensembl aims more towards the inclusive end, including a far larger number of transcript variants, many of which are only weakly supported. RefSeq trades some of this ...


6

It looks like you were using an old annotation. The problematic IDs you posted existed in the GRCh37 annotations, but don't in the most recent GRCh38 annotation. For that reason they were excluded. The IDs that have - as symbols don't have associated symbols, but are present in the database. To use an archived version in biomart: mart = useDataset("...


5

Now there's another option, the ensembl_rest module, a thin wrapper around the Ensembl REST API to simplify its usage and make it more pythonic. You can find the documentation here. To clarify things, I'm the creator and maintainer, but still think it's a legitimate alternative.


5

You can use the mirroring function of wget: wget -m ftp://ftp.ensembl.org/pub/release-91/embl/bos_taurus/


5

I tried several R packages (mygene, org.Hs.eg.db, biomaRt, EnsDb.Hsapiens.v79) to convert Ensembl.gene to gene.symbol, and found that the EnsDb.Hsapiens.v79 package / gene database provides the best conversion quality (in terms of being able to convert most of Ensembl.gene to gene.symbol). # Install the package if you have not installed by running this ...


5

At Ensembl, we categorise synonyms as anything that a gene might also be known as. This includes older names for them, since those names will be in the literature, including where a gene has been split in two.


4

I couldn't find a package neither in Github nor in Bioconductor. Neither could I find any paper about a package linking to bioDBnet. So I don't believe there is any (R) package at the moment which links to biodbnet in order to retrieve the IDS. However it has a couple of APIs so you could build one or use them to retrieve the information you want.


4

The correct API for Ensembl is the Ensembl REST API which is updated and maintained by Ensembl, and language agnostic.


4

Which tools/aligners take into account softmasked repeat regions? If you're doing whole genome - whole genome alignment (rather than read alignment) then using the softmasked genome is definitely best. Tools suitable for such large scale alignments task tend to skip marked repeats completely in their initial steps to prevent the build up of bogus short ...


4

The three # are used for splitting group of features that belong together, e.g. a transcript and it's exons. Sometimes you see with a blank line instead of the #. To grep just the header, which has 1 or 2 # from the line start on, you can use extended regular expression: $ grep -E "^#{1,2}[^#]" Caenorhabditis_elegans.WBcel235.95.gff3 Which means: "grep ...


4

There are some good answers so far, but I don't think any of them fully communicate the significance of the ### directive. The GFF3 specification states: This directive (three # signs in a row) indicates that all forward references to feature IDs that have been seen to this point have been resolved. After seeing this directive, a program that is ...


4

Since they share the ensembl_ID column, you can merge them, then assign the symbol column to the rownames, then delete the symbol column. something like: merged <- merge(mat1, mat2, by = 0) rownames(merge) <- merged[,'symbol'] merged[,symbol] <- NULL https://stat.ethz.ch/R-manual/R-devel/library/base/html/merge.html


4

While I haven't found a way to limit the results to the canonical transcript only, you can get a list of genes, transcripts and their CDS lengths using Ensemble's BioMart. I have already set it up for you, you can see the results, and modify them, here (click on the "Results" link if you don't see them). Essentially, you just need to go to BioMart, and ...


4

The lookup/id endpoint will get it for you. Of you can just look up the three letter species code, in this case MOD, on the list in the documentation.


4

The RefSeq match option in BioMart is from the Matched Annotation from NCBI and EBI (MANE) collaboration between RefSeq and Ensembl. It has only been calculated for the up-to-date gene annotation on GRCh38 so cannot be obtained on GRCh37. You can get mapping from Ensembl to RefSeq transcripts through BioMart as RefSeq mRNA ID (refseq_mrna in R) but this is ...


4

Those IDs are elderly! Ensembl 54 was 2009! I would recommend using BioMart combined with the ID history converter. The ID history converter will convert old IDs to new, and BioMart will convert ENSPs to ENSGs. You can either use the ID history converter with the ENSPs first, then the current BioMart to get the ENSGs. Or you can use Ensembl 54 BioMart to ...


4

These are genes on the patches and haplotypes. Patches are repairs in the genome, where they have discovered the sequence or assembly is incorrect, so there is an alternative sequence that is created on top of the reference assembly (the reason they don't change the reference is that then there's a new reference and this causes a massive headache for ...


3

You could also do this in R with the GenomicFeatures library. library(GenomicFeatures) ## make TxDb from GTF file txdb <- makeTxDbFromGFF('Homo_sapiens.GRCh38.93.gtf') ## get gene information all.genes <- genes(txdb) ## import your list of gene names my.genes <- c('ENSG00000141510','ENSG00000184571','ENSG00000011007') ## get the length of each ...


3

If you really just want the start and end positions of all genes in a list of genes from Homo_sapiens.GRCh38.93.gtf.gz, you could do this in awk. For example, if your list of genes is: $ cat genes ENSG00000131482 ENSG00000223972 ENSG00000228794 ENSG00000187961 You can do: $ awk '{ if(NR==FNR){ wantedGenes[$1]++ } ...


3

You can use bedtools intersect and cut the results: $ cat file1.bed chr1 12048 177033 DUP FALSE -1 22 24 chr1 12048 89237 DUP FALSE 12 10 -1 chr1 2985712 3355300 DEL TRUE 2 2 2 $ cat file2.gtf chr1 22013 41670 gene_id "ENSG00000160075.10" chr1 22013 41670 gene_id "ENSG00000160075.10" chr1 2985732 3355185 ...


3

As others have stated, those are just there to separate the entries for easier parsing. They enable you to do nifty tricks like: $ awk -v RF='###' '/Y74C9A.3/' Caenorhabditis_elegans.WBcel235.95.gff3 I WormBase mRNA 4116 10230 . - . ID=transcript:Y74C9A.3;Parent=gene:WBGene00022277;Name=Y74C9A.3;biotype=protein_coding;transcript_id=...


3

Download the ones without a chromosome number in the filename. Those files are the whole genome.


Only top voted, non community-wiki answers of a minimum length are eligible