这篇文章主要为大家介绍了Python脚本提取fasta文件单序列信息实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
此篇文章关键给大家介绍了Python脚本制作获得fasta文件单编码序列信息内容完成实例,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪
Python脚本制作编写
应用Python对fasta格式编码序列开展基本资料统计分析
预估设计方案导出文件中包括fasta文件名,编码序列长短,GC成分及其ATCG分别含量。
应用文件
test.fasta
stat.py
输入sys模块
#!/usr/bin/env python import sys
从命令行获得文件名称
file_fasta=sys.argv[1] #获得文件名 file_name=file_fasta.split('.') name=file_name[0]
sys.argv[1]模块是从程序外部获取参数的桥梁,可以将命令行的参数输入到py程序内。
sys.argv[0]是程序本身,sys.argv[1]是程序后跟着第一个参数。
我们将要文件夹名称做为输入数据,这步最后运行有展现。
在完毕导出的时候会导出1个包括统计信息的txt文件,我们将要用fasta文件名做为txt文件的作为前缀,因此我们必须获得fasta文件的名称。
.split('.')是把file_fasta以.为分节符分离会形成'test','txt',取值给file_name则file_name会蕴含着两个字符。
file_name[0]乃是取首个值'test',python中默认设置首个数是0,所以无法键入1。
开展编码序列数据汇总的函数公式
编码序列长度非常好统计分析使用len函数就可以,可是GC成分和ACTG的百分比换算必须费点事儿。
使用def制做一个函数
Python使用def开始函数定义,紧接着是函数名,括号内部为函数的参数,内部为函数的具体功能完成代码
def get_info(chr): chr=chr.upper() count_g=chr.count('G') count_c=chr.count('C') count_a=chr.count('A') count_t=chr.count('T')
命名这个函数为get_info,内部参数为chr
在咱们会将fasta中ATCG的碱基内容赋值给chr,碱基可能有大写有小写,所以我们使用.upper将所以字符变成大写。
再使用.count('G')统计ATCG各自的数量并赋值给对应count_g,我们用ATCG各自的统计数可以在后面计算中免疫N值干扰。
gc=(count_g+count_c)/(count_a+count_t+count_c+count_g) A=(count_a)/(count_a+count_t+count_c+count_g) T=(count_t)/(count_a+count_t+count_c+count_g) C=(count_c)/(count_a+count_t+count_c+count_g) G=(count_g)/(count_a+count_t+count_c+count_g) gc_con='{:.2%}'.format(gc) A_content='{:.2%}'.format(A) T_content='{:.2%}'.format(T) C_content='{:.2%}'.format(C) G_content='{:.2%}'.format(G) return(gc_con,A_content,T_content,C_content,G_content)
gc含量计算其等于(G的数量+C的数量)/(A的数量+T的数量+C的数量+G的数量)
A的含量等于(A的数量)/(A的数量+T的数量+C的数量+G的数量),其他值的计算以此类推。
.format使用:
"{1}{0}{1}".format("hello","world")设置指定位置。
'world hello world'
{:.2f}保留小数点后两位
最后,使用return返回函数结果(gc_con,A_content,T_content,C_content,G_content)
进行函数计算
#进行函数计算 with open(file_fasta,'r')as read_fa:
读取文件内容赋值给read_fa
python中有两个方式打开文件一种是直接使用open("test.fasta","r"),执行完以后f.close()关闭。
注释:"r"只读模式打开文件;"w"以只写模式打开文件,这种模式下输入内容会覆盖原有内容;"a"以追加模式打开一个文件,这个模式会把新内容追加到原有内容的末尾,不会覆盖。
这里使用的是第二方式with内置函数,它可以将文件自动关闭。
for val in read_fa: val=val.strip() if not val.startswith(">"): seq_info=get_info(val) len_fasta=len(val)
将read_fa内容赋值给val。
strip()方法用于移除字符串头尾指定的字符(默认为空格或换行符),这里使用默认。
然后使用startswith()方法用于检查字符串是否是以指定子字符串开头,在当不是>开头的行时候,才对核酸序列才进行信息统计。
len()方法返回字符长度获得片段长度
结果屏幕展示
#结果屏幕展示
print('******n{0}nlength:{1}ngc content:{2}nA content:{3}nT content:{4}nC content:{5}nG content:{6}n******'.format(name,len_fasta,seq_info[0],seq_info[1],seq_info[2],seq_info[3],seq_info[4]))
使用n进行换行,用.format指定值输出位置。
结果输出文件
os.write(fd,str)
write()方法用于写入字符串到文件描述符fd
#结果输出文件
file_output=open("{}sum.txt".format(name),'a') file_output.write('******n') file_output.write('{}n'.format(name)) file_output.write('length:{:d}n'.format(len_fasta)) file_output.write('gc content:{}n'.format(seq_info[0])) file_output.write('A content:{}n'.format(seq_info[1])) file_output.write('T content:{}n'.format(seq_info[2])) file_output.write('C content:{}n'.format(seq_info[3])) file_output.write('G content:{}n'.format(seq_info[4])) file_output.write('******') file_output.close()
脚本运行
执行脚本(linux系统)
使用ls命令可以看到当前目录下有已经写好的py文件以及数据test.fasta。
运行时注意我们编写时设置从命令行获得文件名称,所以要在后面跟上fasta文件,这样才能成功运行。
运行结束后可以看见屏幕上有结果的打印,同时也生成了testsum.txt。
使用cat命令查看可以看到结果。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/128694.html
此篇文章关键给大家介绍了应用Python脚本制作获取基因组测序指定位置编码序列的实例详细说明,感兴趣的小伙伴值得借鉴参考一下,也希望能有一定的帮助,祝愿大家多多的发展,尽早涨薪 前言 在基因组分析中,大家常常会有这样一个要求,便是在一个fasta文件中获取某些编码序列出去。有时候这种编码序列注定是完备的编码序列,而有时候只是为原fasta文件中某一段编码序列中的一部分。尤其是当信息量许多时,应...
本文关键给大家介绍了Python完成GB文件格式编码序列编码序列Fasta文件类型实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家尽可能发展,尽早工作上得到晋升 GB文件类型和FASTA文档详细介绍 在生物学中会有将GB文件格式编码序列编码序列成Fasta文件类型的需要,接下来我们运用python脚本制作来解决这些问题。 gb格式文档是GenBank的文档,用...
本文主要是给大家介绍了python从gbff文件上直接获取cds编码序列实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪。 什么叫GBFF文档 GenBank纯文本文件类型(GenBankflatfile,通称GBFF) GBFF是GenBank数据库系统的相关信息企业 GBFF编码序列文档由单独的编码序列具体内容构成。 编码序列具体内...
在预估中,脚本制作这一词用以泛指包括订单信息逻辑性编码序列的文件或脚本文件,接下来本文关键为大家介绍了有关python运行脚本文件信息三种方式,原文中根据案例编码推荐的十分详尽,必须的小伙伴可以借鉴一下 python脚本执行的3种方式: (寻找自己可以使用的办法,可用的办法就是好办法) 步骤一:交互方式立即实行句子 交互方式下立即撰写实行Python句子,也不用再建立脚本文件 Win...
摘要:它是一门解析型的语言,何为解析型语言呢就是在运行时通过解析器将源代码一行行解析成机器码。而像语言,等则是编译型的语言,即通过编译器将所有的源代码一次性编译成二进制指令,生成一个可执行的程序。 ...
阅读 909·2023-01-14 11:38
阅读 876·2023-01-14 11:04
阅读 739·2023-01-14 10:48
阅读 1979·2023-01-14 10:34
阅读 941·2023-01-14 10:24
阅读 818·2023-01-14 10:18
阅读 498·2023-01-14 10:09
阅读 571·2023-01-14 10:02