1) for any given sequencing run, won't the primers always be in the same location?  If so, then you shouldn't need to search the entire read1_data using the "in" operator; instead, slice out the pertinent portion of the string corresponding to the primer, then test if it is in a set of primers.  2) if suggestion 1 is not feasible because my assumption(s) about primer locations are incorrect -- or we are worried about very degenerate primers making the set of possible primers very large -- then we should use a regular expression to represent the primer.  Presumably, the primers are represented using the IUPAC codes, and automatic generation of a regular expression should be straightforward.  e.g., I think something like this will work:

```python
from re import compile

iupac = {'A':'A', 'T':'T', 'G':'G', 'C':'C', 'R':'[AG]', 'Y':'[CT]'} # add the rest of the IUPAC codes here
re = compile(''.join([iupac[symbol] for symbol in primer]))

if re.search(read_1_data[sequence_index]):
    read1 = read1_data
    read2 = read2_data
    found_primer_match = True

if re.search(read_2_data[sequence_index]):
    read1 = read2_data
    read2 = read1_data
    found_primer_match = True
```