為什麼一個基因可以既是lncRNA又是protein_coding

2021-02-20 生信技能樹

有一些學生的Linux功底實在是太差了,所以我不得不重啟六年前的《生信工程師》面試題給他們練習,有一個題目就是探索gtf。有意思的是學生們給我反饋了有幾個基因居然既是lncRNA又是protein_coding。

首先去下載 gtf文件:

https://www.gencodegenes.org/human/https://www.gencodegenes.org/mouse/

這個  gencode.v36.annotation.gtf.gz  文件也就是不到50M,所以很快就下載完畢,然後使用下面的代碼格式化:

zcat gencode.v36.annotation.gtf.gz |  grep -v '_PAR_Y' |\
perl -alne  '{next unless  $F[1] eq "HAVANA";next unless $F[2] eq "gene";/gene_id \"(.*?)\.\d+\"; gene_type \"(.*?)\"; gene_name \"(.*?)\"/;print "$3\t$2\t$1\t$F[0]\t$F[3]\t$F[4]"}' \
> HAVANA_v36_human_gene_info

zcat gencode.v36.annotation.gtf.gz |  grep -v '_PAR_Y' |\
perl -alne  '{next unless  $F[1] ne "HAVANA";next unless $F[2] eq "gene";/gene_id \"(.*?)\.\d+\"; gene_type \"(.*?)\"; gene_name \"(.*?)\"/;print "$3\t$2\t$1\t$F[0]\t$F[3]\t$F[4]"}' \
> ENSEMBL_v36_human_gene_info

得到了兩個基因信息文件, 簡單的shell命令串起來統計一下,就知道 HAVANA和 ENSEMB 的區別了:

$ cut -f 2 ENSEMBL_v36_human_gene_info |sort |uniq -c|sort -nk1,1
      1 processed_pseudogene
      2 Mt_rRNA
      5 sRNA
      8 ribozyme
     18 pseudogene
     20 protein_coding
     22 Mt_tRNA
     47 rRNA
     49 scaRNA
    496 rRNA_pseudogene
    935 snoRNA
   1879 miRNA
   1899 snRNA
   2210 misc_RNA

上面的 ENSEMBL資料庫裡面都是一些比較少見的RNA基因,然後下面的 HAVANA資料庫來源的基因要稍微正常一點 :

$ cut -f 2 HAVANA_v36_human_gene_info  |sort |uniq -c|sort -nk1,1
      1 IG_pseudogene
      1 misc_RNA
      1 scRNA
      1 translated_unprocessed_pseudogene
      1 vault_RNA
      2 snRNA
      2 translated_processed_pseudogene
      3 IG_J_pseudogene
      4 TR_D_gene
      4 TR_J_pseudogene
      6 TR_C_gene
      8 snoRNA
      9 IG_C_pseudogene
     14 IG_C_gene
     18 IG_J_gene
     33 TR_V_pseudogene
     37 IG_D_gene
     48 polymorphic_pseudogene
     79 TR_J_gene
     98 unitary_pseudogene
    106 TR_V_gene
    138 transcribed_unitary_pseudogene
    145 IG_V_gene
    187 IG_V_pseudogene
    500 transcribed_processed_pseudogene
    938 transcribed_unprocessed_pseudogene
   1057 TEC
   2612 unprocessed_pseudogene
  10159 processed_pseudogene
  16889 lncRNA
  19924 protein_coding

有意思的是HAVANA資料庫來源的文件有53025,但是基因名字是有冗餘的,只有52999行 :

wc -l *info
   7591 ENSEMBL_v36_human_gene_info
  53025 HAVANA_v36_human_gene_info
  60616 total
ubuntu 15:04:41 ~
$ cut -f 1 HAVANA_v36_human_gene_info |sort -u|wc
  52999   52999  464077

那我就簡單探索一下是哪幾個基因居然有冗餘:


