社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

基于python中两个短序列的过滤行

John • 5 年前 • 1675 次点击  

我有一个类似于以下示例的文本文件:

例子:

>chr9:128683-128744
GGATTTCTTCTTAGTTTGGATCCATTGCTGGTGAGCTAGTGGGATTTTTTGGGGGGTGTTA
>chr16:134222-134283
AGCTGGAAGCAGCGTGAATAAAACAGAATGGCCGGGACCTTAAAGGCTTTGCTTGGCCTGG
>chr16:134226-134287
GGAAGCAGCGTGGGAATCACAGAATGGACGGCCGATTAAAGGCTTTGCTTGGCCTGGATTT
>chr1:134723-134784
AAGTGATTCACCCTGCCTTTCCGACCTTCCCCAGAACAGAACACGTTGATCGTGGGCGATA
>chr16:135770-135831
GCCTGAGCAAAGGGCCTGCCCAGACAAGATTTTTTAATTGTTTAAAAACCGAATAAATGTT

这个文件被分成不同的部分,每个部分有两行第一排以 > (这一行叫做id),第二行是字母序列。 我想找两个短的主题( AATAAA GGAC )在字母序列中,如果它们包含这些图案,我想得到该部分的id和序列。 但关键是 阿塔亚 应该是第一个序列 GGAC公司 在那之后会来的它们之间有一段距离,但这个距离可以是2个字母或更多。

预期产量:

>chr16:134222-134283
AGCTGGAAGCAGCGTGAATAAAACAGAATGGCCGGGACCTTAAAGGCTTTGCTTGGCCTGG

我尝试在python中使用以下命令执行此操作:

infile = open('infile.txt', 'r')
mot1 = 'AATAAA'
mot2 = 'GGAC'
new = []
for line in range(len(infile)):
    if not infile[line].startswith('>'):
        for match in pattern.finder(mot1) and pattern.finder(mot2):
            new.append(infile[line-1])


with open('outfile.txt', "w") as f:
    for item in new:
        f.write("%s\n" % item)

此代码不返回我想要的内容你知道怎么修吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/48528
 
1675 次点击  
文章 [ 5 ]  |  最新文章 5 年前