【Python】找出字符串中所有的DNA反向回文串(reverse palindrome)

python&生物信息学 | DNA反向互补序列获取 complement_table = str.maketrans('ATGCU', 'TACGA') def get_comp(seq): return seq.translate(complement_table) get_comp("CTCCCAGTTTACTATCGCACTGGTCGACTATACCTGTGCC") ‘GAGGGTCAAATGATAGCGTGACCAGCTGATATGGACACGG’ get_comp("CTCCCAGTTTACTATCGCACTGGTCGACTATA 阅读详情

题目要求

解决方案

def rev_palindrome(dna):
    def reverse_complement(dna):
        result = ''
        for symbol in dna:
            if symbol == 'A':
                result = result + 'T'
            elif symbol == 'T':
                result = result + 'A'
            elif symbol == 'C':
                result = result + 'G'
            elif symbol == 'G':
                result = result + 'C'
        return result[::-1]

    def is_reverse_palindrome(sub):
        middle_index = int(len(sub)/2)
        if reverse_complement(sub[:middle_index]) == sub[middle_index:]:
            return True
        return False

    result_list = []

    for i in range(len(dna)):
        for j in range(i+1, len(dna)):
            sub_string = dna[i:j+1]
            if 4 <= len(sub_string) <= 12:
                if is_reverse_palindrome(sub_string):
                    print(sub_string)
                    result_tuple = (i, len(sub_string))
                    result_list.append(result_tuple)
    return result_list

#test
print(rev_palindrome("TCAATGCATGCGGGTCTATATGCAT"))

 

测试结果

成功!!!

使用Python进行英文单词分割 由于在一些场景中,所有的字母都连在了一起,所以我们需要将字母分割成单词的形式。 1. 安装 pip install -U symspellpy 2. 下载词典 curl -LJO https://raw.githubusercontent.com/mammothb/symspellpy/master/symspellpy/frequency_dictionary_en_82_765.txt curl -LJO https://raw.githubusercontent.com/mammothb/symspellpy/master/symspellpy/frequency_bigramdict 立即下载

相关推荐

2025 居民消费结构数据集(21列,15000条记录)XLSX

详情介绍:该数据集为 2025 年 12 个月、1250 户家庭的平衡面板消费数据,15000 行 ×21 列零缺失,覆盖 31 省、城乡均衡,含八大类消费支出和恩格尔系数(均值 0.293,属富裕区间),家庭月收入均值 8473 元、月支出 6487 元,附完整字段说明 sheet,数据干净规整,非常适合做消费结构分析、面板回归、城乡 / 区域差异对比和收入等级分类预测,但为合成数据、仅 1 年时间跨度,不适合做真实政策研究或长期趋势分析。

python文件处理,得到DNA的互补链或反向互补链

#!/usr/bin/python3 #-*-coding:utf-8 -*- "得到DNA的互补链或者反向互补链" f=open('./test.txt') line=f.read() transline=line[::-1].replace('A','t').replace('T','a').replace('G','c').replace('C','g').upper() f...

weixin_30701575的博客 1302

从PWM到精准电流:双光耦与LM317构建的4-20mA隔离输出方案

本文详细介绍了基于双光耦与LM317的4-20mA隔离输出方案,适用于工业自动化中的PWM信号转换。该方案通过电气隔离和精准电流调节,显著提升抗干扰能力和信号传输精度,同时降低成本60%。文章还分享了电路设计、参数计算及调试经验,为工程师提供实用参考。

weixin_32006655的博客 283

【生信笔记】python实现DNA反向互补序列的6种方法

目录反向序列函数互补序列方法1:用字典dictionary互补序列方法2:python3 translate()方法互补序列方法3:最原始方法,用多个if分支互补序列方法4:对字符串调用replace()互补序列方法5: ASCII码作为列表下标测试用例 反向序列函数 def DNA_reverse(sequence): return sequence[::-1] # 求反向序列 互补...

lotusng 1万+

深入解析PVT corner:从wcl到ml的芯片设计关键考量

本文深入解析了芯片设计中的PVT corner概念,重点探讨了从传统WC到先进工艺下WCL、ML等关键工艺角。文章详细阐述了温度反转效应如何使低温WCL成为最严苛的时序场景,并提供了基于先进工艺的实战签核策略与多角多模分析流程,确保芯片在极端工艺、电压、温度下的稳健性。

tree8的博客 527

VisionMaster字符检测避坑指南:为什么你的缺陷检测总误判?7个参数陷阱详解

本文深入剖析了海康VisionMaster在字符缺陷检测中导致误判的7个关键参数陷阱,包括二值化参数、最小字符面积与宽度、字符极性及缺陷判决参数等。通过药品喷码和PCB丝印等实战案例,提供了系统的调试心法与工作流,帮助工程师精准调参,有效降低误判率,提升检测稳定性。

rust6ferris的博客 1099

项目实战 | 分别用Python和perl 实现取DNA序列的逆反序列

1。Perl:一行代码,使用模式匹配和reverse()函数即可 #!perl my $barcode=$ARGV[0]; my $R1=$ARGV[1]; print '$ARGV[0]==>',$ARGV[0],"\n"; print '$ARGV[1]==>',$ARGV[1],"\n"; open (MARK, "< $barcode") or die "can not open it!"; open (NEWR1,"> $R1")or die "can not open

weixin_40640700的博客 663

Yolov5实现道路裂缝检测

Yolov5实现道路裂缝检测 参考代码链接 Github代码链接 基于Pytorch的Yolov5道路裂缝检测程序运行说明。大家可以结合我的说明和原文说明使用,有问题欢迎询问。 文章目录Yolov5实现道路裂缝检测环境要求测试训练自己的数据集1.创建dataset.yaml文件2.创建标签文件3.组织文件路径4.选择模型5.开始训练 环境要求 Python 3.8或之后的版本 还要安装requirements.txt文件中所有依赖包,包括1.7及以上版本的torch $ pip install -r req

qq_26751379的博客 2万+

【Python】回文检测 —— 双端队列的应用

“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。 根据之前所提到的双端队列的特性,我们可以很方便对所输入的数字或者字符串进行检测。只需将放入队列中的字符串从两端同时取出进行比较即可,若相同则继续,反之输出退出。当然,得注意一下字符串位数(或数字位数)的奇偶。 代码如下: from pythonds.basic import Deque def palindrome(char): checker = Deque() for

yewanyuan的博客 766

车载导航GPS欺骗

因此,如果我们能够模拟卫星信号,将模拟的信号通过信号发射装置发送给GPS传感器,那么就有可能实现欺骗GPS传感器获取虚假的位置信息,这种技术即SDR(软件无线电,Software Defined Radio)[2]。究其原因,在不使用时钟模块的条件下,HackRF发送信号的频率可能不十分精准,因此GPS传感器接收到信号之后可能无法正常解析GPS信号,因此时钟信号可能是HackRF进行GPS欺骗的关键。2)HackRF是否使用了时钟模块,时钟模块决定了信号发送频率的精准程度,对实验的成败也是至关重要的。

