I am trying to get some data on gene position in the human genome and I need some help

What I tried

I downloaded ftp://ftp.sanger.ac.uk/pub/gencode/Gencode_human/release_18/gencode.v18.annotation.gtf.gz

I am only interested in gene position, so I kept only the first columns.

awk -F "." '{print $1}' /Users/remi/Downloads/gencode.v18.annotation.gtf  >> HumanGenomePositions.txt

This operation will take a few minutes. The file contains information on exon position and transcript. I subsetted the table to get only the lines that concern genes

sed -i.bak '/gene/!d' HumanGenomePositions.txt 

I am left with 57445 entries. 9872 are annotated by ENSEMBL and 47573 are annotated by HAVANA. Note that there is partial overlap between the two. According to Church et al. 2009, there are 19042 annotated genes in the human genome (reported from bionumbers). There is obviously something I am getting wrong!


Can you help me to get data on gene positions in humans in a handy format (see below)?

start   end
15648   65487
129841  124984
  • $\begingroup$ I used the <homework> tag even though this is not a homework. The reason is that I think the question is introductory enough to be asked in an introductory course to bioinformatics. $\endgroup$
    – Remi.b
    Apr 4, 2016 at 0:18
  • $\begingroup$ Why did you pick GTF vs. GFF3? I only ask because I have way more experience using GFF3; also, in GFF3 column 2 tells you the type of sequence feature that is being annotated in a given row, so by using cut -f 2 | sort | uniq -c you can get a list of all the "known" features in that file, as well as a count of the number of them. A potentially trivial explanation for the discrepancy you found is that Church at al., are only counting the protein coding genes, while your regex search will match tRNA genes, rRNA genes, miRNA genes, snoRNA genes, and pseudogenes, wouldn't it? $\endgroup$
    – mdperry
    Apr 4, 2016 at 1:02
  • $\begingroup$ One extremely useful tool (in my hands) is the intermine family of data warehouses. I have primarily used modMine and FlyMine, but there is also a HumanMine. If you had a list of identifiers for those human protein coding genes you could upload that list into HumanMine and then use their query tool to generate a table of the genomic coordinates for those human genes. $\endgroup$
    – mdperry
    Apr 4, 2016 at 1:04
  • $\begingroup$ I used GTF completely randomly. I don't know any of these format and I never heard of "interMine family of data warehouse" before either. Oh do you think we might have about 30,000 non-protein-coding genes? It seems huge to me but that would be a good explanation. $\endgroup$
    – Remi.b
    Apr 4, 2016 at 2:02

1 Answer 1


I recommend to filter using transcript_type value from description column. You need only proteine_coding genes. Now you have extra ~10K unprocessed pseudogenes, ~5K antisense genes, ~4K miRNA, ~7K lincRNA and more than thirty other categories of unprocessed pseudogenic stuff.

As far as I know current release for GRCh37 is 19th version, not 18.

  • $\begingroup$ Oh I missed this column. So is there really so many genes that do not code for proteins? I would have never guessed right. I'll just subset what I need based on this column. Thank you. $\endgroup$
    – Remi.b
    Apr 4, 2016 at 20:43
  • $\begingroup$ I took the 18th version completely randomly. I felt a little lost and just picked some random data to start doing things with it. $\endgroup$
    – Remi.b
    Apr 4, 2016 at 20:44
  • $\begingroup$ Side Question: Looking at ftp://ftp.sanger.ac.uk/pub/gencode/Gencode_human/ I can see 24 releases. Is the 19th really the newest one as you claim? $\endgroup$
    – Remi.b
    Apr 4, 2016 at 20:48
  • $\begingroup$ @Remi.b I suggested using the 19th release because I supposed that you use the 18th release and it is the GRCh37 assembly. As you do not have any specific needs, I think it is fine to use the latest stable release. $\endgroup$ Apr 4, 2016 at 22:07
  • $\begingroup$ Gencode is 24th version afaik. $\endgroup$
    Apr 5, 2016 at 5:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .