def setFeatBits(rowLabels, featPrefix, doesContainList, notContainList):

    numSet = 0

    numRow = len(rowLabels)
    bitVec = numpy.zeros(numRow, dtype=numpy.bool)

    for iR in range(numRow):

        if (featPrefix != ""):
            if (not rowLabels[iR].startswith(featPrefix)): continue

        if (len(doesContainList) > 0):
            skipFlag = 1
            for aStr in doesContainList:
                if (rowLabels[iR].find(aStr) >= 0): skipFlag = 0

        if (len(notContainList) > 0):
            skipFlag = 0
            for aStr in notContainList:
                if (rowLabels[iR].find(aStr) >= 0): skipFlag = 1

        if (skipFlag): continue

        ## set bit if we get here ...
        bitVec[iR] = 1
        numSet += 1

    print featPrefix, doesContainList, notContainList, numRow, numSet
    if (numSet == 0):
        print " numSet=0 ... this is probably a problem ... "
        # sys.exit(-1)

    return (bitVec)