搜索
查看: 4759|回复: 4

Python小测006

[复制链接]

8

主题

26

帖子

157

积分

注册会员

Rank: 2

积分
157
发表于 2017-11-8 00:33:22 | 显示全部楼层 |阅读模式
真核生物中成熟RNA是DNA通过剪切掉内含子,剩余外显子连接后,再进行翻译一段DNA序列:ATGGTCTACATAGCTGACAAACAGCACGTAGCAATCGGTCGAATCTCGAGAGGCATATGGTCACATGATCGGTCGAGCGTGTTTCAAAGTTTGCGCCTAG
内含子1:ATCGGTCGAA
内含子2:ATCGGTCGAGCGTGT
剪切后拼接结果:ATGGTCTACATAGCTGACAAACAGCACGTAGCATCTCGAGAGGCATATGGTCACATGTTCAAAGTTTGCGCCTAG
回复

使用道具 举报

8

主题

26

帖子

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2017-11-8 00:33:54 | 显示全部楼层
dna1 = "ATGGTCTACATAGCTGACAAACAGCACGTAGCAATCGGTCGAATCTCGAGAGGCATATGGTCACATGATCGGTCGAGCGTGTTTCAAAGTTTGCGCCTAG"
dna2 = "ATCGGTCGAA"
dna3= "ATCGGTCGAGCGTGT"
a = dna1.index(dna2)
b = dna1[:a]+dna1[a+len(dna2):]
c = b.index(dna3)
d = b[:c]+b[c+len(dna3):]
print(d)
回复 支持 3 反对 0

使用道具 举报

0

主题

19

帖子

74

积分

注册会员

Rank: 2

积分
74
发表于 2020-6-4 10:50:46 | 显示全部楼层
dna = 'ATGGTCTACATAGCTGACAAACAGCACGTAGCAATCGGTCGAATCTCGAGAGGCATATGGTCACATGATCGGTCGAGCGTGTTTCAAAGTTTGCGCCTAG'
intron_1 = 'ATCGGTCGAA'
intron_2 = 'ATCGGTCGAGCGTGT'
intron_1_start_pos = dna.find(intron_1)
intron_1_end_pos = intron_1_start_pos + len(intron_1)
intron_2_start_pos = dna.find(intron_2)
intron_2_end_pos = intron_2_start_pos + len(intron_2)
print(intron_1_start_pos, intron_1_end_pos)
print(intron_2_start_pos, intron_2_end_pos)
coding_dna = dna[:intron_1_start_pos] + dna[intron_1_end_pos:intron_2_start_pos] + dna[intron_2_end_pos:]
coding_dna
回复 支持 反对

使用道具 举报

0

主题

19

帖子

74

积分

注册会员

Rank: 2

积分
74
发表于 2020-6-4 15:19:38
python测试7
我们知道用add方法可以给集合增加元素,如:
>>> set1 = {'qwe', 'asd', 'z'}
>>> set1.add('123')
>>> set1
{'123', 'qwe', 'asd', 'z'}


当add已有元素时,则不会有任何变化,这也是集合唯一性的表现,现在有一个全是字符串的集合,你设计程序,当加入一个字符串是集合中已有元素时,会自动在字符串后面加上“_1”再加入元素中,如
set1 = {'qwe', 'asd', 'z'}
#加入'qwe',实际加入qwe_1,集合变成
{'qwe_1', 'qwe', 'asd', 'z'}


进一步,如果已有'qwe'和'qwe_1',再加入'qwe'时,实际加入'qwe_2',以此类推。
'''添加的元素末尾第二位不能带有'_' ,比如'abc_d'。 '''


set1 = {'qwe', 'asd', 'z', 'qwe_1', 'qwe_7','qwe_3'}
a = 'qwe'

if a not in set1:
    set1.add(a)   #不在集合,直接加入
else: #集合中已有该元素
    if a[-2] != '_':#末尾第二个检查是不是'_'
        a = a + '_1'    #末尾添加_1
        if a not in set1:
                set1.add(a)   #检查集合是不是有了,没有加入集合
        else:        #集合有了
            b =1
            while True:
                a = a[:-1] + str(int(a[-1])+b)
                if a not in set1:
                    set1.add(a)
                    break      #容易写死循环
                else:
                    b+= 1
        
print(set1)


支持 反对

0

主题

19

帖子

74

积分

注册会员

Rank: 2

积分
74
发表于 2020-6-4 15:25:21 | 显示全部楼层
本帖最后由 lin_ 于 2020-6-4 16:52 编辑

还有没有更多的练习题?
回复 支持 反对

使用道具 举报

0

主题

3

帖子

44

积分

新手上路

Rank: 1

积分
44
发表于 2022-5-31 22:05:30 | 显示全部楼层
seq='ATGGTCTACATAGCTGACAAACAGCACGTAGCAATCGGTCGAATCTCGAGAGGCATATGGTCACATGATCGGTCGAGCGTGTTTCAAAGTTTGCGCCTAG'
pattern='ATCGGTCGAA'
pattern2='ATCGGTCGAGCGTGT'
def cut(pattern,pattern2):
    print(seq.replace(pattern,'').replace(pattern2,''))
cut(pattern,pattern2)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2022-7-7 12:47 , Processed in 0.145140 second(s), 34 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.