博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Reverse complement DNA
阅读量:5305 次
发布时间:2019-06-14

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

用法:python rev_comp.py input.fa out.fa

输入文件为 fasta 格式文件,若输入文件中序列的 header 有 '+' 或 '-' 号标记正负链,则带有 '+' 的序列保持不变,带有 '-' 的序列反向互补;
若 header 没有 '+' 或 '-' 号标记, 则默认按反义链处理。

cat input.fa >seq1 +AGATAGATGAATT>seq2 -GATAGAGAATAAAAGATATAGATAGA>seq3GAATATAT>seq4 -CCAGTGGGATCC

cat  out.fa >seq2 -TCTATCTATATCTTTTATTCTCTATC>seq4 -GGATCCCACTGG>seq1 +AGATAGATGAATT>seq3ATATATTC

import syscomplement_table = {'A': 'T','B': 'V','C': 'G','D': 'H','G': 'C','H': 'D','M': 'K','N': 'N','R': 'Y','S': 'S','T': 'A','U': 'A','V': 'B','W': 'W','X': 'X','Y': 'R','a': 't','b': 'v','c': 'g','d': 'h','g': 'c','h': 'd','m': 'k','n': 'n','r': 'y','s': 's','t': 'a','u': 'a','v': 'b','w': 'w','x': 'x','y': 'r'}def pqrse_fasta(seqs):    new_seqs = {}    for line in seqs:        if line.startswith(">"):            name = line.rstrip()            new_seqs[name] = ""        else:            new_seqs[name] = new_seqs[name] + line.rstrip()    return new_seqsdef rev_comp(seq):    new_seq = []    line = seq.rstrip()    for letter in line:        complement_letter = complement_table[letter]        new_seq.append(complement_letter)    new_seq.reverse()    return "".join(new_seq)in_file = open(sys.argv[1])out_file = open(sys.argv[2], 'w')seqs = pqrse_fasta(in_file)for name in seqs.keys():    if name.endswith("-"):        print >> out_file, name + '\n' + rev_comp(seqs[name])    elif name.endswith("+"):        print >> out_file, name + '\n' + seqs[name]    else:        print >> out_file, name + '\n' + rev_comp(seqs[name]) # 如果文件没有 '+' 或 '-' 号标记正负链,则默认为负链。

转载于:https://www.cnblogs.com/liuhui0622/p/6286462.html

你可能感兴趣的文章
Web前端开发工程师的具备条件
查看>>
实用Android开发工具和资源精选
查看>>
TileMap
查看>>
JS属性大全
查看>>
java复制文件
查看>>
第一册:lesson seventy nine.
查看>>
GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
查看>>
团队作业
查看>>
数据持久化时的小bug
查看>>
mysql中key 、primary key 、unique key 与index区别
查看>>
bzoj2257
查看>>
Linux查看文件编码格式及文件编码转换<转>
查看>>
Leetcode: Find Leaves of Binary Tree
查看>>
Vue 模板解释
查看>>
http://www.bootcss.com/
查看>>
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
将多张图片和文字合成一张图片
查看>>
自己动手写ORM(01):解析表达式树生成Sql碎片
查看>>
如何使用USBWebserver在本机快速建立网站测试环境
查看>>
百度Ueditor编辑器的Html模式自动替换样式的解决方法
查看>>