$ cut -f 1 HAVANA_v36_human_gene_info |sort |uniq -c |grep -v -w 1 
      2 ALG1L9P
      2 ANAPC1P2
      2 ARMCX5-GPRASP2
      2 BMS1P4
      2 CCDC39
      2 CLCA4-AS1
      2 DGCR5
      2 DNAJC9-AS1
      2 DUXAP8
      2 ELFN2
      2 GABARAPL3
      2 HERC2P7
      2 ITFG2-AS1
      2 LINC00484
      2 LINC00486
      2 MATR3
      2 PDE11A
      2 POLR2J3
      2 POLR2J4
      2 PRICKLE2-AS1
      2 RAET1E-AS1
      2 RGS5
      2 SFTA3
      2 SLFN12L
      2 SMIM40
      2 TMSB15B
ubuntu 15:05:06 ~
$ grep ELFN2 HAVANA_v36_human_gene_info
ELFN2 lncRNA ENSG00000243902 chr22 37339583 37427445
ELFN2 protein_coding ENSG00000166897 chr22 37367960 37427479

我隨手查了一下,這個ELFN2基因,居然真的既是lncRNA又是protein_coding,可是我再認真看的時候,發現它其實是有兩個完全不同的ensembl資料庫ID,也就是說,其實是ID衝突,並不是這個基因有兩副面孔哦!

檢查全部的 ID 衝突的地方

使用下面的命令的組合:

