图片摄影网站,linux 做网站,模板免费网站,太原新建火车站最近#xff0c;用Python脚本提取#xff0c;在基因号已知#xff0c;位置已知条件下#xff0c;相对应位置的基因序列时发现#xff0c;这样很简单但是很实用的脚本#xff0c;在网上却比较难找。而且#xff0c;能被找到的脚本#xff0c;相对于具有初级编程能力的人…最近用Python脚本提取在基因号已知位置已知条件下相对应位置的基因序列时发现这样很简单但是很实用的脚本在网上却比较难找。而且能被找到的脚本相对于具有初级编程能力的人而言有点难。本人写了相对于初学者同样很简单脚本分享给大家。首先我将fa文件处理为单行(嫌麻烦没有写成scaffold_x一行序列一行的样子如图三)将下面的序列处理(图一)(补充)经过import refropen(rF:desktopcorrelxxx.fa,r)fwopen(rF:desktopcorrelxxx_use.fa,w)linefr.read()rline.replace(n,)sre.sub(,n,r)fw.write(s)fr.close()fw.close()得到(图二)当然你如果不嫌麻烦也可以处理成(图三)假设我含有位置信息源文件(图四)第一列为基因号最后一列为基因在fa文件中的位置信息本人采用图二的形式具体脚本(脚本一)#authorWang Binzhong# -*- coding:utf-8 -*-fropen(rF:desktopCX.txt,r)#读取含有位置信息的文件faopen(rF:desktopxxxx.fa,r)#读取处理好的基因序列文件fw_1open(rF:desktopfa_3.txt,w)#写入line_crfr.readlines()line_fafa.readlines()for eachline in line_cr:speachline.strip().split(t)title_1eachline.find(scaffold)start_1eachline.find(:,title_1)1end_1eachline.find(-,start_1)d_1eachline[title_1:start_1-1].strip()#scaffold名称d_2eachline[start_1:end_1].strip()#首位的位置d_3eachline[end_11:].strip()#末尾的位置for each_seq in line_fa:if d_1 each_seq[:int(len(d_1))5].strip(ATGC):#如果对应的名称在行中就可以用以下的规则写入文本fw_1.write(sp[0]teach_seq[len(d_1)int(d_2):len(d_1)int(d_3)].strip()n)#改为fw_1.write(sp[0]neach_seq[len(d_1)int(d_2):len(d_1)int(d_3)].strip()n)可以省略第二步(脚本二)一步完成breakfr.close()fa.close()fw_1.close()表头没有,同时也没有换行处理所以需要继续处理(图五)没有写连续的脚本重新写了一个(脚本二)import refropen(rF:desktopfa_3.txt,r)fwopen(rF:desktopfa_4.fa,w)line_frfr.readlines()s_1for eachline in line_fr:s_1re.sub(t,n,eachline)fw.write(re.sub(pp,pp,s_1))fr.close()fw.close()最终得到程序比较简单Python初学者都可以懂。当然如果有错误的地方可以留言指出希望能为需要的同学提供帮助。这个程序只是针对于正链的注之前写的出现了一个bug经过修改后发布成功提取序列希望对各位有帮助有用的话可以引用。鉴于某些人盗版转载请注明网址。转载本文请联系原作者获取授权同时请注明本文来自王彬忠科学网博客。链接地址http://blog.sciencenet.cn/blog-783116-801490.html