1. 程式人生 > >提取最長轉錄本的程式碼

提取最長轉錄本的程式碼

1.最長轉錄本:就是gene的id相同,但是序列的長度不一樣,應該挑選出序列最長作為後面的分析

下面就是一個轉錄本的id檔案,都是來自同一個gene,但是轉錄本的id和長度均不相同


分析:發現除了第4列表示的基因id相同以外,其他的列均不相同。

2.過濾最長轉錄本的程式設計思路:

     考慮到綿羊的轉錄本的id的複雜性,主要按一下幾個步驟來實現:

step1: 讀取轉錄本序列的fasta檔案,並統計序列的長度,生成一個ID檔案,該ID檔案比原來的轉錄本id多出一列,即變成13列,而第13列內容為序列的長度

>ENSOART00000000006 mt_genbank_import:known chromosome:Oar_v3.1:MT:2745:3699:1 gene:ENSOARG00000000006 gene_biotype:protein_coding transcript_biotype:protein_coding  955

step2: 根據上面的ID檔案的第4列資訊(gene:XXXX)和最後一列的長度資訊,過濾得到最長的轉錄本的ID_filter檔案

step3: 通過awk 將ID_filter的最後一列過濾掉,生成最終的ID_final因為如果不過濾掉就和最初輸入的轉錄本序列對應不上

step4:通過存一個雜湊,將ID_final中的id序列挑選出來

然後考慮用一個*.sh指令碼將其全部串起來


問題:

能夠將三個程式寫成一個程式,而實現上面4步的功能?

除了運用perl的語言存雜湊以外,還有其他的方法嗎?

後續會繼續更新