2503_90751789的博客 1324

心电图机原理及电路超详细讲解

前置心电放大电路(虚线框:这是隔离电路的分界,在隔离电路分析中知道,完整隔离包括信号隔离(脉宽调制)、控制信号隔离(光电耦合)和电源隔离)后级放大电路。

fcxgfdjy的博客 2万+

DNA正负链

DNA正负链关于DNA正负链的定义biostartsDNA是互补双链,一条是正链(forward strand),一条是负链(reverse/minus strand)。————————————————不重要,不懂—————————————————biostarts认为正负链可以任意指定关于DNA正负链的定义认为:把碱基序列与mRNA一致(只是T和U的区别)的核酸单链定为==正链(+)==,不作模板转录,也称为有义链(sense strand), 又称编码链(coding strand)。将碱基序列与mRN

纸上得来终觉浅,绝知此事要躬行! 1万+

医疗工具识别(手术器械计数):基于YOLOv8的智能手术器械管理系统

YOLOv8是Ultralytics公司于2023年推出的最新一代目标检测算法,相比前代YOLOv5,在精度和速度上都有显著提升。Anchor-free检测:不再使用预定义的anchor boxes,简化了检测流程更高效的骨干网络:采用CSPDarknet53作为特征提取网络多尺度特征融合:通过PANet结构实现更好的小目标检测损失函数优化:使用CIoU损失提高边界框回归精度YOLOv8提供了多种规模的模型(n/s/m/l/x),可根据实际需求在精度和速度之间进行权衡。

YOLO 480

dna reverse

Deoxyribonucleic acid (DNA) is a chemical found in the nucleus of cells and carries the "instructions" for the development and functioning of living organisms.If you want to know more http://en.wikiped

power8988的博客 551

(王道408考研数据结构)第一章绪论-第二节1:算法的基本概念、算法的特性及设计要求

算法(Algorithm):是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作王道视频课中讲到了一个例子,展示了算法就是解决问题的特定步骤的描述对于给定的问题可以有多种多样的算法来解决,只不过这些算法有各自的优点和缺点。

快乐江湖的博客 2684

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Python数据系列(二)- 字典Dict:Python的“大胃王”,实在好用

数据字典,真实太好用的Python数据形式了。真实一个大胃王,多少数据形式,都能存到key和value里面,整整齐齐的

钱多多先森 1739

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

python列表技巧(倒序)

