Hi All,
Long time reader, first-time posting. I have been doing RNA-seq analysis for some time now on non-model species. My pipeline was:
- Trim and filter reads with bbduk and trimmomatic
- Align to genome with HISAT2
- Generate counts with featureCounts
- Export counts table and load into R for DEG analysis in EdgeR
I currently have gene count tables that have 1 row for each gene id as it appears in the GTF file (taken from NCBI). The problem is that for one species, Chaenocephalus aceratus, all the gene IDs are really locus tags, and products are listed as hypothetical proteins. I would like to be able to compare expression across all species for common genes. But to do this I need to convert these species-specific gene IDs to more common gene symbols.
I also have a mapping file which contains the protein accession IDs. But this species isn't found on common solutions like David, Entrez, Ensemble, etc.
I also have created a fasta file which contains the genome sequences for all the CDS regions in the GTF file, organized by gene id (locus tags). But I'm unsure how I might use these to identify the genes / create a mapping list for gene ontology analysis, etc.
Any help would be greatly appreciated! I'm posting from my phone, but can provide more specific code snippets / examples as needed.
Thanks!
Probably not what you want to hear but there are no shortcuts to proper annotation so this is not something you can breeze through.
What you may want to do is to complete your DE analysis with ID's you have. Then take the list of locus ID's that are of interest and then spend some time doing manual annotation (including blast, sequence alignments etc) to see if you can assign gene ID's.
Not trying to breeze through by any means; I've been working on it for quite a while already! But I appreciate the tips. I don't disagree about no shortcuts to proper annotation, but that's a bit outside my current wheelhouse.
Complicating the matter is that these genes have been well-annotated by other researchers, and I have their gene descriptions file as an excel file. The issue is that they used different gene ids than what's made available on NCBI. For instance, gene_id "KUCAC02_015422" (from NCBI .gtf) matches with some other gene_id from their annotation .gff3 file, likely gene_id "CAt00007278", which is PiggyBac transposable element-derived protein. When I blast just the protein accession id for this gene, I see the same thing. The NCBI .gtf file has an attribute "orig_transcript_id" with features like "gnl|WGS:JAMFTG|CAt00007278.1". The last string contains the mapping information to the other annotation file, so there is probably a way I can map the gene names from one file to the other.
What I'm confused by is why, if the annotation has already been completed, is this information not in the NCBI .gtf? Frustrating! And I received the annotation information from those researchers after I ran my pipeline with the file from NCBI, so all my gene names are of the format KUCAC02_015422, making it difficult to map. Worst case, I suppose I can re-run the pipeline on this species to get the other gene names, then complete the DEG analysis, then assign gene_ids from the excel file I was given with the annotation info.
Well there you have it. You can parse that information from the
orig_transcript_id
- you can pull that out of a gff3 withI'll give that a shot. Thanks!
Well, I've successfully mapped my NCBI gene_ids to the other file's gene_ids and annotation info, but I still am lacking common gene symbols to be able to compare expression with other species. I tried doing a search of the descriptions as done in another post (Conversion of full gene description to gene symbols), but I get dozens if not hundreds of hits for each description in many cases, often redundant but sometimes very different. And in other cases, no hits at all...
For example:
Returns
Clearly entpd2b is what I want for the first one, but as for the others, it's much less clear.
So I'm still left wondering how to take the information I have and simplify to gene symbols that can be more easily compared across species. I'm wondering if a blastx search of all the CDS sequence regions is inevitable to narrow down to a single symbol for each gene.
That said, I appreciate all the help so far!
You can query the protein name in UniProt:
https://rest.uniprot.org/uniprotkb/search?query=protein_name:"multiple epidermal growth factor-like domains protein"&fields=accession,gene_names,protein_name
this gives MEGF[...] as the result. Further down in the list you get an exact match on the fullName, associated with the gene name MEGF9.
Awesome! Thank you -- I really appreciate all the expertise on this forum