跟着Nature ecology and evolution学python:vcf文件转换成fasta文件
论文
A polar bear paleogenome reveals extensive ancient gene flow from polar bears into brown bears
https://www.nature.com/articles/s41559-022-01753-8
image.png
本地pdf文件A polar bear paleogenome reveals extensive ancient gene flow from polar bears into brown bears.pdf
代码
https://github.com/PopGenomics-WMS/Bruno_aDNA_analysis
https://github.com/PopGenomics-WMS/Bruno_aDNA_analysis/blob/main/06.mtDNA_nuc_Phylogeny/vcf2fasta.sjf.py
这个脚本用到了 Pool python多线程处理,主要学习这个内容
遇到的问题一
如果是在windows系统下运行脚本
python vcf2fasta.sjf.py -v new.vcf -op abc -nt 4
abc是一个文件夹,需要在当前目录下存在 这里会遇到报错NameError: name 'dict_run' is not defined
这里的dict_run是使用global定义到函数里的一个变量,linux系统下就没有这个问题,windows学习通下的python是3.8.3,linux系统下的python版本是3.9.1
遇到的问题二
使用脚本的时候linux系统下不知道为啥用tab键不能补全文件名,暂时不知道是什么原因
遇到的问题三
脚本里定义了每种基因型对应的碱基序列
image.png
这里非纯合的位点定义为M R W这些是为啥,暂时想不明白
这个脚本有局限是,他定义了vcf文件的基因型
image.png
如果vcf文件的基因型不是这些的话就会报错keyError
python多线程的一个简单小例子
from multiprocessing import Pool
def make_new_file(filename):
with open(filename,'w') as fw:
fw.write('xiaoming')
def abc():
aa = ['aaa.txt','bbb.txt','ddd.txt','eee.txt']
with Pool(3) as p:
p.map(make_new_file,aa)
p.close()
p.join()
if __name__ == '__main__':
abc()
print("ABCD")
这里Pool这个函数好像是必须搭配if __name__ == '__main__':
这个语句
参考链接 https://docs.python.org/3/library/multiprocessing.html
相关文章
- 使用python进行词频分析
- Python列表详细操作
- python字符串转化列表_Python列表到字符串的转换[通俗易懂]
- python对文件的操作
- python解压bz2文件命令,在Python中解压缩.bz2文件
- Python入门系列(十)一篇学会python文件处理
- python上的表白代码_用Python实现表白代码
- Python文件操作
- 廖雪峰的 Python 教程_python基础教程廖雪pdf
- 【ChatGPT】如何使用python调用ChatGPT API?
- Python 文件
- python 按行数分割文件
- Python爬虫中:get和post方法使用
- python-Django-文件上传(一)
- 网络工程师学Python-27-文件读取
- python文件操作详解编程语言
- Python使用win32api获取DLL和EXE文件版本号详解编程语言
- Python爬取MySQL数据,助力数据分析(python读取mysql数据)
- python网页请求urllib2模块简单封装代码
- Python创建文件和追加文件内容实例
- Python中的对象,方法,类,实例,函数用法分析
- python调用MoxaPCOMMLite通过串口Ymodem协议实现发送文件