a = [0,1,2,3,4,5,6,7,8,9] b = a[i:j] 表示复制a[i]到a[j-1],以生成新的list对象 b = a[1:3] 那么,b的内容是 [1,2] 当i缺省时,默认为0,即 a[:3]相当于 a[0:3] 当j缺省时,默认为len(alist), 即a[1:]相当于a[1:10] 当i,j都缺省时,a[:]就相当于完整复制一份a了 b = a[i:j:...

zpf_07的博客 5626

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

c语言字符串dna,转录流程(c语言编写DNA转录程序)

c语言编写DNA转录程序AT,CG进行互换就可以了#include#includemain(){char input[50];/*Defined to store the DNA code sequence*/int i;/*Used as counter*/printf("\n\tInput the DNA sequence you want to convert\n\t");gets(inpu...

weixin_33561910的博客 661

2022-05-22 字符串压缩法——DNA短字母表

用短字母表压缩字符串第一步,用二进制方式读写第二步,压缩或还原 我们使用的字母表比如 char 字母表是8位的,所以可以承载256个不同的符号,但如果我们关心的字符串比如 DNA 只有4个字符,“ATCG”,那么我们可以用两位字母表进行替换,从而得到近乎25%的压缩率。 第一步,用二进制方式读写 我们把系统的八位字符转为两位,需要二进制操作,这个不难理解,并且对于 C,C++ 语言,这就属于基本操作,这一步我们已经实现了。 #ifndef BINSTDIO #define BINSTDIO #includ

老林的博客 331

如何用python找出100000以内的全部回文数_python3中利用filter函数输出小于某个数的所有回文数实例...

我就废话不多说了,直接上代码吧! def _int_iter():"""根据回文数的定义。首先生成一个从0开始的整数无限序列"""n = 0while True:yield nn += 1def _is_palindrome(n):"""判断n是否为回文数,是就返回Ture,否就返回False"""L1 = list(str(n))L2 = L1[:] # 利用列表的切片将L1复制出一个副本...

weixin_36174545的博客 1549

python回文字符串的所有子回文字符串_查找Python中给定字符串的所有不同回文子字符串...

假设我们有一个带有小写ASCII字符的字符串,我们必须找到它的所有不同的连续回文子字符串。因此,如果输入类似于“ bddaaa”,则输出将为[a,aa,aaa,b,d,dd]为了解决这个问题,我们将遵循以下步骤-m:=新映射n:= s的大小矩阵:=生成两行n为0的数s:=“ @”串联s串联“#”对于j在0到1的范围内,执行而s [i-temp-1]与s [i + j + temp]相同,矩阵[j,...

weixin_36035585的博客 798

python回文字符串的所有子回文字符串_查找给定字符串的所有回文子字符串-Python 2...

假设我们有一个字符串;我们必须从该字符串中找到所有回文子字符串。在这里,aa和aa被视为两个子字符串,而不是一个。因此,如果输入就像重新分配器,那么输出将是['r','e','d','i','v','ivi','divid','edivide','redivider' ,“ i”,“ d”,“ e”,“ r”]为了解决这个问题,我们将遵循以下步骤-v:=一个新列表位置:= 0.0而pos rad:...

weixin_32889145的博客 1000

python 中 关于reverse() 和 reversed()的用法介绍

转载 csdn* 2018-11-06 13:30:36 32837 收藏 44 展开 reverse(): 是python中列表的一个内置方法(也就是说,在字典,字符串或者元组中,是没有这个内置方法的),用于列表中数据的反转; exp: lista = [1, 2, 3, 4] lista.reverse() print(lista) 1 2 3 打印结果: [4, 3, 2, 1] 其实,lista.reverse() 这一步操作的返回值是一个None,其作用的结果,需要通过打印被作用的列..

qq_38016547的博客 5571

数组——reverse integer和 palindrome-number

判断一个数字是否是回文数字。 方法一:用字符串的方法,StringBuilder 中的reverse()方法。 public boolean isPalindrome(int x) { String number=String.valueOf(x); StringBuilder sb=new StringBuilder(number); if(

jingsuwen1的博客 475

生物信息学算法之Python实现|Rosalind刷题笔记:004 求DNA的反向互补序列

碱基互补配对原则是:A 与 T 配对,G 与 C 配对。求 DNA 的反向互补序列分两步:第一是反向,第二是互补。比如序列“ATGC”,反向就是“CGTA”,再互补就是“GCAT”。给定...

公众号/简说基因,知乎/简宝玉 2961
上一篇: Postman无法打开 - Could not open Postman 解决办法
下一篇: 【Python】求根据给定GC比率生成的DNA字符串与给定字符串完全匹配的概率
Algorithm_goddness
博客等级 码龄10年 25粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Algorithm_goddness

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值