def exclude_SNPs_samples(inPrefix, outPrefix, exclusionSNP=None,
                         keepSample=None, transpose=False):
    """Exclude some SNPs and keep some samples using Plink."""
    if (exclusionSNP is None) and (keepSample is None):
        msg = "Something wront with development... work on that source code..."
        raise ProgramError(msg)

    plinkCommand = ["plink", "--noweb", "--bfile", inPrefix, "--out",
                    outPrefix]
    if exclusionSNP is not None:
        # We want to exclude SNP
        plinkCommand.extend(["--exclude", exclusionSNP])
    if keepSample is not None:
        # We want to keep samples
        plinkCommand.extend(["--keep", keepSample])
    if transpose:
        # We want a transpose ped file
        plinkCommand.extend(["--recode", "--transpose", "--tab"])
    else:
        # We want a binary file
        plinkCommand.append("--make-bed")
    runCommand(plinkCommand)
Exclude some SNPs and keep some samples using Plink.