本文目錄一覽:
- 1、跟着Nature ecology and evolution學python:vcf文件轉換成fasta文件
- 2、基於vcf文件構建進化樹
- 3、python如何讀取xml中的list表,並將其轉換成如下VCF格式輸出?請給出具體程序,編譯成功給分
- 4、生物數據格式 – vcf/bcf
- 5、將多個樣本的vcf文件轉化為Phylip輸入格式的python腳本
- 6、怎麼讀取千人基因組中的vcf數據格式文件
跟着Nature ecology and evolution學python:vcf文件轉換成fasta文件
本地pdf文件
A polar bear paleogenome reveals extensive ancient gene flow from polar bears into brown bears.pdf
這個腳本用到了 Pool python多線程處理,主要學習這個內容
如果是在windows系統下運行腳本
abc是一個文件夾,需要在當前目錄下存在
這裡會遇到報錯 NameError: name ‘dict_run’ is not defined 這裡的dict_run是使用global定義到函數里的一個變量,linux系統下就沒有這個問題,windows學習通下的python是3.8.3,linux系統下的python版本是3.9.1
使用腳本的時候linux系統下不知道為啥用tab鍵不能補全文件名,暫時不知道是什麼原因
腳本里定義了每種基因型對應的鹼基序列
這裡非純合的位點定義為M R W這些是為啥,暫時想不明白
這個腳本有局限是,他定義了vcf文件的基因型
如果vcf文件的基因型不是這些的話就會報錯keyError
這裡Pool這個函數好像是必須搭配 if __name__ == ‘__main__’: 這個語句
參考鏈接
小明的數據分析筆記本
基於vcf文件構建進化樹
===========第一種方法利用VCF2Dis生成距離矩陣===================
VCF2Dis -i all.chromosome.SNP.changID.vcf -o p_dis.mat //我大概600多份樣品,也運行了3天左右
然後利用fastme轉化成為樹的格式(nwk)(鏈接:)
轉化為newick格式
我個人喜歡iTol()來調整樣式
==================第二種方法 轉化vcf文件為phylip 格式==========
python vcf2phylip.py –input myfile.vcf –fasta –nexus
然後,利用phylip構建進化樹
phylip 在命令行中可以根據提示輸入參數,也可以用含有參數的文本導入參數。
利用 dnadist:計算距離矩陣,最耗時,幾千個SNP可能需要1天甚至數天。 參數文本dnadist.par //有點耗時間
$ cat dnadist.par
myfile.vcf.phy
2 #將軟件運行情況顯示出來
Y #確認以上設定的參數
$ dnadist dnadist.par
$ mv outfile dnadist.out
生成距離矩陣,然後利用neighbor: Neighbor-Joining 構建進化樹
我最好還是在iTOL裡面進行樣式調整
python如何讀取xml中的list表,並將其轉換成如下VCF格式輸出?請給出具體程序,編譯成功給分
1.可以使用ElementTree模塊
from xml.etree.ElementTree import ElementTree
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import SubElement
from xml.etree.ElementTree import dump
from xml.etree.ElementTree import Comment
from xml.etree.ElementTree import tostring
2.可以使用BeautifulSoup模塊
生物數據格式 – vcf/bcf
VCF是Variant Call Format的簡稱,該格式文件是專門用於存儲基因序列突變信息的一種文本文件,包括單鹼基突變SNV、單核苷酸多態性SNP、InDel、拷貝數變異CNV和結構變異SV等,文件可以採取editplus或pilotedit(建議)打開查看,其二進制存儲格式是BCF。vcf文件後續可以用於多種分析,包括但不限於:進化樹分析、群體結構分析、PCA分析、GWAS關聯分析等。vcf文件格式如下:
VCF文件開頭是整體的注釋信息,以##作為起始,其後接FILTER、INFO、FORMAT等,其中##FILTER開頭的行是vcf主體record中第七列縮寫詞的說明、##INFO開頭的行注釋vcf主體record中第8列的縮寫字母、##FORMAT開頭的行注釋第九列的縮寫字母。
在header之後,vcf主體的每一行是一條record,固定列有9列,以及在之後的第十列,它們分別是:
第一列:#CHROM,染色體號
第二列:POS,在染色體上的位置
第三列:ID,突變名稱,一般只有人類才有dbSNP編號,以rs開頭
第四列:REF,參考基因組鹼基類型,必須大寫
第五列:ALT,變異鹼基類型,大寫,多個以逗號分隔,‘.’表示缺失
第六列:QUAL,變異檢測質量值,越高越可靠
第七列:FILTER,標記過濾結果的列:通過質控過濾標準的標記為‘PASS’,後續可用其他工具進行挑選過濾
第八列:INFO,附加信息列,附加信息的注釋在header的##INFO中
第九列:FORMAT,後面信息的說明列
第十列開始為樣品信息:GT=genotype、AD=鹼基支持數量、DP=測序深度總和、PL=歸一化後基因型的可能性、GQ=PL判讀的基因型的質量值,其中當第二小的值小於99時,有必要懷疑基因型的可靠性。
vcf文件基本由bam文件生成,當得到排序並建立索引的bam文件後,可以使用多種工具例如bcftools、gatk、freebayes、lumpy、delly、varscan2等處理得到。
處理vcf格式文件的軟件有許多種,包括:bcftools、vcftools、gatk、python_pyvcf、plink等。
———以上屬個人理解與記錄
將多個樣本的vcf文件轉化為Phylip輸入格式的python腳本
但是phylip又不能直接把vcf文件作為輸入文件,它的輸入格式要求如下
第一行的兩個數字分別為樣本數和SNP數目
第二行的第一列為物種名稱,一定要是10個字符的長度,長度不足可以用空格填充.第二列則是要用於比對的SNP序列。兩列之間沒有分隔符,而且後面的SNP每10個字符有一個空格.
python腳本如下:
可以選擇輸出fasta文件或者phy文件
怎麼讀取千人基因組中的vcf數據格式文件
(看到這個問題是近3年前的,提問者應該早就知道了,但好像沒有正確的回答,就在這裡回答一下希望對別的搜索的問題的人有幫助)
既然知道vcf文件,就默認你是在linux系統下操作的。
1)只是查看的話:如果是.vcf.gz壓縮格式,就使用這個命令:less yourfile.vcf.gz,打開亂碼試試這個:bcftools view yourfile.vcf.gz |less ;如果不是壓縮格式: less yourfile.vcf就可以查看。
2)如果是要操作vcf的話:就用python,導入pysam模塊,沒有這個模塊要下載。pysam模塊下載:pip install pysam,如果下不了就自己網上搜一下。順便提供一個pysam的說明文檔,有操作示例:網頁鏈接
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/279847.html