Genbank的gbff格式转gff3格式(补充)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Genbank的gbff格式转gff3格式(补充)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                前言
之前寫過的Genbank的gbff格式轉gff3格式的運行環(huán)境對于很多非計算機行業(yè)的同學不是很友好,在幫助一位網友處理格式轉換之后,整理了下面這個python轉換的方式(注:本人的生物信息等知識還停留在高中水平,只是曾經幫助過同學處理過一個gbff格式轉gff3的問題,所以紕漏之處,希望各位大神指出)
python代碼
# 導入依賴,如提示沒有名為"xxx"的模塊,pip安裝即可,推薦使用python3.6以上 from BCBio import GFF # 如果提示"ModuleNotFoundError: No module named 'BCBio'",安裝一下bcbio-gff: pip3 install bcbio-gff==0.6.6 from Bio import SeqIO # 如果提示"ModuleNotFoundError: No module named 'Bio'", 安裝一下bio: pip3 install bio==0.4.1 import gzipdef gbff2gff(input_filename, output_filename):"""gbff格式轉gff:param input_filename: 輸入文件名, 如 GCA_085.1_ASM148v1_genomic.gbff:param output_filename: 輸出文件名, 如 GCA_085.1_ASM148v1_genomic.gff:return:"""# 輸入文件名,如果不在當前目錄下,請使用絕對路徑input_filename = input_filename# 輸出文件名output_filename = output_filenametry:input_handle = open(input_filename, "r")output_handle = open(output_filename, "w")except FileNotFoundError as e:print(f"錯誤:{str(e)}")print(f"文件[{input_filename}]不存在")returntry:# 轉換GFF.write(SeqIO.parse(input_handle, "genbank"), output_handle)except Exception as e:print("轉換出錯:", str(e))# 關閉文件input_handle.close()output_handle.close()def uncompress_gz(src_filename):print("開始解壓...")try:dest_name = src_filename.replace(".gz", "")gz_file = gzip.GzipFile(src_filename)with open(dest_name, "wb+") as f:f.write(gz_file.read())gz_file.close()print("解壓完成!")return dest_nameexcept Exception as e:print(f"解壓出錯:{str(e)}")if __name__ == '__main__':print("****重要***\n請將gbff文件放在和當前程序同一個文件夾下!!!")_input_filename = input("請輸入要轉換的文件名(按Enter完成輸入):")_output_filename = input("請輸入轉換后的文件名,默認和輸入文件名一致")if not _output_filename:print("沒有指定輸出名稱,默認將輸入文件名的gbff改為gff")_output_filename = _input_filename.replace("gbff", "gff")confirm = input(f"請確認輸入的文件名是否正確:\n輸入:{_input_filename};\n輸出:{_output_filename}\n確認請按Enter,重新輸入請按Ctrl+C重新運行程序\n")if not _input_filename.endswith(".gbff"):if _input_filename.endswith(".gz"):uncompress_flag = input("輸入的貌似是個gbff壓縮后的gz文件,是否解壓?輸入 yes 進行解壓:")if uncompress_flag == "yes":uncompress_gz(_input_filename)_input_filename = _input_filename.split('.gz')[0]else:exit()else:print(f"輸入的文件名不正確:{_input_filename}")else:print(f"輸入的文件名不正確:{_input_filename}")print("開始轉換...")gbff2gff(_input_filename, _output_filename)print("轉換完成!")使用方法
復制上面的代碼,新建一個文件,粘貼進去,然后把這個文件保存為gbff2gff3.py,確定后綴名為.py,電腦上安裝python3.6的解釋器,這個安裝可以百度到,安裝好之后,Win+R打開運行,輸入cmd進入到黑窗口,在里面輸入python gbff2gff3.py按回車,根據頁面上的提示進行。
說明
執(zhí)行完之后,會將一個幾百兆的gbff文件轉成一個幾兆的gff3文件,由于本人不是很懂,也不確定是否絕對準確。
如果遇到問題請將截圖貼到評論區(qū)或者私信!
總結
以上是生活随笔為你收集整理的Genbank的gbff格式转gff3格式(补充)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: TL5000系列可调谐激光器
- 下一篇: 服务器系统安装——以Dell R710为