cut -f 1 HAVANA_v36_human_gene_info |sort |uniq -c |grep -v -w 1 |awk '{print $2}' > id
$ grep -w -f id HAVANA_v36_human_gene_info 
## 得到的結果如下:
CLCA4-AS1 lncRNA ENSG00000236915 chr1 86571181 86696311
CLCA4-AS1 lncRNA ENSG00000261737 chr1 86703502 86704462
RGS5 protein_coding ENSG00000143248 chr1 163111121 163321791
RGS5-AS1 lncRNA ENSG00000232892 chr1 163161675 163213023
RGS5 lncRNA ENSG00000232995 chr1 163244505 163321894
LINC00486 lncRNA ENSG00000230876 chr2 32825359 32926693
LINC00486 lncRNA ENSG00000236854 chr2 32927085 32946149
ANAPC1P2 lncRNA ENSG00000285793 chr2 87030675 87076429
ANAPC1P2 unprocessed_pseudogene ENSG00000231259 chr2 87031815 87052992
PDE11A protein_coding ENSG00000128655 chr2 177623244 178072777
PDE11A protein_coding ENSG00000284741 chr2 177628069 178108339
PDE11A-AS1 lncRNA ENSG00000229941 chr2 177653419 177723289
PRICKLE2-AS1 lncRNA ENSG00000241111 chr3 64067964 64103131
PRICKLE2-AS1 lncRNA ENSG00000241572 chr3 64099273 64101122
CCDC39 protein_coding ENSG00000284862 chr3 180602858 180684942
CCDC39 lncRNA ENSG00000145075 chr3 180614008 180870933
CCDC39-AS1 lncRNA ENSG00000243187 chr3 180680084 180700449
MATR3 protein_coding ENSG00000280987 chr5 139273752 139331671
MATR3 protein_coding ENSG00000015479 chr5 139293674 139331677
SMIM40 protein_coding ENSG00000285064 chr6 33321386 33329286
SMIM40 protein_coding ENSG00000286920 chr6 33323628 33329279
RAET1E-AS1 lncRNA ENSG00000268592 chr6 149863494 149919507
RAET1E-AS1 lncRNA ENSG00000223701 chr6 149884431 149919508
POLR2J4 lncRNA ENSG00000214783 chr7 43940895 44019175
POLR2J4 transcribed_unprocessed_pseudogene ENSG00000272655 chr7 44013562 44019170
POLR2J3 protein_coding ENSG00000168255 chr7 102537918 102572653
POLR2J3 protein_coding ENSG00000285437 chr7 102562133 102572583
LINC00484 lncRNA ENSG00000229694 chr9 91118592 91182762
LINC00484 lncRNA ENSG00000235641 chr9 91159573 91166272
DNAJC9-AS1 lncRNA ENSG00000236756 chr10 73247360 73276984
DNAJC9-AS1 lncRNA ENSG00000227540 chr10 73252791 73254349
BMS1P4-AGAP5 lncRNA ENSG00000242288 chr10 73674295 73730466
BMS1P4 lncRNA ENSG00000271816 chr10 73699151 73730487
BMS1P4 transcribed_unprocessed_pseudogene ENSG00000242338 chr10 73715843 73730469
ALG1L9P lncRNA ENSG00000248671 chr11 71673885 71818238
ALG1L9P transcribed_unprocessed_pseudogene ENSG00000254978 chr11 71800541 71804640
ITFG2-AS1 lncRNA ENSG00000256150 chr12 2695765 2812902
ITFG2-AS1 lncRNA ENSG00000258325 chr12 2796877 2812902
SFTA3 protein_coding ENSG00000257520 chr14 36473207 36521149
SFTA3 lncRNA ENSG00000229415 chr14 36473288 36513829
HERC2P7 unprocessed_pseudogene ENSG00000281909 chr15 22480439 22484840
HERC2P7 transcribed_unprocessed_pseudogene ENSG00000274471 chr15 23309607 23314566
GABARAPL3 TEC ENSG00000279980 chr15 90347587 90349437
GABARAPL3 processed_pseudogene ENSG00000238244 chr15 90348844 90349197
SLFN12L protein_coding ENSG00000205045 chr17 35464249 35487857
SLFN12L lncRNA ENSG00000286065 chr17 35474904 35537861
DUXAP8 lncRNA ENSG00000206195 chr22 15784959 15829984
DUXAP8 transcribed_processed_pseudogene ENSG00000271672 chr22 15826566 15827187
DGCR5 lncRNA ENSG00000273032 chr22 18970439 19031242
DGCR5 transcribed_unprocessed_pseudogene ENSG00000237517 chr22 18985836 18994501
ELFN2 lncRNA ENSG00000243902 chr22 37339583 37427445
ELFN2 protein_coding ENSG00000166897 chr22 37367960 37427479
ARMCX5-GPRASP2 lncRNA ENSG00000271147 chrX 102599512 102714671
ARMCX5-GPRASP2 protein_coding ENSG00000286237 chrX 102712495 102753530
TMSB15B-AS1 lncRNA ENSG00000231728 chrX 103845151 103919548
TMSB15B protein_coding ENSG00000158427 chrX 103918896 103966712
TMSB15B protein_coding ENSG00000269226 chrX 104063871 104076212

在人類五六萬基因裡面就這麼少量的幾十個基因的衝突,已經是非常的幸運了,因為人類基因被研究的非常多,如果是其它物種,會更可怕,到處是各種各樣的衝突

那麼到底哪個ID更佳呢?

這裡我選擇去genecards資料庫查詢:

https://www.genecards.org/cgi-bin/carddisp.pl?gene=ELFN2 (資料庫 :Ensembl: ENSG00000166897   )https://www.genecards.org/Search/Keyword?queryString=ENSG00000243902 (資料庫 :Lnc-ELFN2-2  )

可以看到,之所以這個ELFN2基因既是lncRNA又是protein_coding,其實是因為資料庫ID的匹配出了問題, 另外一個基因名字應該是:Lnc-ELFN2-2 ,而不是ELFN2基因,這個ELFN2基因仍然是一個正常的蛋白編碼基因?

一個生物學問題?

其實我都不知道這個問題算不算生物學問題,就是有沒有真的一個基因它就既是lncRNA又是protein_coding,但並不是這種資料庫ID匹配的失誤造成的,而是它基因真實的特性呢?

上面的代碼大量使用了Linux的shell命令技巧:

大家一定要把Linux的6個階段跨越過去 ,一般來說,每個階段都需要至少一天以上的學習:

第1階段:把linux系統玩得跟Windows或者MacOS那樣的桌面作業系統一樣順暢,主要目的就是去可視化,熟悉黑白命令行界面,可以僅僅以鍵盤交互模式完成常規文件夾及文件管理工作。第2階段:做到文本文件的表格化處理,類似於以鍵盤交互模式完成Excel表格的排序、計數、篩選、去冗餘,查找,切割,替換,合併,補齊,熟練掌握awk,sed,grep這文本處理的三駕馬車。第3階段:元字符,通配符及shell中的各種擴展,從此linux操作不再神秘!第4階段:高級目錄管理:軟硬連結,絕對路徑和相對路徑,環境變量。第5階段:任務提交及批處理,腳本編寫解放你的雙手。第6階段:軟體安裝及conda管理,讓linux系統實用性放飛自我。

相關焦點

  • lncRNA的一些基礎知識
    ID即可,一個有名字的基因。首先lncRNA是Non-coding RNAs的一種而且Non-coding RNAs的別名太多了,"non-protein-coding RNA", "npcRNA", "non-messenger RNA", "nmRNA", "functional RNA", "fRNA", "ncRNA"。
  • non-coding RNA databases匯總
    表1. ncRNA分類(J Integr Bioinform. 2019 Sep)miRBase:http://www.mirbase.orgmiRBase資料庫是一個提供包括已發表的miRNA序列數據、注釋、預測基因靶標等信息的全方位資料庫,是存儲miRNA信息最主要的公共資料庫之一。
  • 工具篇|coding and non-coding RNA,都到我碗裡來
    這一類同時具有蛋白編碼和非編碼功能的RNA可能是一類現階段更具探索價值的RNA群體,被稱為「雙功能RNA」或「cncRNA(coding and non-coding RNA)」。2019年5月「小張聊科研」就有關注過這類RNA的一個側面:越來越多的研究表明,一些非編碼RNA(LncRNA、circRNA和pri-miRNA)編碼的小肽或蛋白真實存在,並且通常不到100個胺基酸(LncRNA研究領域又一個研究方向,你知道嗎?)。可以說雙功能RNA的出現模糊了編碼與非編碼RNA的界限,促使研究者開始重新考慮其在功能和進化中的特殊角色及其潛在分子機制。
  • Nature:假基因PTENP1螯合MicroRNA 調控基因表達
    MicroRNA已知通過與一個目標信使RNA(mRNA)中的不完全互補序列相互作用來調控基因表達。但真實情況是否相反呢?即mRNA表達是否會影響微RNA的分布呢?一項新的研究表明,一個假基因(腫瘤抑制因子假基因PTENP1)的3'未翻譯區域(UTR)能與相關的蛋白編碼基因PTEN結合相同的微RNA。
  • 基因家族專題(3):基因家族成員的鑑定
    hmmer一般尋找基因家族,都可以通過保守結構域來預測,從而找到物種的某一基因家族,從而進行之後的分析。  1.4e-90  304.3   0.6   1   1   2.2e-92   2.5e-90  303.5   0.6     1   251   156   397   156   398 0.99 pep chromosome:TAIR10:1:22551271:22554684:1 gene:AT1G61180 transcript:AT1G61180.1 gene_biotype:protein_coding
  • 基因邊界處的負超螺旋調節基因拓撲結構
    等研究人員合作發現,基因邊界處的負超螺旋調節基因拓撲結構。 研究人員報導了釀酒酵母基因在細胞周期的G1和S期的拓撲結構。研究人員在基因邊界發現了傷口下的DNA,在編碼區域內發現了傷口上的DNA。這一情況不取決於Pol II或S期。Top2和Hmo1在基因邊界保留負超螺旋,而Top1在編碼區起作用。轉錄可在編碼區域內產生RNA–DNA雜交鏈,而與複製叉的方向無關。
  • Coding and noncoding drivers of mantle cell lymphoma ...
    This altered splicing of HNRNPH1 was associated with inferior outcomes in MCL and showed a significant increase in protein expression by immunohistochemistry.
  • 史上最全的lncRNA資料庫大全及心得分享
    網站:http://deepbase.sysu.edu.cn/chipbase/要調取lncRNA的表達數據,勸你選別的資料庫,因為這個網站極其坑爹,只能輸入GeneSymbol,並不是基因名,其實是lncRNA的轉錄名,一般是什麼「RP11-XXXX」。舉個例子:lncRNA2-1的基因名其實「LncRNA2.7」,轉錄名是「RP11-34P13.8」,這需要注意哦。 4.
  • Science:對人類血細胞中的所有蛋白編碼基因進行全基因組轉錄組分析
    人類蛋白質圖譜計劃(www.proteinatlas.org)是一個開放式資料庫,旨在通過整合各種組學技術(包括基於抗體的成像)來繪製所有人類蛋白的圖譜。在此之前,人類蛋白質圖譜包括來自外周血單核細胞的基因表達信息,但不包括來自許多其他血細胞亞群的基因表達信息。為了提高解析度,人們需要對血液中的細胞進行了深入表徵,以提供人血細胞中基因表達的詳細細節,並將它們與體內的其他組織相關聯在一起。
  • CNCI:利用序列特徵鑑定lncRNA
    CNCI工作流程CNCI採用滑動窗口法(Sliding Window)對每一個待鑑定的RNA掃描6次,每次產生一個閱讀框(ReandingFrame),用動態規划算法找出每個閱讀框中的MLCDS(最像CDS的subsequence),並打分(S-score),從6個MLCDS中選取得分最高的,即Best MLCDS。
  • 昆蟲基因組綜述
    舉例子:一般哺乳動物基因組大小為2.5–3.5 Gb,通常有很低的多態性(1 SNP per 1000 bp in humans—below the sequencing error rate),而且從單一個體血液中可以獲取足夠量的DNA。
  • 給基因取一個溫暖的名字,HGNC教你給基因取名
    例如:假定的雙順反子基因座可以使用不同的符號來表示不同的基因產物。通常情況下基因命名遵從如下規則:1. 每一個基因被命名為唯一符號,包括HGNC ID和描述性名稱。2. 基因符號只包含大寫拉丁字母和阿拉伯數字。3. 基因符號不應與常用的縮寫相同。4. 命名法不應包含任何物種名稱或使用「G」表示基因。
  • lncRNA單月24篇10+分文章,學會4種高分研究路線
    論科研人士如何「科學」地選擇另一半,毫無疑問,選擇一個能做實驗能發SCI的另一半是多麼地幸福,「你發一篇10分的SCI
  • 蛋白質組裝介導Xist定位和基因沉默
    Black等研究人員合作發現,蛋白質組裝介導Xist定位和基因沉默。相關論文於2020年9月9日在線發表在《自然》雜誌上。 據研究人員介紹,核區室在調節基因表達中具有多種作用,但仍不清楚驅動區室形成的分子力和成分。長非編碼RNA Xist通過以高濃度定位在空間上靠近其轉錄基因座的區域中,並結合各種蛋白質來實現X染色體失活(XCI),從而建立染色體內區室。
  • PCR ARRAY 應用指南——lncRNA篇
    案例一:一種新的熱休克蛋白90( Hsp90)抑制劑對腎上腺皮質癌腫瘤的抑制作用文章信息:A novel heat shock protein 90 inhibitor potently targets adrenocortical
  • 章魚的基因順序和地球上不少生物並不一樣
    根據英國《鏡報》(The Mirror)報導,科學家和生物學家最近研究發現,章魚的基因順序,和地球上不少生物並不一樣,它們擁有非常複雜的基因組合排序,甚至還比人類擁有更多的蛋白質解碼基因(protein-coding