前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跟着Nature ecology and evolution学python:vcf文件转换成fasta文件

跟着Nature ecology and evolution学python:vcf文件转换成fasta文件

作者头像
用户7010445
发布2023-01-06 19:06:01
6750
发布2023-01-06 19:06:01
举报

论文

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系统下运行脚本

代码语言:javascript
复制
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多线程的一个简单小例子

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 论文
  • 代码
  • 遇到的问题一
  • 遇到的问题二
  • 遇到的问题三
  • python多线程的一个简单小例子
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档