提取最長轉錄本的程式碼
阿新 • • 發佈:2019-01-26
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的語言存雜湊以外,還有其他的方法嗎?
後續會繼續更新