Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python忽略具有多个模式匹配的行_Python_List_String Matching - Fatal编程技术网

Python忽略具有多个模式匹配的行

Python忽略具有多个模式匹配的行,python,list,string-matching,Python,List,String Matching,我的清单如下: Index1_list=['ATTACTCG','TCCGGAGA','CGCTCATT','GAGATTCC','ATTCAGAA'] 如果行中只有一个列表元素在中(不是两个不同的或三个不同的) 输出应该是 >seq2 NNNNNNNNNNNNNATTACTCGNNNNNNNNNN >seq3 NNNNNNNNNNNNNGAGATTCCNNNNNNNNNNN 我使用了下面的脚本,但无法筛选出具有两个不同匹配项的读取 from Bio import SeqIO

我的清单如下:

Index1_list=['ATTACTCG','TCCGGAGA','CGCTCATT','GAGATTCC','ATTCAGAA']
如果行中只有一个列表元素在
中(不是两个不同的或三个不同的)

输出应该是

>seq2
NNNNNNNNNNNNNATTACTCGNNNNNNNNNN
>seq3
NNNNNNNNNNNNNGAGATTCCNNNNNNNNNNN
我使用了下面的脚本,但无法筛选出具有两个不同匹配项的读取

from Bio import SeqIO

Index1_list=['ATTACTCG','TCCGGAGA','CGCTCATT','GAGATTCC','ATTCAGAA']


with open('All.fastq','r') as R1:
    for record in SeqIO.parse(R1,'fasta'):
        for i in Index1_list:
            if i in record.seq:
                sequences = record.format('fasta')
                print(sequences)

谢谢。

您应该能够通过检查列表中有多少元素位于所需字符串中来完成所需操作,如下所示:

来自Bio导入序列
Index1_list=['attachtcg'、'TCCGGAGA'、'CGCTCATT'、'GAGATTCC'、'ATTCAGAA']
以open('All.fastq','r')作为R1:
对于SeqIO.parse(R1,'fasta')中的记录:
计数=0
对于Index1_列表中的i:
如果我在record.seq中:
计数+=1
如果计数=1:
sequences=record.format('fasta')
打印(序列)

谢谢您的帮助。我有一个关于计数器的问题-如果我错了,请纠正我,因此计数器实际上是针对
记录的。seq
如果它已在第二个for循环中两次
(如果条件适用)
,则表示该记录中有两个索引。是的。第二个for循环通过
Index1\u list
。对于列表中的每个元素,我们测试该元素是否存在于
record.seq
中。如果是这种情况,我们增加计数器。因此,计数器统计
记录.seq
中存在的
索引列表
中的不同元素的数量。因此,我们只想在计数器等于
1
时打印它。请注意,我们只测试列表中的元素在
记录.seq中是否至少存在一次,我们不知道它存在多少次。因此,
“nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnatctcgnnnn”
也将被打印出来。这是一个完美而详细的答案,非常感谢您的帮助:)
from Bio import SeqIO

Index1_list=['ATTACTCG','TCCGGAGA','CGCTCATT','GAGATTCC','ATTCAGAA']


with open('All.fastq','r') as R1:
    for record in SeqIO.parse(R1,'fasta'):
        for i in Index1_list:
            if i in record.seq:
                sequences = record.format('fasta')
                print(sequences)