The main function.

    :param argString: the options.

    :type argString: list

    These are the steps:

    1. Prints the options.
    2. Computes the frequencies using Plinl (:py:func:`computeFrequency`).
    3. Finds markers with MAF of 0, and saves them in a file
       (:py:func:`findSnpWithMaf0`).

def main(argString=None):
    """The main function.

    :param argString: the options.

    :type argString: list

    These are the steps:

    1. Prints the options.
    2. Computes the frequencies using Plinl (:py:func:`computeFrequency`).
    3. Finds markers with MAF of 0, and saves them in a file
       (:py:func:`findSnpWithMaf0`).

    """
    # Getting and checking the options
    args = parseArgs(argString)
    checkArgs(args)

    logger.info("Options used:")
    for key, value in vars(args).iteritems():
        logger.info("  --{} {}".format(key.replace("_", "-"), value))

    # Compute frequency using plink
    logger.info("Computing the frequencies using Plink")
    computeFrequency(args)

    # Read the freqency file
    logger.info("Flagging SNPs with MAF = 0")
    findSnpWithMaf0(args.out + ".frq", args.out)