**生信自学记录1——获取Fastq格式的反向互补序列**
发布日期:2022-02-27 02:37:52 浏览次数:56 分类:技术文章

本文共 1410 字,大约阅读时间需要 4 分钟。

` 生信自学记录1——获取Fastq格式的反向互补序列

总共分为三步

1.读取基因序列的str格式,返回反向互补序列str
2.打开fastq格式的文本提取基因序列,返回互补序列list
3.读取互补序列的list替换原基因序列,返回反向互补后的fastq格式的文本

具体代码如下:

1.读取基因序列的str格式,返回反向互补序列str

def to_reverse(str):#获得目的序列的反向互补序列    str1=list(str)    str1.reverse()    str2=''    for i in str1:        if i in ['A','a']:            str2+='T'        elif i in ['T','t']:            str2+='A'        elif i in ['c',"C"]:            str2+='G'        elif i in ['G','g']:            str2+="C"        elif i in ['U','u']:            str2+='A'        else:            print('please check your gene_sequence')    return str2

2.打开fastq格式的文本提取基因序列,返回互补序列list

def get_geneSeq(fq):#获取目的fasta文件的目的序列,并得到目的序列的反向互补序列    list_reverse=[]    for i in range(len(fq)):        if i%4==1:            try:                r_seq=to_reverse(fq[i])                list_reverse.append(r_seq)            except Exception:                print('somewhere error')    return list_reverse

3.读取互补序列的list替换原基因序列,返回反向互补后的fastq格式的文本

def write_file(list_reverse,fp):#将互补序列写入新建的FASTA文本文件并替换原序列    for i in range(len(list_reverse)):        fp[i*4+1]=list_reverse[i]    with open(r'C:\Users\Administrator\Desktop\反向互补序列.txt', 'w') as f:        for i in fp:            f.write(i+'\n')

4.调用文件所在位置,并调用函数

with open(r'C:\Users\Administrator\Desktop\序列.txt','r') as sp:    fq = str(sp.read()).replace('\n', ' ').split(' ')    print(get_geneSeq(fq))    write_file(get_geneSeq(fq),fq)

转载地址:https://blog.csdn.net/weixin_43392168/article/details/83050866 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:项目性能遇到瓶颈,需要分库分表,主键id如何处理?
下一篇:springboot搭建

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年03月11日 00时10分50秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

MySQL常见的主从复制架构_如何搭建经典的MySQL 主从复制架构 2019-04-21
编写python程序、计算账户余额_小明有20w存款存在余额宝中,按余额宝年收益为3.35%计算,用Python编写程序计算,多少年后小明的存款达到30w?... 2019-04-21
python 公众号引流_公众号引流方法有哪些? 2019-04-21
java 减少内存_java中减少内存占用小技巧 2019-04-21
centos 7 mysql图形界面_centos7-vnstat图形界面搭建 2019-04-21
java 防渗透_「java、工程师工作经验怎么写」-看准网 2019-04-21
java中跳出当前循环怎么做_在java中,如何跳出当前的多重循环? 2019-04-21
java程序中执行maven_java – 将一个enviornment变量传递给Maven中的已执行进程 2019-04-21
java16下载_java lombok下载 2019-04-21
python 图像处理与识别书籍_Python图像处理之识别图像中的文字(实例讲解) 2019-04-21
java安全初始化_java安全编码指南之:声明和初始化 2019-04-21
java jstat gc_分析JVM GC及内存情况的方法 2019-04-21
php pclzip.lib.php,php使用pclzip类实现文件压缩的方法(附pclzip类下载地址) 2019-04-21
php dns更新,php_mzdns: 站群,大量域名 通过 dns 服务商 api 批量添加 ip 工具。你懂的~ 基于 mzphp2 框架。... 2019-04-21
jdk 1.8 java.policy,JDK1.8 导致系统报错:java.security.InvalidKeyException:illegal Key Size 2019-04-21
php linux权限,Linux权限详细介绍 2019-04-21
典型环节的matlab仿真分析,典型环节的MATLAB仿真.doc 2019-04-21
Php contenttype类型,各种类型文件的Content Type 2019-04-21
php使用redis持久化,redis如何持久化 2019-04-21
php7.1解压包安装,【Swoole】php7.1安装swoole扩展 2019-04-21