Match an element of every line
Question: I have a list of rules for a given input file for my function. If any of them
are violated in the file given, I want my program to return an error message
and quit.

  * Every gene in the file should be on the same chromosome

Thus for a lines such as:

NM_001003443 chr11 + 5997152 5927598 5921052 5926098 1 5928752,5925972,
5927204,5396098, NM_001003444 chr11 + 5925152 5926098 5925152 5926098 2
5925152,5925652, 5925404,5926098, NM_001003489 chr11 + 5925145 5926093 5925115
5926045 4 5925151,5925762, 5987404,5908098, etc.

Each line in the file will be variations of this line

Thus, I want to make sure every line in the file is on chr11

Yet I may be given a file with a different list of chr(and any number of
numbers). Thus I want to write a function that will make sure whatever number
is found on chr in the line is the same for every line.

Should I use a regular expression for this, or what should I do? This is in
python by the way.

Such as: chr\d+ ? I am unsure how to make sure that whatever is matched is the
same in every line though...

I currently have:

    
    
    from re import *
    for line in file:
        r = 'chr\d+'
        i = search(r, line)
        if i in line:
    

but I don't know how to make sure it is the same in every line...

**In reference to sajattack's answer**

    
    
    fp = open(infile, 'r')
    for line in fp:
            filestring = ''
            filestring +=line
            chrlist = search('chr\d+', filestring)
            chrlist = chrlist.group()
            for chr in chrlist:
                if chr != chrlist[0]:
                    print('Every gene in file not on same chromosome')
    


Answer: Just read the file and have a while loop check each line to make sure it
contains `chr11`. There are string functions to search for substrings in a
string. As soon as you find a line that returns false (does not contain
`chr11`) then break out of the loop and set a flag `valid = false`.

    
    
    import re
    
    fp = open(infile, 'r')
    fp.readline()
    tar = re.findall(r'chr\d+', fp.readline())[0]
    for line in fp:
        if (line.find(tar) == -1):
            print("Not valid")
            break
    

This should search for a number in the line and check for validity.

