public List<String> computeGreedyMotifSearch() {
        List<String> bestMotif;
        String consensus;
        List<String> kMer;
        int bestScore;

        bestMotif = generateInitialMotif(this.dnaList);
        consensus = generateConsensusString(bestMotif);
        bestScore = calculateMotifScore(bestMotif, consensus);
        kMer = generateKMer(this.dnaList.get(0));

        for (String s : kMer) {
            List<String> profileList = new ArrayList<String>();
            profileList.add(s);
            for (int i = 2 - 1; i <= t - 1; i++) {
                String profile = createProfile(profileList);
                MostProbableKMer mostProbableKMer = new MostProbableKMer(this.dnaList.get(i), k, profile);
                profileList.add((String) mostProbableKMer.calculateMostProbableKMer().get(0).get(1));
            }
            String newConsensusString = generateConsensusString(profileList);
            int motifScore = calculateMotifScore(profileList, newConsensusString);
            if (bestScore > motifScore) {
                bestScore = motifScore;
                bestMotif = profileList;
            }
        }

        return bestMotif;
    }