def matchFamilyIsland(genesO, gene2FamIslandD, searchStr):
    """Return the island number, family number, and gene name(s)
associated with searchStr in genesO.geneInfoD. Searches for a match in all
fields of geneInfoD."""
    geneMatchL = []
    for geneNum in genesO.geneInfoD:
        valueT = genesO.numToGeneInfo(geneNum)
        for value in valueT:
            if type(value) == str:
                if searchStr in value:
                    geneMatchL.append(geneNum)
                    break
    outL = []
    for geneNum in geneMatchL:
        geneName = genesO.numToName(geneNum)
        locusIslandNum, famNum, locusFamNum = gene2FamIslandD[geneNum]
        outL.append((geneName, locusIslandNum, famNum, locusFamNum))
    return outL
