• fasta文件中DNA to RNA


    同样的名为read_1.fa 的fasta文件,里面有若干序列,如:

    >@r1
    TGAATGCGAACTCCGGGACGCTCAGTAATGTGACGATAGCTGAAAACTGTACGATAAACNGTACGCTGAGGGCAGAAAAAATCGTCGGGGACATTNTAAAGGCGGCGAGCGCGGCTTTTCCG
    >@r2
    NTTNTGATGCGGGCTTGTGGAGTTCAGCCGATCTGACTTATGTCATTACCTATGAAATGTGAGGACGCTATGCCTGTACCAAATCCTACAATGCCGGTGAAAGGTGCCGGGATCACCCTGTGGGTTTAT
    >@r3
    ATCGCCCGCAGACACCTTCACGCTGGACTGTTTCGGCTTTTACAGCGTCGCTTCATAATCCTTTTTCGCCGCCGCCATCAGCGTGTTGTAATCCGCCTGCAGGATTTTCCCGTCTTTCNGTGCCTTGNT
    ..........等等

    第一种,利用replace(),dna_2_rna.py 代码如下:

     1 #encoding = utf-8
     2 
     3 """
     4 简介:fasta文件中dna to rna
     5 作者:刘自军
     6 date:2017年5月12日 20:59
     7 """
     8 
     9 import sys
    10 from collections import OrderedDict
    11 
    12 args = sys.argv
    13 
    14 tmp_dit = OrderedDict()
    15 
    16 with open(args[1]) as f:
    17     for line in f:
    18 
    19         line = line.upper().strip('
    ')
    20 
    21         if line.startswith('>'):
    22             seq_id = line
    23             tmp_dit[seq_id] = ''
    24         else:
    25             tmp_dit[seq_id] = line.replace('T','U')
    26             #replace的用法为string.replace(old,new)
    27 
    28 for seq_id,seq in tmp_dit.items():
    29     print ('%s
    %s' %(seq_id,seq))

     或者:

     1 #encoding = utf-8
     2 
     3 """
     4 简介:求fasta文件中每个序列的反向序列,利用replace的方法,不事先定义字典,代码更简洁
     5 作者:刘自军
     6 date:2017年5月13日17:35
     7 """
     8 
     9 import sys
    10 
    11 args = sys.argv
    12 
    13 with open(args[1]) as f:
    14 
    15     while True:
    16         line_1 = f.readline().strip('
    ')
    17         if not line_1:
    18             break
    19         line_2 = f.readline().strip('
    ').upper()
    20         line_2 = line_2.replace('T','U')
    21 
    22         print (line_1)
    23         print (line_2)

    第二种,利用re.sub(),dna_2_rna.py 代码如下:

     1 #encoding = utf-8
     2 
     3 """
     4 简介:fasta文件中dna to rna 使用sub
     5 作者:刘自军
     6 date:2017年5月12日 20:59
     7 """
     8 
     9 import sys
    10 import re
    11 from collections import OrderedDict
    12 
    13 args = sys.argv
    14 
    15 tmp_dit = OrderedDict()
    16 
    17 with open(args[1]) as f:
    18     for line in f:
    19 
    20         line = line.upper().strip('
    ')
    21 
    22         if line.startswith('>'):
    23             seq_id = line
    24             tmp_dit[seq_id] = ''
    25         else:
    26             tmp_dit[seq_id] = re.sub('T','U',line)
    27             #re.sub(pattern,repl,string)
    28             #即re.sub(old,new,string)
    29 
    30 for seq_id,seq in tmp_dit.items():
    31     print ('%s
    %s' %(seq_id,seq))

     

  • 相关阅读:
    Memcached 分布式缓存系统部署与调试
    nginx_笔记分享_php-fpm详解
    nginx_笔记分享_配置篇
    linux定时任务crond那些事!
    命令passwd报错因inode节点处理记录
    linux下定时任务
    linux内核堆栈
    c语言之单链表的创建及排序
    c语言常见的几种排序方法总结
    Tiny4412之外部中断
  • 原文地址:https://www.cnblogs.com/nklzj/p/6850700.html
Copyright © 2020-2023  润新知