• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Hilfestellung bei DNA Analyse

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Der Bruter V2, 10 mal besser gelöst - keine Ahnung warum das schreiben der ersten Variante so kompliziert war :unknown:
*edit:
Nochmal überarbeitet. Aber die Lösung stimmt auch nicht wie erfahren.... :dozey:

Macht sich zu nutze das wir nur eine Dreierkombinationen finden müssen ...

[src=python]
# Find 128 times block using combinations
block128 = "";

# Create the combinations to avoid single letter
# brute forcing which would not work easily
combinations = [];

for letter in alphabet:
for combination in alphabet:
combinations.append(letter + combination);

# The brute store
bruteDictionary = [];
bruteAlphabet = [];

# Find 128 occuring combinations for hinting
for combination in combinations:
if (dnaData.count(combination) == 128):
bruteDictionary.append(combination);

# Prepare brute alphabet of found combinations
for combination in bruteDictionary:
for letter in combination:
if not letter in bruteAlphabet:
bruteAlphabet.append(letter);


print("\nBruting using the following alpabet:");
print(bruteAlphabet);

hasBlock = False;
exitBrute = False;

for combination in bruteDictionary:
for letter in bruteAlphabet:
searchString = combination+letter;

if (hasBlock):
searchString = block128+letter;

print(searchString);
sleep(0.12);

count = dnaData.count(searchString)

if (count == 128):
block128 = searchString;
hasBlock = True;
exitBrute = True;
break

if (exitBrute):
break;

print("Block128 = %s" %(block128));[/src]
 
Zuletzt bearbeitet:

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #22
Du kannst deinen Code ja mal in einem Spoiler posten, die Main ist ja nicht wirklich Repräsentativ was under the hood passiert. :p

[src=java]
package sequenzenanalyse;
/**
*
* @author
*/
public class SequenzenAnalyse {

//Variablendeklaration

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
String actSequenz;
String actIncLetters;
int blockCounter;
String[] block128;

Sequenz S = new Sequenz();
S.sequenz(getfileList());

while(S.existNextSequenz()) {
actSequenz = S.readNextSequenz();

//Aufgabe 1 - Buchstaben ermitteln
actIncLetters = Analyse.includedLetters(actSequenz);
System.out.println("Alle enthaltenden Buchstaben in der Sequenz sind: " + actIncLetters);

//Aufgabe 2 - Baustein zählen
blockCounter = Analyse.countBlock(actSequenz, "EEE", actIncLetters);
System.out.println("Der Block " + '"' + "EEE" + '"' + " kommt " + blockCounter + " mal in der Sequenz vor.");

//Aufgabe 3 - Baustein 128x vorkommen
block128 = Analyse.searchBlock(actSequenz, actIncLetters, 128, 2, 6);
for(String rBlock: block128) {
System.out.println("Der Block " + '"' + rBlock + '"' + " kommt 128 mal vor.");
}
}
}

private static String[] getfileList() {
String[] listOfFilenames = new String[100];

listOfFilenames[0] = "testsequenzen/resultset1i.txt";
listOfFilenames[1] = "testsequenzen/resultset2i.txt";
listOfFilenames[2] = "testsequenzen/resultset3i.txt";
listOfFilenames[3] = "testsequenzen/resultset4i.txt";
listOfFilenames[4] = "testsequenzen/resultset5i.txt";
listOfFilenames[5] = "testsequenzen/resultset6i.txt";
listOfFilenames[6] = "testsequenzen/resultset7i.txt";
listOfFilenames[7] = "testsequenzen/resultset8i.txt";
listOfFilenames[8] = "testsequenzen/resultset9i.txt";
listOfFilenames[9] = "testsequenzen/resultset10i.txt";
listOfFilenames[10] = "testsequenzen/resultset11i.txt";
listOfFilenames[11] = "testsequenzen/resultset12i.txt";
listOfFilenames[12] = "testsequenzen/resultset13i.txt";
listOfFilenames[13] = "testsequenzen/resultset14i.txt";
listOfFilenames[14] = "testsequenzen/resultset15i.txt";
listOfFilenames[15] = "testsequenzen/resultset16i.txt";
listOfFilenames[16] = "testsequenzen/resultset17i.txt";
listOfFilenames[17] = "testsequenzen/resultset18i.txt";
listOfFilenames[18] = "testsequenzen/resultset19i.txt";
listOfFilenames[19] = "testsequenzen/resultset20i.txt";
listOfFilenames[20] = "testsequenzen/resultset21i.txt";
listOfFilenames[21] = "testsequenzen/resultset22i.txt";
listOfFilenames[22] = "testsequenzen/resultset23i.txt";
listOfFilenames[23] = "testsequenzen/resultset24i.txt";
listOfFilenames[24] = "testsequenzen/resultset25i.txt";
listOfFilenames[25] = "testsequenzen/resultset26i.txt";
listOfFilenames[26] = "testsequenzen/resultset27i.txt";
listOfFilenames[27] = "testsequenzen/resultset28i.txt";
listOfFilenames[28] = "testsequenzen/resultset29i.txt";
listOfFilenames[29] = "testsequenzen/resultset30i.txt";
listOfFilenames[30] = "testsequenzen/resultset31i.txt";
listOfFilenames[31] = "testsequenzen/resultset32i.txt";
listOfFilenames[32] = "testsequenzen/resultset33i.txt";
listOfFilenames[33] = "testsequenzen/resultset34i.txt";
listOfFilenames[34] = "testsequenzen/resultset35i.txt";
listOfFilenames[35] = "testsequenzen/resultset36i.txt";
listOfFilenames[36] = "testsequenzen/resultset37i.txt";
listOfFilenames[37] = "testsequenzen/resultset38i.txt";
listOfFilenames[38] = "testsequenzen/resultset39i.txt";
listOfFilenames[39] = "testsequenzen/resultset40i.txt";
listOfFilenames[40] = "testsequenzen/resultset41i.txt";
listOfFilenames[41] = "testsequenzen/resultset42i.txt";
listOfFilenames[42] = "testsequenzen/resultset43i.txt";
listOfFilenames[43] = "testsequenzen/resultset44i.txt";
listOfFilenames[44] = "testsequenzen/resultset45i.txt";
listOfFilenames[45] = "testsequenzen/resultset46i.txt";
listOfFilenames[46] = "testsequenzen/resultset47i.txt";
listOfFilenames[47] = "testsequenzen/resultset48i.txt";
listOfFilenames[48] = "testsequenzen/resultset49i.txt";
listOfFilenames[49] = "testsequenzen/resultset50i.txt";
listOfFilenames[50] = "testsequenzen/resultset51i.txt";
listOfFilenames[51] = "testsequenzen/resultset52i.txt";
listOfFilenames[52] = "testsequenzen/resultset53i.txt";
listOfFilenames[53] = "testsequenzen/resultset54i.txt";
listOfFilenames[54] = "testsequenzen/resultset55i.txt";
listOfFilenames[55] = "testsequenzen/resultset56i.txt";
listOfFilenames[56] = "testsequenzen/resultset57i.txt";
listOfFilenames[57] = "testsequenzen/resultset58i.txt";
listOfFilenames[58] = "testsequenzen/resultset59i.txt";
listOfFilenames[59] = "testsequenzen/resultset60i.txt";
listOfFilenames[60] = "testsequenzen/resultset61i.txt";
listOfFilenames[61] = "testsequenzen/resultset62i.txt";
listOfFilenames[62] = "testsequenzen/resultset63i.txt";
listOfFilenames[63] = "testsequenzen/resultset64i.txt";
listOfFilenames[64] = "testsequenzen/resultset65i.txt";
listOfFilenames[65] = "testsequenzen/resultset66i.txt";
listOfFilenames[66] = "testsequenzen/resultset67i.txt";
listOfFilenames[67] = "testsequenzen/resultset68i.txt";
listOfFilenames[68] = "testsequenzen/resultset69i.txt";
listOfFilenames[69] = "testsequenzen/resultset70i.txt";
listOfFilenames[70] = "testsequenzen/resultset71i.txt";
listOfFilenames[71] = "testsequenzen/resultset72i.txt";
listOfFilenames[72] = "testsequenzen/resultset73i.txt";
listOfFilenames[73] = "testsequenzen/resultset74i.txt";
listOfFilenames[74] = "testsequenzen/resultset75i.txt";
listOfFilenames[75] = "testsequenzen/resultset76i.txt";
listOfFilenames[76] = "testsequenzen/resultset77i.txt";
listOfFilenames[77] = "testsequenzen/resultset78i.txt";
listOfFilenames[78] = "testsequenzen/resultset79i.txt";
listOfFilenames[79] = "testsequenzen/resultset80i.txt";
listOfFilenames[80] = "testsequenzen/resultset81i.txt";
listOfFilenames[81] = "testsequenzen/resultset82i.txt";
listOfFilenames[82] = "testsequenzen/resultset83i.txt";
listOfFilenames[83] = "testsequenzen/resultset84i.txt";
listOfFilenames[84] = "testsequenzen/resultset85i.txt";
listOfFilenames[85] = "testsequenzen/resultset86i.txt";
listOfFilenames[86] = "testsequenzen/resultset87i.txt";
listOfFilenames[87] = "testsequenzen/resultset88i.txt";
listOfFilenames[88] = "testsequenzen/resultset89i.txt";
listOfFilenames[89] = "testsequenzen/resultset90i.txt";
listOfFilenames[90] = "testsequenzen/resultset91i.txt";
listOfFilenames[91] = "testsequenzen/resultset92i.txt";
listOfFilenames[92] = "testsequenzen/resultset93i.txt";
listOfFilenames[93] = "testsequenzen/resultset94i.txt";
listOfFilenames[94] = "testsequenzen/resultset95i.txt";
listOfFilenames[95] = "testsequenzen/resultset96i.txt";
listOfFilenames[96] = "testsequenzen/resultset97i.txt";
listOfFilenames[97] = "testsequenzen/resultset98i.txt";
listOfFilenames[98] = "testsequenzen/resultset99i.txt";
listOfFilenames[99] = "testsequenzen/resultset100i.txt";

return listOfFilenames;
}

}[/src]
[src=java]
package sequenzenanalyse;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

/**
*
* @author
*/
public class Sequenz {

//Variablendeklaration
/**
*
*/
String fileName;

/**
*
*/
String sequenz;

/**
*
*/
String[] fileList;

/**
*
*/
int fileCounter;

/**
*
* @param fileList
*/
public void sequenz(String[] fileList) {
this.fileList = fileList;
this.sequenz = null;
//this.fileCounter = 0;
this.fileCounter = 90;
}

/**
*
* @return
*/
public String actFileName() {
if (fileList[fileCounter] != null) {
System.out.println(fileList[fileCounter]);
return fileList[fileCounter];
} else {
return null;
}
}

/**
*
* @return
*/
public boolean existNextSequenz() {
if (fileList.length <= fileCounter) {
return false;
}
return true;
}



/**
*
* @param filename
* @return
*/
public String readSequenz(String fileName) {
String file = null;
System.out.println(fileName);

FileReader fr;
BufferedReader br;
try {
fr = new FileReader(fileName);
br = new BufferedReader(fr);

// Textzeilen der Datei einlesen:
String zeile;
zeile = br.readLine();
System.out.println("In der Datei steht: ");
while (zeile != null) {
if (file == null) {
file = zeile;
} else {
file += zeile;
}
// System.out.println(zeile);
zeile = br.readLine();
}

System.out.println(file);

fr.close();
}
catch (IOException e){
System.out.println("Fehler beim Lesen der Datei " + fileName);
System.out.println(e.toString());
}

if (file != null) {
this.sequenz = file;
} else {
System.out.println("Die Datei ist leer!");
}
return file;
}

/**
*
* @return
*/
public String readNextSequenz() {
// System.out.println(fileCounter);
// System.out.println(fileList[fileCounter]);
if (fileList[fileCounter] == null) {
System.out.println("Dateiliste enthält keine weiteren Einträge!");
return null;
} else {
String actSequenz = readSequenz(fileList[fileCounter]);
fileCounter++;
return actSequenz;
}
}


/**
*
* @return
*/
public String getActSequenz() {
return sequenz;
}
}
[/src]
[src=java]
package sequenzenanalyse;

import java.util.ArrayList;
import java.util.List;

/**
*
* @author
*/
public class Analyse {

/**
*
* @param sequenz
* @return
*/
public static String includedLetters(String sequenz) {
String[] allowedLetters = new String[26];
String Letters = "";

int i = 0;

allowedLetters[0] = "A";
allowedLetters[1] = "B";
allowedLetters[2] = "C";
allowedLetters[3] = "D";
allowedLetters[4] = "E";
allowedLetters[5] = "F";
allowedLetters[6] = "G";
allowedLetters[7] = "H";
allowedLetters[8] = "I";
allowedLetters[9] = "J";
allowedLetters[10] = "K";
allowedLetters[11] = "L";
allowedLetters[12] = "M";
allowedLetters[13] = "N";
allowedLetters[14] = "O";
allowedLetters[15] = "P";
allowedLetters[16] = "Q";
allowedLetters[17] = "R";
allowedLetters[18] = "S";
allowedLetters[19] = "T";
allowedLetters[20] = "U";
allowedLetters[21] = "V";
allowedLetters[22] = "W";
allowedLetters[23] = "X";
allowedLetters[24] = "Y";
allowedLetters[25] = "Z";


if(sequenz != null && !"".equals(sequenz)) {
while (allowedLetters.length > i) {
if(sequenz.contains(allowedLetters)) {
Letters += allowedLetters;
}
i++;
}
// System.out.println("Alle enthaltenden Buchstaben in der Sequenz sind: " + Letters);
return Letters;
}
return null;
}

/**
*
* @param block
* @param includedLetters
* @return
*/
public static boolean validBlock(String block, String includedLetters) {
boolean found;

for(char c: block.toCharArray()) {
found = false;
for(char incLetters: includedLetters.toCharArray()) {
if(c == incLetters) {
found = true;
break;
}
}
if (!found) {
return false;
}
}
// System.out.println("Alle Buchstaben des Blocks sind in der Sequenz vorhanden.");
return true;
}

/**
*
* @param sequenz
* @param block
* @return
*/
public static int countBlock(String sequenz, String block) {
int occurences = 0;

//false = Kein Überlappen der Bausteine
boolean eagerMatching = false;
if (0 != block.length()) {
for (int index = sequenz.indexOf(block, 0);
index != -1;
index = sequenz.indexOf(block, eagerMatching ? index + 1 : index + block.length())) {
occurences++;
}
}

// System.out.println("Der Block " + '"' + block + '"' + " kommt " + occurences + " mal in der Sequenz vor.");
return occurences;
}

/**
*
* @param sequenz
* @param block
* @param includedLetters
* @return
*/
public static int countBlock(String sequenz, String block, String includedLetters) {
if(!validBlock(block, includedLetters)) {
return 0;
}
return countBlock(sequenz, block);
}

// public static String[] buildBlocks(String includedLetters, int minLetters, int maxLetters) {
// List<String> blocksFound = new ArrayList<>();
// List<String> actBlocks = new ArrayList<>();
// String[] actBlocks2;
//
// String actBlock = "";
//
// for(char c: includedLetters.toCharArray()) {
// actBlocks.add(String.valueOf(c));
// }
//
// System.out.println("Mögliche Blöcke sind: ");
// do {
// actBlocks2 = new String[actBlocks.size()];
// actBlocks2 = actBlocks.toArray(actBlocks2);
// //actBlocks2 = actBlocks;
// actBlocks.clear();
//
// for(String s: actBlocks2) {
// for(char c: includedLetters.toCharArray()) {
// actBlock = s + c;
//
// if(actBlock.length() >= minLetters & actBlock.length() <= maxLetters) {
// blocksFound.add(actBlock);
// System.out.println(actBlock + " ist ein Block.");
// }
// actBlocks.add(actBlock);
// }
// }
//
// } while(actBlock.length() < maxLetters);
//
// String[] resultBlocks = new String[blocksFound.size()];
// resultBlocks = blocksFound.toArray(resultBlocks);
//
// return resultBlocks;
// }

/**
*
* @param sequenz
* @param block
* @return
*/
public static boolean existBlock(String sequenz, String block) {
if(sequenz.contains(block)) {
return true;
}
return false;
}

/**
*
* @param sequenz
* @param block
* @param includedLetters
* @return
*/
public static boolean existBlock(String sequenz, String block, String includedLetters) {
if(!validBlock(block, includedLetters)) {
return false;
}

return existBlock(sequenz, block);
}

/**
*
* @param sequenz
* @param includedLetters
* @param minLetters
* @param maxLetters
* @return
*/
public static String[] buildBlocks(String sequenz, String includedLetters, int minLetters, int maxLetters) {
List<String> blocksFound = new ArrayList<>();
List<String> actBlocks = new ArrayList<>();
String[] actBlocks2;

String actBlock = "";

for(char c: includedLetters.toCharArray()) {
actBlocks.add(String.valueOf(c));
}

// System.out.println("Mögliche Blöcke sind: ");
do {
actBlocks2 = new String[actBlocks.size()];
actBlocks2 = actBlocks.toArray(actBlocks2);
//actBlocks2 = actBlocks;
actBlocks.clear();

for(String s: actBlocks2) {
for(char c: includedLetters.toCharArray()) {
actBlock = s + c;

if(existBlock(sequenz, actBlock/*, includedLetters*/)) {

if(actBlock.length() >= minLetters & actBlock.length() <= maxLetters) {
blocksFound.add(actBlock);
// System.out.println(actBlock + " ist ein Block.");
}
actBlocks.add(actBlock);
}
}
}

} while(actBlock.length() < maxLetters);

String[] resultBlocks = new String[blocksFound.size()];
resultBlocks = blocksFound.toArray(resultBlocks);

return resultBlocks;
}

/**
*
* @param sequenz
* @param includedLetters
* @param occurences
* @return
*/
public static String[] searchBlock(String sequenz, String includedLetters, int occurences, int minLetters, int maxLetters) {
//Siehe methode oben
String[] validBlocks = buildBlocks(sequenz, includedLetters, minLetters, maxLetters);
List<String> foundBlocks = new ArrayList<>();

// System.out.println("Es wurden folgende Blocks mit der Häufigkeit " + occurences + " gefunden.");

for(String block: validBlocks) {
if(countBlock(sequenz, block, includedLetters) == occurences) {
// System.out.println(block);
foundBlocks.add(block);
}
}

//Doppelte Bausteine entfernen
//for(String actBlock: foundBlocks.toArray(validBlocks)) {
for(int i = foundBlocks.size()-1; i >= 0; i--) {
for(int j = i-1; j >= 0; j--) {
try {
if(foundBlocks.get(i).contains(foundBlocks.get(j))) {
foundBlocks.remove(foundBlocks.get(j));
i--;
} else {
if(foundBlocks.get(j).contains(foundBlocks.get(i))) {
foundBlocks.remove(foundBlocks.get(i));
j--;
}
}
} catch(IndexOutOfBoundsException e) {
System.out.println(e.toString());
}
}
}


String[] resultBlocks = new String[foundBlocks.size()];
resultBlocks = foundBlocks.toArray(resultBlocks);

return resultBlocks;
}

}
[/src]



Der Bruteforcer um die 128 Block Combo herauszufinden ist aber mehr schlecht als Recht, tut aber seinen Dienst, ich schreib den gerade nochmal neu :D
Wenn ich das richtig sehe, ist deiner aber immernoch wesentlich eleganzer als der, den ich geschrieben habe...

Ist hier vielleicht jemand schon eine Idee weiter wie man die vorgehen kann um die Bausteinen zu isolieren? Als Überprüfung sollte ja das Geschlechtsgen ersichtlich werden wenn ich die Aufgabenstellung richtig verstehe oder gibt es noch mehr Hinweise?
Das würde ich eigentlich fast genau so angehen wie mit dem 128x-Block. Kombinationen bilden, überprüfen ob die einmal oder häufiger vorkommen. Alle gefundenen Blöcke mit ihren Bestandteilen vergleichen und somit nur echte Bausteine behalten. Anschließend die Bestandteile der Reihe nach aus dem String entfernen und dann die nächsten Bausteine testen, ob diese noch vorhanden sind. So sollte man (vermutlich) ans Ziel kommen. Ich vermute das Geschlechtsgen ist dann der einzige Baustein, der einmal vorkommt. Falls mehrere einmal vorkommen, müsste man die anderen Sequenzen zu rate ziehen und testen, welche Bausteine in den anderen Sequenzen ebenfalls min. ein zweites Mal vorkommen und welche nur ein einziges mal. Die, die häufiger Vorkommen sind dann die gesuchten Gene.
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
@Roin:

Ich blick durch den Java Code auch nicht ganz durch um ehrlich zu sein - lange her das ich mal etwas mit Java gemacht habe ;)
Verwirrt mich sogar etwas :D - aber liegt wohl auch daran das ich keine Ahnung mehr von Java habe und du alles in Funktionen hast die auch Fallbacks und Corner Cases abdecken. :T

Zu deiner Idee, das klingt meiner bescheidenen Meinung nach Logisch und könnte funktionieren :T

Die Frage oder das Problem was ich daran sehe ist die Randomness der DNA Daten, wird ein Haufen Rechnerei einen Ausschnitt, der mögliche Baustein komplett oder ein Teilstück, zu überprüfen, Rattenschwanz an Arbeit ums genau zu sagen. ;)

Aber die Idee ist gut! :)
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #24
@theSplit:
Ich habe es gerade mit meiner searchBlock-funktion versucht indem ich nun nur noch überprüfe, ob der Block in der Sequenz vorkommt.
Ich kriege allerdings nun zeimlich viele Blöcke (5-6 Zeichen) mit der Häufigkeit > 1 heraus.

testsequenzen/resultset100i.txt
In der Datei steht:
EFFGADEAAAEIAEIEFFGAAEGEAEBFEFFGAEEEAEIAEIEAEBFAEGEFFGAEFFGAEFFGADEAAEAEBFEEEEAEBFDEAAEAEBFEFFGAEEEEFFGAAEIEAEBFAEGAEIEAEBFAEIEFFGADEAAEFFGADEAAEFFGADEAAEFFGAAEIEFFGAEFFGAEAEBFEEEEFFGAAEIEFFGAAEGAEIAEDEFFGAEFFGAEAEBFAEIEEEAEGEFFGAAEGAEGDEAAEFFGAEFFGAEFFGAEAEBFDEAAAEIAEIEAEBFEFFGAAEGAEDEFFGAAEIAEGAEIEFFGAEFFGADEAAEFFGAEAEBFEAEBFAEIEFFGAAEIACHGDAEIEFFGADEAADEAAAEIEFFGAAEGAEGAEGACHGDEAEBFEFFGAAEGEFFGAEAEBFEAEBFEAEBFEAEBFEFFGAAEDEAEBFAEDEFFGAEFFGAEFFGAEEEACHGDAEDAEIACHGDAEDAEGAEIEFFGAAEIDEAAEFFGAAEGEAEBFEAEBFEAEBFDEAAAEIEFFGAEFFGAAEIAEGAEGAEIEFFGAEAEBFAEIAEGAEIDEAADEAAEFFGAEFFGAEFFGAAEGEAEBFEFFGAEAEBFDEAAACHGDEFFGAEAEBFEAEBFAEGAEIAEIAEIAEIEFFGAEAEBFAEIEFFGAEFFGAEFFGAEFFGADEAAEFFGAEFFGAAEIAEGAEGEFFGAAEGEAEBFEFFGAAEGACHGDEAEBFEFFGAEEEDEAADEAADEAAEEEDEAAACHGDAEGEFFGAEAEBFAEGAEIACHGDDEAAACHGDEFFGAACHGDAEIEAEBFEAEBFEAEBFAEIEFFGADEAADEAADEAADEAADEAAEEEAEIEFFGAAEIEAEBFEFFGAEFFGAEFFGAACHGDAEIEFFGAEFFGAEFFGAEFFGAAEGAEGDEAAEAEBFEEEEFFGAAEIEFFGAAEIEFFGAAEGDEAAAEGAEIEFFGAAEIAEDAEGEFFGAAEIEFFGADEAAEFFGADEAAEEEDEAAEFFGAEAEBFAEIEAEBFEFFGAEFFGAEFFGAEAEBFACHGDEAEBFEFFGAAEIDEAAAEIAEGAEIEFFGADEAAACHGDAEGAEDAEGAEIEAEBFEAEBFDEAAAEGAEIAEGAEDEAEBFAEIDEAAEFFGADEAAEFFGAEFFGAEFFGAEAEBFEFFGAEFFGAAEGEEEEFFGAEFFGAEFFGAACHGDACHGDEFFGAEFFGAEFFGAAEIEFFGAEAEBFAEIEAEBFEFFGAEFFGAEAEBFEAEBFAEDAEGAEGEFFGAEFFGAEAEBFEAEBFEFFGAEEEEFFGAAEIEEEDEAADEAAEAEBFEFFGAAEIEAEBFDEAAAEGEFFGAEAEBFAEIEFFGADEAAAEDDEAADEAAEFFGAAEIEFFGAACHGDDEAAAEIEAEBFEFFGAAEGEFFGAACHGDAEGAEIEEEDEAAAEIEAEBFEAEBFAEIDEAAAEIDEAADEAAEFFGAEEEAEIEFFGAEFFGADEAAEAEBFEFFGAAEGEEEEFFGAAEDEEEEFFGAEAEBFEFFGAACHGDAEGEEEEFFGAAEIDEAAEFFGAEEEEFFGAEFFGAAEDEFFGAEAEBFAEIDEAAAEIEAEBFAEIEAEBFDEAAAEIEAEBFACHGDEFFGAEFFGAAEDEEEDEAAEEEDEAAAEGEEEEFFGAACHGDEAEBFAEIEAEBFDEAAEEEEFFGAAEIAEGEFFGAAEGEFFGAAEGEAEBFEFFGAEFFGADEAAEEEEAEBFEFFGAAEIEEEEEEAEIDEAAEFFGAEFFGAEFFGAAEIEFFGAEEEAEDAEDEAEBFAEDEAEBFAEIEFFGAEEEAEIEFFGAACHGDAEGAEIEFFGAEEEEFFGAAEIEFFGAAEGAEGEFFGADEAAAEIEAEBFEFFGAAEIDEAAACHGDAEDDEAAEAEBFEFFGADEAAEAEBFEFFGAACHGDAEIEEEEAEBFAEGAEDAEDAEIEFFGAACHGDDEAAAEGEFFGAEFFGAEFFGAEAEBFACHGDAEDAEGEAEBFAEDEFFGAEFFGADEAAEAEBFAEDEAEBFEFFGAEAEBFEFFGAAEGDEAAEFFGAEEEAEIEAEBFEFFGAEFFGADEAAEFFGAAEIAEIEFFGAAEIEEEEFFGAEFFGAEFFGAEAEBFEAEBFEFFGAAEIEEEDEAAAEIAEGAEIDEAADEAAEFFGAAEIAEIEFFGAAEIEEEAEIAEIEFFGAEFFGAEEEAEDAEIEEEDEAAAEIDEAAEFFGAEFFGAEFFGAEFFGAAEGACHGDAEDEFFGADEAAAEDEFFGAAEGEAEBFAEGEFFGAAEGACHGDEAEBFEFFGAEFFGAEFFGAEFFGAAEIAEIEFFGAAEIEFFGAEFFGADEAAEFFGAEAEBFDEAAEFFGAEFFGADEAAACHGDEFFGADEAAAEIEFFGAEEEAEDEAEBFAEGEFFGAEFFGAEFFGAEFFGADEAAEFFGAEFFGAAEIEFFGAEFFGAAEDAEIEEEAEIAEGAEIEFFGAEAEBFAEIDEAAAEDEFFGAEAEBFAEGDEAADEAAAEIEAEBFDEAAEFFGAEFFGAEAEBFEEEAEDAEGAEIACHGDEFFGAEEEAEIEAEBFAEIACHGDAEGACHGDAEIEFFGAAEIEEEEAEBFEFFGAAEDAEIEEEEAEBFAEDEFFGAEAEBFEAEBFDEAAAEIDEAAACHGDAEIEAEBFEFFGAAEDEEEAEGEFFGAEEEEFFGAEFFGAEFFGAEFFGADEAAAEGEFFGAAEDEFFGAEFFGAEAEBFAEGEFFGAGEIAUEGGDIBEDAEGAEIAEGEFFGADEAAEFFGAEFFGAAEDEEEDEAAAEIDEAAAEGAEIEFFGAEFFGAAEIAEGEFFGAAEIAEDDEAAAEIDEAAEFFGAEFFGAEFFGAEAEBFDEAAEFFGAAEIEAEBFEFFGADEAAEFFGAEFFGADEAAAEIDEAAACHGDEEEAEIDEAAAEIEAEBFEFFGAAEGEFFGAEAEBFDEAAEFFGAAEIEFFGAAEDEFFGADEAAEFFGAEFFGADEAAEAEBFEFFGAEFFGAEAEBFEFFGAEAEBFDEAAEEEEFFGAEAEBFAEGAEIAEGEFFGAEFFGAAEIAEIEFFGAEAEBFAEDEFFGAEFFGAEFFGAAEIAEDAEGDEAAAEIEFFGAEEEAEGEFFGAACHGDDEAAEEEAEDEEEEFFGAEEEEFFGAEFFGAEFFGAEFFGAEAEBFAEGAEGEFFGADEAADEAAEFFGAEFFGADEAADEAAAEIEFFGAEAEBFEAEBFDEAADEAAEFFGAAEIAEGEAEBFDEAAAEIDEAAEFFGAEEEEFFGADEAAACHGDEFFGAEEEDEAAAEDEAEBFAEGAEGDEAAEFFGAEAEBFEFFGAEFFGAAEIEEEEAEBFEAEBFEFFGAAEIDEAAEFFGAAEIAEGEEEEFFGADEAAAEDDEAAEEEAEIACHGDAEIDEAAAEIAEIEEEDEAAAEIAEDEAEBFEFFGADEAAEFFGAAEDEFFGAAEIAEIEEEEFFGADEAAAEGACHGDEAEBFEFFGAEFFGAEAEBFEFFGADEAAEAEBFAEIDEAAEFFGAAEIEFFGAAEIEAEBFEFFGAEAEBFEEEDEAAEEEACHGDEFFGAAEGEFFGADEAAACHGDDEAAEFFGAEAEBFEAEBFEFFGAEAEBFEFFGAAEIACHGDAEIEFFGAAEIAEIAEGDEAAAEDACHGDEFFGAEFFGAAEDEAEBFDEAAEFFGAAEIEEEDEAADEAAEFFGAACHGDAEGEAEBFEFFGAAEGEFFGAACHGDEEEAEGEAEBFACHGDDEAAEFFGAAEIDEAAEEEAEGAEDEEEACHGDAEIDEAAEFFGAEAEBFDEAAEFFGAEEEEFFGAEFFGADEAAAEDAEIACHGDDEAAEFFGAEEEDEAAAEGAEGEFFGAAEIEFFGAEFFGAAEGDEAAACHGDEAEBFDEAAEFFGAEFFGAAEIEFFGAEFFGAAEDEFFGADEAAEFFGADEAADEAAEEEAEGAEGEEEAEGDEAAEAEBFEFFGAEFFGAEAEBFAEGAEGDEAADEAAACHGDAEDEEEEFFGAAEGAEIEEEAEGACHGDAEIEFFGAEFFGAACHGDEEEDEAAEFFGADEAA
Alle enthaltenden Buchstaben in der Sequenz sind: ABCDEFGHIU
Der Block "EEE" kommt 72 mal in der Sequenz vor.
Der Block "EAEBF" kommt 128 mal vor.
Der Block "AAACHG" kommt min. 1 mal vor.
Der Block "AAAEDA" kommt min. 1 mal vor.
Der Block "AAAEDD" kommt min. 1 mal vor.
Der Block "AAAEDE" kommt min. 1 mal vor.
Der Block "AAAEGA" kommt min. 1 mal vor.
Der Block "AAAEGE" kommt min. 1 mal vor.
Der Block "AAAEIA" kommt min. 1 mal vor.
Der Block "AAAEID" kommt min. 1 mal vor.
Der Block "AAAEIE" kommt min. 1 mal vor.
Der Block "AACHGD" kommt min. 1 mal vor.
Der Block "AADEAA" kommt min. 1 mal vor.
Der Block "AAEAEB" kommt min. 1 mal vor.
Der Block "AAEDAC" kommt min. 1 mal vor.
Der Block "AAEDAE" kommt min. 1 mal vor.
Der Block "AAEDDE" kommt min. 1 mal vor.
Der Block "AAEDEA" kommt min. 1 mal vor.
Der Block "AAEDEE" kommt min. 1 mal vor.
Der Block "AAEDEF" kommt min. 1 mal vor.
Der Block "AAEEEA" kommt min. 1 mal vor.
Der Block "AAEEED" kommt min. 1 mal vor.
Der Block "AAEEEE" kommt min. 1 mal vor.
Der Block "AAEFFG" kommt min. 1 mal vor.
Der Block "AAEGAC" kommt min. 1 mal vor.
Der Block "AAEGAE" kommt min. 1 mal vor.
Der Block "AAEGDE" kommt min. 1 mal vor.
Der Block "AAEGEA" kommt min. 1 mal vor.
Der Block "AAEGEE" kommt min. 1 mal vor.
Der Block "AAEGEF" kommt min. 1 mal vor.
Der Block "AAEIAC" kommt min. 1 mal vor.
Der Block "AAEIAE" kommt min. 1 mal vor.
Der Block "AAEIDE" kommt min. 1 mal vor.
Der Block "AAEIEA" kommt min. 1 mal vor.
Der Block "AAEIEE" kommt min. 1 mal vor.
Der Block "AAEIEF" kommt min. 1 mal vor.
Der Block "ACHGDA" kommt min. 1 mal vor.
Der Block "ACHGDD" kommt min. 1 mal vor.
Der Block "ACHGDE" kommt min. 1 mal vor.
Der Block "ADEAAA" kommt min. 1 mal vor.
Der Block "ADEAAD" kommt min. 1 mal vor.
Der Block "ADEAAE" kommt min. 1 mal vor.
Der Block "AEAEBF" kommt min. 1 mal vor.
Der Block "AEBFAC" kommt min. 1 mal vor.
Der Block "AEBFAE" kommt min. 1 mal vor.
Der Block "AEBFDE" kommt min. 1 mal vor.
Der Block "AEBFEA" kommt min. 1 mal vor.
Der Block "AEBFEE" kommt min. 1 mal vor.
Der Block "AEBFEF" kommt min. 1 mal vor.
Der Block "AEDACH" kommt min. 1 mal vor.
Der Block "AEDAED" kommt min. 1 mal vor.
Der Block "AEDAEG" kommt min. 1 mal vor.
Der Block "AEDAEI" kommt min. 1 mal vor.
Der Block "AEDDEA" kommt min. 1 mal vor.
Der Block "AEDEAE" kommt min. 1 mal vor.
Der Block "AEDEEE" kommt min. 1 mal vor.
Der Block "AEDEFF" kommt min. 1 mal vor.
Der Block "AEEEAC" kommt min. 1 mal vor.
Der Block "AEEEAE" kommt min. 1 mal vor.
Der Block "AEEEDE" kommt min. 1 mal vor.
Der Block "AEEEEA" kommt min. 1 mal vor.
Der Block "AEEEEF" kommt min. 1 mal vor.
Der Block "AEFFGA" kommt min. 1 mal vor.
Der Block "AEGACH" kommt min. 1 mal vor.
Der Block "AEGAED" kommt min. 1 mal vor.
Der Block "AEGAEG" kommt min. 1 mal vor.
Der Block "AEGAEI" kommt min. 1 mal vor.
Der Block "AEGDEA" kommt min. 1 mal vor.
Der Block "AEGEAE" kommt min. 1 mal vor.
Der Block "AEGEEE" kommt min. 1 mal vor.
Der Block "AEGEFF" kommt min. 1 mal vor.
Der Block "AEIACH" kommt min. 1 mal vor.
Der Block "AEIAED" kommt min. 1 mal vor.
Der Block "AEIAEG" kommt min. 1 mal vor.
Der Block "AEIAEI" kommt min. 1 mal vor.
Der Block "AEIDEA" kommt min. 1 mal vor.
Der Block "AEIEAE" kommt min. 1 mal vor.
Der Block "AEIEEE" kommt min. 1 mal vor.
Der Block "AEIEFF" kommt min. 1 mal vor.
Der Block "AGEIAU" kommt min. 1 mal vor.
Der Block "AUEGGD" kommt min. 1 mal vor.
Der Block "BEDAEG" kommt min. 1 mal vor.
Der Block "BFACHG" kommt min. 1 mal vor.
Der Block "BFAEDA" kommt min. 1 mal vor.
Der Block "BFAEDE" kommt min. 1 mal vor.
Der Block "BFAEGA" kommt min. 1 mal vor.
Der Block "BFAEGD" kommt min. 1 mal vor.
Der Block "BFAEGE" kommt min. 1 mal vor.
Der Block "BFAEIA" kommt min. 1 mal vor.
Der Block "BFAEID" kommt min. 1 mal vor.
Der Block "BFAEIE" kommt min. 1 mal vor.
Der Block "BFDEAA" kommt min. 1 mal vor.
Der Block "BFEAEB" kommt min. 1 mal vor.
Der Block "BFEEEA" kommt min. 1 mal vor.
Der Block "BFEEED" kommt min. 1 mal vor.
Der Block "BFEEEE" kommt min. 1 mal vor.
Der Block "BFEFFG" kommt min. 1 mal vor.
Der Block "CHGDAC" kommt min. 1 mal vor.
Der Block "CHGDAE" kommt min. 1 mal vor.
Der Block "CHGDDE" kommt min. 1 mal vor.
Der Block "CHGDEA" kommt min. 1 mal vor.
Der Block "CHGDEE" kommt min. 1 mal vor.
Der Block "CHGDEF" kommt min. 1 mal vor.
Der Block "DACHGD" kommt min. 1 mal vor.
Der Block "DAEDAE" kommt min. 1 mal vor.
Der Block "DAEDDE" kommt min. 1 mal vor.
Der Block "DAEDEA" kommt min. 1 mal vor.
Der Block "DAEDEE" kommt min. 1 mal vor.
Der Block "DAEDEF" kommt min. 1 mal vor.
Der Block "DAEGAC" kommt min. 1 mal vor.
Der Block "DAEGAE" kommt min. 1 mal vor.
Der Block "DAEGDE" kommt min. 1 mal vor.
Der Block "DAEGEA" kommt min. 1 mal vor.
Der Block "DAEGEE" kommt min. 1 mal vor.
Der Block "DAEGEF" kommt min. 1 mal vor.
Der Block "DAEIAC" kommt min. 1 mal vor.
Der Block "DAEIDE" kommt min. 1 mal vor.
Der Block "DAEIEA" kommt min. 1 mal vor.
Der Block "DAEIEE" kommt min. 1 mal vor.
Der Block "DAEIEF" kommt min. 1 mal vor.
Der Block "DDEAAA" kommt min. 1 mal vor.
Der Block "DDEAAD" kommt min. 1 mal vor.
Der Block "DDEAAE" kommt min. 1 mal vor.
Der Block "DEAAAC" kommt min. 1 mal vor.
Der Block "DEAAAE" kommt min. 1 mal vor.
Der Block "DEAADE" kommt min. 1 mal vor.
Der Block "DEAAEA" kommt min. 1 mal vor.
Der Block "DEAAEE" kommt min. 1 mal vor.
Der Block "DEAAEF" kommt min. 1 mal vor.
Der Block "DEAEBF" kommt min. 1 mal vor.
Der Block "DEEEAC" kommt min. 1 mal vor.
Der Block "DEEEAE" kommt min. 1 mal vor.
Der Block "DEEEDE" kommt min. 1 mal vor.
Der Block "DEEEEF" kommt min. 1 mal vor.
Der Block "DEFFGA" kommt min. 1 mal vor.
Der Block "DIBEDA" kommt min. 1 mal vor.
Der Block "EAAACH" kommt min. 1 mal vor.
Der Block "EAAAED" kommt min. 1 mal vor.
Der Block "EAAAEG" kommt min. 1 mal vor.
Der Block "EAAAEI" kommt min. 1 mal vor.
Der Block "EAADEA" kommt min. 1 mal vor.
Der Block "EAAEAE" kommt min. 1 mal vor.
Der Block "EAAEEE" kommt min. 1 mal vor.
Der Block "EAAEFF" kommt min. 1 mal vor.
Der Block "EACHGD" kommt min. 1 mal vor.
Der Block "EAEBFA" kommt min. 1 mal vor.
Der Block "EAEBFD" kommt min. 1 mal vor.
Der Block "EAEBFE" kommt min. 1 mal vor.
Der Block "EAEDAE" kommt min. 1 mal vor.
Der Block "EAEDEA" kommt min. 1 mal vor.
Der Block "EAEDEE" kommt min. 1 mal vor.
Der Block "EAEGAC" kommt min. 1 mal vor.
Der Block "EAEGAE" kommt min. 1 mal vor.
Der Block "EAEGDE" kommt min. 1 mal vor.
Der Block "EAEGEA" kommt min. 1 mal vor.
Der Block "EAEGEF" kommt min. 1 mal vor.
Der Block "EAEIAC" kommt min. 1 mal vor.
Der Block "EAEIAE" kommt min. 1 mal vor.
Der Block "EAEIDE" kommt min. 1 mal vor.
Der Block "EAEIEA" kommt min. 1 mal vor.
Der Block "EAEIEF" kommt min. 1 mal vor.
Der Block "EBFACH" kommt min. 1 mal vor.
Der Block "EBFAED" kommt min. 1 mal vor.
Der Block "EBFAEG" kommt min. 1 mal vor.
Der Block "EBFAEI" kommt min. 1 mal vor.
Der Block "EBFDEA" kommt min. 1 mal vor.
Der Block "EBFEAE" kommt min. 1 mal vor.
Der Block "EBFEEE" kommt min. 1 mal vor.
Der Block "EBFEFF" kommt min. 1 mal vor.
Der Block "EDACHG" kommt min. 1 mal vor.
Der Block "EDAEDA" kommt min. 1 mal vor.
Der Block "EDAEDE" kommt min. 1 mal vor.
Der Block "EDAEGA" kommt min. 1 mal vor.
Der Block "EDAEGD" kommt min. 1 mal vor.
Der Block "EDAEGE" kommt min. 1 mal vor.
Der Block "EDAEIA" kommt min. 1 mal vor.
Der Block "EDAEIE" kommt min. 1 mal vor.
Der Block "EDDEAA" kommt min. 1 mal vor.
Der Block "EDEAAA" kommt min. 1 mal vor.
Der Block "EDEAAD" kommt min. 1 mal vor.
Der Block "EDEAAE" kommt min. 1 mal vor.
Der Block "EDEAEB" kommt min. 1 mal vor.
Der Block "EDEEEA" kommt min. 1 mal vor.
Der Block "EDEEED" kommt min. 1 mal vor.
Der Block "EDEEEE" kommt min. 1 mal vor.
Der Block "EDEFFG" kommt min. 1 mal vor.
Der Block "EEACHG" kommt min. 1 mal vor.
Der Block "EEAEBF" kommt min. 1 mal vor.
Der Block "EEAEDA" kommt min. 1 mal vor.
Der Block "EEAEDE" kommt min. 1 mal vor.
Der Block "EEAEGA" kommt min. 1 mal vor.
Der Block "EEAEGD" kommt min. 1 mal vor.
Der Block "EEAEGE" kommt min. 1 mal vor.
Der Block "EEAEIA" kommt min. 1 mal vor.
Der Block "EEAEID" kommt min. 1 mal vor.
Der Block "EEAEIE" kommt min. 1 mal vor.
Der Block "EEDEAA" kommt min. 1 mal vor.
Der Block "EEEACH" kommt min. 1 mal vor.
Der Block "EEEAEB" kommt min. 1 mal vor.
Der Block "EEEAED" kommt min. 1 mal vor.
Der Block "EEEAEG" kommt min. 1 mal vor.
Der Block "EEEAEI" kommt min. 1 mal vor.
Der Block "EEEDEA" kommt min. 1 mal vor.
Der Block "EEEEAE" kommt min. 1 mal vor.
Der Block "EEEEEA" kommt min. 1 mal vor.
Der Block "EEEEEE" kommt min. 1 mal vor.
Der Block "EEEEFF" kommt min. 1 mal vor.
Der Block "EEEFFG" kommt min. 1 mal vor.
Der Block "EEFFGA" kommt min. 1 mal vor.
Der Block "EFFGAA" kommt min. 1 mal vor.
Der Block "EFFGAD" kommt min. 1 mal vor.
Der Block "EFFGAE" kommt min. 1 mal vor.
Der Block "EFFGAG" kommt min. 1 mal vor.
Der Block "EGACHG" kommt min. 1 mal vor.
Der Block "EGAEDA" kommt min. 1 mal vor.
Der Block "EGAEDE" kommt min. 1 mal vor.
Der Block "EGAEGA" kommt min. 1 mal vor.
Der Block "EGAEGD" kommt min. 1 mal vor.
Der Block "EGAEGE" kommt min. 1 mal vor.
Der Block "EGAEIA" kommt min. 1 mal vor.
Der Block "EGAEID" kommt min. 1 mal vor.
Der Block "EGAEIE" kommt min. 1 mal vor.
Der Block "EGDEAA" kommt min. 1 mal vor.
Der Block "EGEAEB" kommt min. 1 mal vor.
Der Block "EGEEEA" kommt min. 1 mal vor.
Der Block "EGEEEE" kommt min. 1 mal vor.
Der Block "EGEFFG" kommt min. 1 mal vor.
Der Block "EGGDIB" kommt min. 1 mal vor.
Der Block "EIACHG" kommt min. 1 mal vor.
Der Block "EIAEDA" kommt min. 1 mal vor.
Der Block "EIAEDD" kommt min. 1 mal vor.
Der Block "EIAEDE" kommt min. 1 mal vor.
Der Block "EIAEGA" kommt min. 1 mal vor.
Der Block "EIAEGD" kommt min. 1 mal vor.
Der Block "EIAEGE" kommt min. 1 mal vor.
Der Block "EIAEIA" kommt min. 1 mal vor.
Der Block "EIAEIE" kommt min. 1 mal vor.
Der Block "EIAUEG" kommt min. 1 mal vor.
Der Block "EIDEAA" kommt min. 1 mal vor.
Der Block "EIEAEB" kommt min. 1 mal vor.
Der Block "EIEEEA" kommt min. 1 mal vor.
Der Block "EIEEED" kommt min. 1 mal vor.
Der Block "EIEEEE" kommt min. 1 mal vor.
Der Block "EIEFFG" kommt min. 1 mal vor.
Der Block "FACHGD" kommt min. 1 mal vor.
Der Block "FAEDAE" kommt min. 1 mal vor.
Der Block "FAEDEA" kommt min. 1 mal vor.
Der Block "FAEDEF" kommt min. 1 mal vor.
Der Block "FAEGAE" kommt min. 1 mal vor.
Der Block "FAEGDE" kommt min. 1 mal vor.
Der Block "FAEGEF" kommt min. 1 mal vor.
Der Block "FAEIAC" kommt min. 1 mal vor.
Der Block "FAEIAE" kommt min. 1 mal vor.
Der Block "FAEIDE" kommt min. 1 mal vor.
Der Block "FAEIEA" kommt min. 1 mal vor.
Der Block "FAEIEE" kommt min. 1 mal vor.
Der Block "FAEIEF" kommt min. 1 mal vor.
Der Block "FDEAAA" kommt min. 1 mal vor.
Der Block "FDEAAD" kommt min. 1 mal vor.
Der Block "FDEAAE" kommt min. 1 mal vor.
Der Block "FEAEBF" kommt min. 1 mal vor.
Der Block "FEEEAE" kommt min. 1 mal vor.
Der Block "FEEEDE" kommt min. 1 mal vor.
Der Block "FEEEEA" kommt min. 1 mal vor.
Der Block "FEEEEF" kommt min. 1 mal vor.
Der Block "FEFFGA" kommt min. 1 mal vor.
Der Block "FFGAAC" kommt min. 1 mal vor.
Der Block "FFGAAE" kommt min. 1 mal vor.
Der Block "FFGADE" kommt min. 1 mal vor.
Der Block "FFGAEA" kommt min. 1 mal vor.
Der Block "FFGAEE" kommt min. 1 mal vor.
Der Block "FFGAEF" kommt min. 1 mal vor.
Der Block "FFGAGE" kommt min. 1 mal vor.
Der Block "FGAACH" kommt min. 1 mal vor.
Der Block "FGAAED" kommt min. 1 mal vor.
Der Block "FGAAEG" kommt min. 1 mal vor.
Der Block "FGAAEI" kommt min. 1 mal vor.
Der Block "FGADEA" kommt min. 1 mal vor.
Der Block "FGAEAE" kommt min. 1 mal vor.
Der Block "FGAEEE" kommt min. 1 mal vor.
Der Block "FGAEFF" kommt min. 1 mal vor.
Der Block "FGAGEI" kommt min. 1 mal vor.
Der Block "GAACHG" kommt min. 1 mal vor.
Der Block "GAAEDA" kommt min. 1 mal vor.
Der Block "GAAEDE" kommt min. 1 mal vor.
Der Block "GAAEGA" kommt min. 1 mal vor.
Der Block "GAAEGD" kommt min. 1 mal vor.
Der Block "GAAEGE" kommt min. 1 mal vor.
Der Block "GAAEIA" kommt min. 1 mal vor.
Der Block "GAAEID" kommt min. 1 mal vor.
Der Block "GAAEIE" kommt min. 1 mal vor.
Der Block "GACHGD" kommt min. 1 mal vor.
Der Block "GADEAA" kommt min. 1 mal vor.
Der Block "GAEAEB" kommt min. 1 mal vor.
Der Block "GAEDAE" kommt min. 1 mal vor.
Der Block "GAEDEA" kommt min. 1 mal vor.
Der Block "GAEDEE" kommt min. 1 mal vor.
Der Block "GAEDEF" kommt min. 1 mal vor.
Der Block "GAEEEA" kommt min. 1 mal vor.
Der Block "GAEEED" kommt min. 1 mal vor.
Der Block "GAEEEE" kommt min. 1 mal vor.
Der Block "GAEFFG" kommt min. 1 mal vor.
Der Block "GAEGAC" kommt min. 1 mal vor.
Der Block "GAEGAE" kommt min. 1 mal vor.
Der Block "GAEGDE" kommt min. 1 mal vor.
Der Block "GAEGEE" kommt min. 1 mal vor.
Der Block "GAEGEF" kommt min. 1 mal vor.
Der Block "GAEIAC" kommt min. 1 mal vor.
Der Block "GAEIAE" kommt min. 1 mal vor.
Der Block "GAEIDE" kommt min. 1 mal vor.
Der Block "GAEIEA" kommt min. 1 mal vor.
Der Block "GAEIEE" kommt min. 1 mal vor.
Der Block "GAEIEF" kommt min. 1 mal vor.
Der Block "GAGEIA" kommt min. 1 mal vor.
Der Block "GDACHG" kommt min. 1 mal vor.
Der Block "GDAEDA" kommt min. 1 mal vor.
Der Block "GDAEDD" kommt min. 1 mal vor.
Der Block "GDAEDE" kommt min. 1 mal vor.
Der Block "GDAEGA" kommt min. 1 mal vor.
Der Block "GDAEGE" kommt min. 1 mal vor.
Der Block "GDAEID" kommt min. 1 mal vor.
Der Block "GDAEIE" kommt min. 1 mal vor.
Der Block "GDDEAA" kommt min. 1 mal vor.
Der Block "GDEAAA" kommt min. 1 mal vor.
Der Block "GDEAAD" kommt min. 1 mal vor.
Der Block "GDEAAE" kommt min. 1 mal vor.
Der Block "GDEAEB" kommt min. 1 mal vor.
Der Block "GDEEEA" kommt min. 1 mal vor.
Der Block "GDEEED" kommt min. 1 mal vor.
Der Block "GDEFFG" kommt min. 1 mal vor.
Der Block "GDIBED" kommt min. 1 mal vor.
Der Block "GEAEBF" kommt min. 1 mal vor.
Der Block "GEEEAE" kommt min. 1 mal vor.
Der Block "GEEEEF" kommt min. 1 mal vor.
Der Block "GEFFGA" kommt min. 1 mal vor.
Der Block "GEIAUE" kommt min. 1 mal vor.
Der Block "GGDIBE" kommt min. 1 mal vor.
Der Block "HGDACH" kommt min. 1 mal vor.
Der Block "HGDAED" kommt min. 1 mal vor.
Der Block "HGDAEG" kommt min. 1 mal vor.
Der Block "HGDAEI" kommt min. 1 mal vor.
Der Block "HGDDEA" kommt min. 1 mal vor.
Der Block "HGDEAE" kommt min. 1 mal vor.
Der Block "HGDEEE" kommt min. 1 mal vor.
Der Block "HGDEFF" kommt min. 1 mal vor.
Der Block "IACHGD" kommt min. 1 mal vor.
Der Block "IAEDAE" kommt min. 1 mal vor.
Der Block "IAEDDE" kommt min. 1 mal vor.
Der Block "IAEDEA" kommt min. 1 mal vor.
Der Block "IAEDEF" kommt min. 1 mal vor.
Der Block "IAEGAE" kommt min. 1 mal vor.
Der Block "IAEGDE" kommt min. 1 mal vor.
Der Block "IAEGEA" kommt min. 1 mal vor.
Der Block "IAEGEE" kommt min. 1 mal vor.
Der Block "IAEGEF" kommt min. 1 mal vor.
Der Block "IAEIAE" kommt min. 1 mal vor.
Der Block "IAEIEA" kommt min. 1 mal vor.
Der Block "IAEIEE" kommt min. 1 mal vor.
Der Block "IAEIEF" kommt min. 1 mal vor.
Der Block "IAUEGG" kommt min. 1 mal vor.
Der Block "IBEDAE" kommt min. 1 mal vor.
Der Block "IDEAAA" kommt min. 1 mal vor.
Der Block "IDEAAD" kommt min. 1 mal vor.
Der Block "IDEAAE" kommt min. 1 mal vor.
Der Block "IEAEBF" kommt min. 1 mal vor.
Der Block "IEEEAE" kommt min. 1 mal vor.
Der Block "IEEEDE" kommt min. 1 mal vor.
Der Block "IEEEEA" kommt min. 1 mal vor.
Der Block "IEEEEE" kommt min. 1 mal vor.
Der Block "IEEEEF" kommt min. 1 mal vor.
Der Block "IEFFGA" kommt min. 1 mal vor.
Der Block "UEGGDI" kommt min. 1 mal vor.

Da sind allerdings derzeit noch doppelte Bausteine drin, bzw AAA zB scheint ein Baustein zu sein, sowie EEE (wie angegeben). Die habe ich noch nicht entsprechend isoliert.
Also mein Gedanke klappt leider nicht zu 100%, da die Auftrittshäufigkeit anfangs unbekannt ist.

Eine Sequenz besteht aus etwa 4096 Zeichen - Da gehe ich von max. 100 Bausteinen - eher ~40 aus.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Mein Gedanke war das man mit einer Breite von 50 Zeichen startet (als Beispiel) und dann immer kleiner wird, die Dateien durchsucht nach Auftreteten des Blocks, und dann heruntergeht in der Breite bis der Block nicht weiter verkleinert werden kann - aber in mehr als 1 mal auftaucht. Das man sich also quasi annährt.

Hier sehe ich nur das Problem, man kann dann auch so lange herunterbrechen bis man nur die einzelnen Komponenten eines Bausteins übrig hat, von Beispiel: DAHG nur DA weil die Sequenz auch irgendwo als eine auftauchen könnte.

Zweite Idee: Die Sequenzen/Dateien nach "EEE" (wenn es ein Block ist) durchsuchen und nach dem anderen 128 mal auftretenden Block und wie gehabt zwischen diesen beiden anfangen zu isolieren. Wenn man Glück hat könnte, ich hab das noch nicht versucht, wäre mein nächster Schritt, einzelne Bausteine oder gar einen exakten Baustein isolieren. Das wäre dann ein exakter Treffer und würde die Analyse schon einen Schritt voranbringen, meine ich.
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #26
Mein Sequenzenübergreifender Code für den 128x Block.

Lösung ist übrigens:
(Der Block "EAEBF" kommt in allen Sequenzen 128 mal vor.)
[src=java]
while(...)
//Aufgabe 3 - Baustein 128x vorkommen
if(i0 == 0) {
block128 = Analyse.searchBlock(actSequenz, actIncLetters, 128, 2, 6);
for(String rBlock: block128) {
System.out.println("Der Block " + '"' + rBlock + '"' + " kommt 128 mal vor.");
}
} else {
block128_2 = new ArrayList<>(Arrays.asList(block128));

for(int i = block128_2.size()-1; i >= 0; i--) {
try {
if(Analyse.countBlock(actSequenz, block128_2.get(i)) != 128) {
System.out.println("Der Block " + '"' + block128_2.get(i) + '"' + " kommt in der Sequenz NICHT 128x vor.");
block128_2.remove(i);

}
} catch(IndexOutOfBoundsException e) {
System.out.println(e.toString());
}
}
block128 = new String[block128_2.size()];
block128 = block128_2.toArray(block128);
}
if(i0 == 99-S.fileCounterStart) {
if(block128.length == 1) {
the128Block = block128[0];
System.out.println("Der Block " + '"' + the128Block + '"' + " kommt in allen Sequenzen 128 mal vor.");
} else {
if(block128.length > 1) {
System.out.println("Es kommt mehr als 1 Block in allen Sequenzen 128 mal vor.");
} else {
System.out.println("Es kommt kein Block in allen Sequenzen 128 mal vor.");
}
}
}

//Blöcke die min. 1 mal vorkommen
// allBlocks = Analyse.includedBlocks(actSequenz, actIncLetters, 2, 6, null);
// for(String rBlock: allBlocks) {
// System.out.println("Der Block " + '"' + rBlock + '"' + " kommt min. 1 mal vor.");
// }

//Schleifenzähler
i0++;[/src]
Wie kann ich die scheiße mal ordentlich benennen? Ich brauche häufig eine und die selbe Variable mehrfach, doch dennoch darf ich den Wert nicht überschreiben... Gibts da irgendeinen Vorschlag? Meine aktuelle Variablenbenennung finde ich sehr... dürftig.

Hier sehe ich nur das Problem, man kann dann auch so lange herunterbrechen bis man nur die einzelnen Komponenten eines Bausteins übrig hat, von Beispiel: DAHG nur DA weil die Sequenz auch irgendwo als eine auftauchen könnte.
Genau das ist das Problem, weshalb meine Idee ebenfalls nicht funktioniert hat - nur das ich umgekehrt rangegangen bin und die kleinen durch die größeren Bausteine ersetzt habe und nicht umgekehrt.

Zweite Idee: Die Sequenzen/Dateien nach "EEE" (wenn es ein Block ist) durchsuchen und nach dem anderen 128 mal auftretenden Block und wie gehabt zwischen diesen beiden anfangen zu isolieren. Wenn man Glück hat, ich hab das noch nicht versucht, wäre mein nächster Schritt, einzelne Bausteine oder gar einen exakten Baustein isolieren. Das wäre dann ein exakter Treffer und würde die Analyse schon einen Schritt voranbringen, meine ich.
So in der Richtung muss man das wohl machen. Die Sequenzen an bekannten Bausteinen aufteilen und dann als eigenständige Sequenzen betrachten und zwischen diesen übergreifend testen. Wenn dann eine Sequenz (zufälligerweise) nur eine Länge von 3 hat, wäre das ein Baustein, den man wieder als Trennzeichen für alle anderen Sequenzen nutzen könnte.
Wie ich das aber gescheit programmieren soll ist mir noch ein Rätsel.
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Verdammte Axt, du hast Recht - habs gerade mit Notepad++ überprüft mit in allen Dateien suchen ... :T
Jetzt muß ich schauen warum mein Code die Abfolge nicht findet ... und ich dachte es wäre so einfach :o

Also von vorne anfangen... ^^
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #28
@theSplit:
Nochmal der relevante Code meiner Analyse-Classe mit ein paar weiteren Kommentaren - vielleicht ist das dann etwas einfacher nachzuvollziehen.
[src=java]
package sequenzenanalyse;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
*
* @author
*/
public class Analyse {

/**
* Ermittle, welche Buchstaben in der Sequenz enthalten sind.
*
* @param sequenz
* @return
*/
public static String includedLetters(String sequenz) {
String[] allowedLetters = new String[26];
String Letters = "";

int i = 0;

allowedLetters[0] = "A";
allowedLetters[1] = "B";
allowedLetters[2] = "C";
allowedLetters[3] = "D";
allowedLetters[4] = "E";
allowedLetters[5] = "F";
allowedLetters[6] = "G";
allowedLetters[7] = "H";
allowedLetters[8] = "I";
allowedLetters[9] = "J";
allowedLetters[10] = "K";
allowedLetters[11] = "L";
allowedLetters[12] = "M";
allowedLetters[13] = "N";
allowedLetters[14] = "O";
allowedLetters[15] = "P";
allowedLetters[16] = "Q";
allowedLetters[17] = "R";
allowedLetters[18] = "S";
allowedLetters[19] = "T";
allowedLetters[20] = "U";
allowedLetters[21] = "V";
allowedLetters[22] = "W";
allowedLetters[23] = "X";
allowedLetters[24] = "Y";
allowedLetters[25] = "Z";


if(sequenz != null && !"".equals(sequenz)) {
while (allowedLetters.length > i) {
//Buchstabe in Sequenz enthalten?
if(sequenz.contains(allowedLetters)) {
Letters += allowedLetters;
}
i++;
}
// System.out.println("Alle enthaltenden Buchstaben in der Sequenz sind: " + Letters);
return Letters;
}
return null;
}

/**
* Überprüfe, ob der Baustein aus enthaltenen Buchstaben besteht.
*
* @param block
* @param includedLetters
* @return
*/
public static boolean validBlock(String block, String includedLetters) {
boolean found;

for(char c: block.toCharArray()) {
found = false;
for(char incLetters: includedLetters.toCharArray()) {
if(c == incLetters) {
found = true;
break;
}
}
if (!found) {
return false;
}
}
// System.out.println("Alle Buchstaben des Blocks sind in der Sequenz vorhanden.");
return true;
}

/**
* Zähle die Anzahl der Vorkommen des Bausteins in der Sequenz.
*
* @param sequenz
* @param block
* @return
*/
public static int countBlock(String sequenz, String block) {
int occurences = 0;

//false = Kein Überlappen der Bausteine
boolean eagerMatching = false;
if (0 != block.length()) {
for (int index = sequenz.indexOf(block, 0);
index != -1;
index = sequenz.indexOf(block, eagerMatching ? index + 1 : index + block.length())) {
occurences++;
}
}

// System.out.println("Der Block " + '"' + block + '"' + " kommt " + occurences + " mal in der Sequenz vor.");
return occurences;
}

/**
* Zähle die Anzahl der Vorkommen des Bausteins in der Sequenz, mit vorheriger
* Überprüfung, ob der Baustein valide ist.
*
* @param sequenz
* @param block
* @param includedLetters
* @return
*/
public static int countBlock(String sequenz, String block, String includedLetters) {
if(!validBlock(block, includedLetters)) {
return 0;
}
return countBlock(sequenz, block);
}

// public static String[] buildBlocks(String includedLetters, int minLetters, int maxLetters) {
// List<String> blocksFound = new ArrayList<>();
// List<String> actBlocks = new ArrayList<>();
// String[] actBlocks2;
//
// String actBlock = "";
//
// for(char c: includedLetters.toCharArray()) {
// actBlocks.add(String.valueOf(c));
// }
//
// System.out.println("Mögliche Blöcke sind: ");
// do {
// actBlocks2 = new String[actBlocks.size()];
// actBlocks2 = actBlocks.toArray(actBlocks2);
// //actBlocks2 = actBlocks;
// actBlocks.clear();
//
// for(String s: actBlocks2) {
// for(char c: includedLetters.toCharArray()) {
// actBlock = s + c;
//
// if(actBlock.length() >= minLetters & actBlock.length() <= maxLetters) {
// blocksFound.add(actBlock);
// System.out.println(actBlock + " ist ein Block.");
// }
// actBlocks.add(actBlock);
// }
// }
//
// } while(actBlock.length() < maxLetters);
//
// String[] resultBlocks = new String[blocksFound.size()];
// resultBlocks = blocksFound.toArray(resultBlocks);
//
// return resultBlocks;
// }

/**
* Überprüfe, ob der Baustein in der Sequenz enthalten ist.
*
* @param sequenz
* @param block
* @return
*/
public static boolean existBlock(String sequenz, String block) {
if(sequenz.contains(block)) {
return true;
}
return false;
}

/**
* Überprüfe, ob der Baustein in der Sequenz enthalten ist, mit Überprüfung,
* ob der Baustein valide ist.
*
* @param sequenz
* @param block
* @param includedLetters
* @return
*/
public static boolean existBlock(String sequenz, String block, String includedLetters) {
if(!validBlock(block, includedLetters)) {
return false;
}

return existBlock(sequenz, block);
}

/**
* Erstelle Bausteine der Länge minLetters bis maxLetters aus den enthaltenen
* Buchstaben.
*
* @param sequenz
* @param includedLetters
* @param minLetters
* @param maxLetters
* @return
*/
public static String[] buildBlocks(String sequenz, String includedLetters, int minLetters, int maxLetters) {
List<String> blocksFound = new ArrayList<>();
List<String> actBlocks = new ArrayList<>();
String[] actBlocks2;

String actBlock = "";

//Alle Bausteine beginnen mit einem Buchstaben
for(char c: includedLetters.toCharArray()) {
actBlocks.add(String.valueOf(c));
}

// System.out.println("Mögliche Blöcke sind: ");
do {
//Bausteinliste zwischenspeichern
actBlocks2 = new String[actBlocks.size()];
actBlocks2 = actBlocks.toArray(actBlocks2);
//actBlocks2 = actBlocks;
actBlocks.clear();


for(String s: actBlocks2) {
for(char c: includedLetters.toCharArray()) {
//An bisherigen Baustein einen Buchstaben anhängen
actBlock = s + c;

//Existiert der Baustein in der Sequenz?
//Bausteine, die nicht vorkommen sofort entfernen/ignorieren
if(existBlock(sequenz, actBlock/*, includedLetters*/)) {

//Baustein entspricht der geforderten Länge
if(actBlock.length() >= minLetters & actBlock.length() <= maxLetters) {
blocksFound.add(actBlock);
// System.out.println(actBlock + " ist ein Block.");
}
//Aktuelle Bausteine zwischenspeichern, um weitere
//Buchstaben anzuhängen
actBlocks.add(actBlock);
}
}
}

} while(actBlock.length() < maxLetters);

//Typecast
String[] resultBlocks = new String[blocksFound.size()];
resultBlocks = blocksFound.toArray(resultBlocks);

return resultBlocks;
}

/**
* Suche einen Bauchstein (mit buildBlocks erstellt), der genau occurences mal in
* der Sequenz vorkommt.
*
* @param sequenz
* @param includedLetters
* @param occurences
* @param minLetters
* @param maxLetters
* @return
*/
public static String[] searchBlock(String sequenz, String includedLetters, int occurences, int minLetters, int maxLetters) {
//Erstelle mögliche Bausteine
String[] validBlocks = buildBlocks(sequenz, includedLetters, minLetters, maxLetters);
List<String> foundBlocks = new ArrayList<>();

// System.out.println("Es wurden folgende Blocks mit der Häufigkeit " + occurences + " gefunden.");

for(String block: validBlocks) {
//Kommt der Block occutences mal in der Sequenz vor?
if(countBlock(sequenz, block, includedLetters) == occurences) {
// System.out.println(block);
foundBlocks.add(block);
}
}

//Doppelte Bausteine entfernen
//Es werden alle Bausteine aus der Liste entfernt, die Bestandteil eines
//größeren Bausteins sind.
for(int i = foundBlocks.size()-1; i >= 0; i--) {
for(int j = i-1; j >= 0; j--) {
try {
//Enthält Baustein i den Baustein j ?
if(foundBlocks.get(i).contains(foundBlocks.get(j))) {
//Entferne Baustein j
foundBlocks.remove(foundBlocks.get(j));
//Indexgrenze verschieben
i--;
} else {
//Enthält Baustein j den Baustein i?
if(foundBlocks.get(j).contains(foundBlocks.get(i))) {
//Entferne Baustein i
foundBlocks.remove(foundBlocks.get(i));
//Indexgrenze verschieben
j--;
}
}
} catch(IndexOutOfBoundsException e) {
System.out.println(e.toString());
}
}
}

//Typecast
String[] resultBlocks = new String[foundBlocks.size()];
resultBlocks = foundBlocks.toArray(resultBlocks);

return resultBlocks;
}

}
[/src]


Was mir übrigens aufgefallen ist:
Alle Sequenzen bestehen aus den Buchstaben: ABCDEFGHI. Und ungefähr die Hälfte der Sequenzen beinhaltet zusätzlich min. ein U.
Ich vermute das hat etwas mit den Genen für Männlich und Weiblich zu tun.
 
Zuletzt bearbeitet:

Timon3

Team ModMii

Registriert
17 Juli 2013
Beiträge
499
@Roin: Kleiner Tipp am Rande: Ich würde einige der von dir definierten Konstanten automatisch generieren lassen. Zu nennen wären hier die Dateien sowie die Buchstabenliste. Die Dateien sind natürlich einfach zu holen, ein Beispiel hierfür kannst du in einem Projekt von mir nachlesen.

Genauso wäre die Liste der akzeptierten Buchstaben einfach generierbar:

[src=java]chars = new ArrayList<Character>();
for(char c = 'A'; c <= 'Z'; c++) {
chars.add(c);
}[/src]

Nur ein paar kleine Tipps ;) damit hält man sich den Code schön sauber und kann das ganze vor allem (gerade bei den Dateien) dynamisch adaptieren für jede Sequenzanzahl.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Hat lange gedauert, aber ich hab es nun auch hinbekommen :T

Geht sogar schon etwas in die Richtung einzelne Kombinationen zu finden die häufiger als einmal auftreten. Man könnte damit auch nach anderen Sequenzen suchen.
Kommentiert ist nicht wirklich etwas in dem Code da ich den so runtergeschrieben hab.

Ein paar Debug Prints sind auch noch auskommentiert, falls sich das jemand ansehen will.

[src=python]# Find 128 times block
block128 = "";

searchString = "";
stepSize = 2;
offset = 0;

hasBlock = False;
isValidChoice = False;

while(True):
if (hasBlock):
fileIndex = 1;
fileCount = 0;

while(fileIndex < 101):
filehandle = open("resultset" + str(fileIndex) + "i.txt", "r");
fileData = filehandle.read();
filehandle.close();
if (fileData.count(block128) == 128):
fileCount += 1;
else:
offset += 1;
stepSize += 1;
break;

fileIndex += 1;

#print("hit '%s' in %d files" %(block128, fileCount));
if (fileCount == 100):
#print ("Count: %d, %s" %(fileData.count(block128), block128));
isValidChoice = True;
stepSize += 1;
else:
hasBlock = False;
isValidChoice = False;

searchString = dnaData[offset:stepSize];
#print(searchString);
#print(offset, stepSize, sep=" - ");

if (offset + stepSize >= len(dnaData)):
break;

while(True):
searchCount = dnaData.count(searchString);

if (searchCount != 128):
if (hasBlock):
hasBlock = False;
isValidChoice = False;
if not (isValidChoice):
offset += 1;

stepSize += 1;
break;
else:
block128 = searchString;
hasBlock = True;
break;

print("Block128 = %s" %(block128));[/src]


Ich mach jetzt erstmal eine Pause, brauch ne frische Tasse Kaffee und ein paar Minuten zum abkühlen nach dem kleinen Erfolg ;) :)


Was die Bennenung von Variablen angeht, ich halte mich immer daran was die Variable beinhalten bzw. der Schalter bewirken soll und wird danach betitelt. Mit Sicherheit bei mir noch nicht perfekt aber früh übt sich. :D
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #31
Ich würde einige der von dir definierten Konstanten automatisch generieren lassen. Zu nennen wären hier die Dateien sowie die Buchstabenliste.
Das habe ich bei meinen Bemühungen, das Problem zu lösen, erstmal vollkommen ignoriert. Allerdings war mir zum Beispiel nicht klar, dass ich Buchstaben (char) in Java einfach durchzählen lassen kann.

damit hält man sich [...] das ganze dynamisch [und kann es] für jede Sequenzanzahl [adaptieren]
Damit vereinfache ich zumindest einige Tests und benötige auch eine Variable bei meinen Sequenzen weniger.

Danke für die Tipps.

@theSplit:
Ich habe mir gerade noch deine Lösung angesehen. Ich finde den Weg, den du gegangen bist auch nicht schlecht.
Im Zweifel mehr Rechenleistung benötigt, als bei mir, aber dafür hast du keine Beschränkungen, die du vorher eingeben musst, wie groß ein Block sein kann. Du suchst ja anfangs nach einem Zeichen und erweiterst dann immer weiter, bis du es genau 128mal findest.
Finde ich ein schöner alternativer Ansatz.
Ein kleines Problem sehe ich allerdings an deinem Code noch. (Vielleicht - ganz vielleicht auch bei mir):
Wenn du nach z.B.: EAEB statt EAEBF suchst, weil er das logischerweise als erstes findet, dann könnte das auch ein Block bei dir sein, der als Lösung zählt. Bei mir werden ja diese Lösungen am Ende noch herausgefiltert.
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
@theSplit:
Ich habe mir gerade noch deine Lösung angesehen. Ich finde den Weg, den du gegangen bist auch nicht schlecht.
Im Zweifel mehr Rechenleistung benötigt, als bei mir, aber dafür hast du keine Beschränkungen, die du vorher eingeben musst, wie groß ein Block sein kann. Du suchst ja anfangs nach einem Zeichen und erweiterst dann immer weiter, bis du es genau 128mal findest.
Finde ich ein schöner alternativer Ansatz.
Vielen Dank für das Lob :T


Ein kleines Problem sehe ich allerdings an deinem Code noch. (Vielleicht - ganz vielleicht auch bei mir):
Wenn du nach z.B.: EAEB statt EAEBF suchst, weil er das logischerweise als erstes findet, dann könnte das auch ein Block bei dir sein, der als Lösung zählt. Bei mir werden ja diese Lösungen am Ende noch herausgefiltert.

Es werden ja keine Lösungen gesammelt, es wird nur ein Block aufgebaut der 128 mal auftaucht mit wachsenden Zeichen aus der Referenzdatei. Eigentlich fast der Ansatz den Kapitn schon auf Seite eins vorgeschlagen hat.
Der Kniff ist der, wenn der Block vorher "gültig" und 128 mal aufgetaucht ist, aber plötzlich ungültig wird weil er nicht mehr 128 mal auftaucht mit neuer Ergänzung/Buchstaben, dann stoppt der Ablauf und wir haben ein Ergebnis ermittelt. Das klappt natürlich nur bei einem 128 Block, bei zweien würde nur der erste so ermittelt werden.

Folgend eine Liste von DNA Bausteinen, leider etwas kreuz und quer mit Gesamtaufkommen (gezählt) + Aufkommen in allen Dateien, wobei die Bausteine aus 10 Dateien ermittelt sind und dann in alle anderen Dateien ermittelt worden sind.

Ich glaube die Liste ist als Lösung eh zu lang... berücksichtigt habe ich beim erstellen der Liste das die Anzahl der kleinen Bausteine übereinstimmen muß damit diese aus einem großen Baustein isoliert werden... also sprichwörtlich ersetzt so das der größere Baustein mit gleicher Anzahl der valide sein soll sonst bleibt der große Baustein intakt.
FF (30056/100)
FG (30065/100)
GA (33486/100)
AA (25722/100)
AE (65045/100)
ED (6107/100)
DE (20230/100)
EI (14873/100)
IA (5224/100)
AC (5000/100)
GD (6636/100)
EA (30533/100)
EG (10046/100)
GE (5066/100)
DA (3471/100)
EE (10593/100)
ID (2182/100)
FD (1932/100)
DD (1554/100)
GAA (10475/100)
AAE (20966/100)
EDE (3595/100)
AEI (14773/100)
IAC (740/100)
GDE (3951/100)
GAE (17889/100)
AEA (5727/100)
EAE (14922/100)
IAE (4403/100)
AEG (10000/100)
EGE (5024/100)
AAC (2285/100)
GDA (1717/100)
DAE (2986/100)
GAD (4573/100)
DEA (16448/100)
EAA (15227/100)
EEE (7200/100)
AAD (2422/100)
AAA (5245/100)
EDA (1754/100)
DAC (483/99)
EGA (3486/100)
FEA (1627/100)
GDD (803/100)
AAED (2260/100)
AEDE (2509/100)
AAEI (6665/100)
AEIA (4484/100)
HGDE (2471/100)
GAEA (3812/100)
EIAE (3847/100)
IAEG (1498/100)
AEGE (5022/100)
GDAE (1481/100)
DAEI (1482/100)
IAEI (1854/100)
EAAE (7535/100)
AAEG (4506/100)
AED (340/97)
DEE (367/98)
EDEA (1731/100)
EEEE (3409/100)
FAEG (1300/100)
FAED (639/100)
AEDA (1660/100)
EDAC (248/91)
FAEI (1913/100)
AEGA (3208/100)
EGAE (2754/100)
GAEI (1504/100)
GDEA (2033/100)
DEAE (1221/100)
DAED (453/99)
GAEG (862/100)
EDAE (1434/100)
IAED (743/100)
EDD (743/100)
DAEG (1036/100)
AAAC (788/100)
AAEA (1909/100)
GAED (548/100)
GAAED (1543/100)
AAEDE (1153/100)
GAAEI (4417/100)
AAEIA (2314/100)
AEIAE (3816/100)
IAGE (738/100)
GDAEI (738/100)
DAEIE (730/100)
IE (4408/100)
IAIE (1101/100)
ADEAA (6025/100)
GAAEG (3002/100)
AAEGE (2276/100)
GEEEA (245/91)
EED (102/60)
DEAAD (2066/100)
EEED (515/100)
AEID (951/100)
AAAEI (2238/100)
AAEIE (3392/100)
IEE (1095/100)
IEEE (529/98)
AEEEA (1147/100)
AG (357/99)
IEEED (165/85)
FAGE (645/100)
FEDA (222/92)
FAIE (937/100)
IEEEA (400/93)
GAIE (751/100)
DAEDE (223/87)
AEDEA (666/100)
FA (1627/100)
FADE (315/99)
AEEEE (1621/100)
IAEGA (554/100)
AAAEG (1496/100)
AAEGA (1556/100)
AAEDA (760/100)
AEDAE (1422/100)
EDAEI (744/100)
DAEIA (512/99)
IAEDD (95/62)
GDAEG (503/100)
DAEGA (373/97)
GAEID (243/96)
IADE (387/98)
AIE (535/100)
EEEEE (462/100)
FEE (276/94)
EDAEG (533/100)
DAEGE (500/100)
FEIA (674/98)
IAEIA (640/98)
IAEDA (260/91)
DAEID (236/95)
EIA (370/99)
AAAE (715/100)
AEGD (668/100)
EEEEA (1157/100)
AEB (979/100)
DAEGD (162/78)
DEEEE (376/99)
GAEIA (510/100)
GAEGA (278/95)
GAEGD (126/74)
GADE (264/95)
IAEID (291/92)
IAEGD (205/91)
GEDA (204/89)
FEEE (488/100)
AEDD (80/53)
GAAEDE (798/100)
GAAEIA (1520/100)
AAEIAC (355/96)
EFFGAE (11469/100)
EF (6896/100)
AEFFGA (10388/100)
GAAE (3812/100)
EAEBFE (5646/100)
AAEIAE (1953/100)
ACHGDA (1632/100)
GDAI (370/96)
ADEAAE (3454/100)
GAAEGE (1507/100)
AAGEE (316/95)
GEEAE (208/87)
EAAD (167/79)
GAEEED (343/97)
DEAAE (537/100)
GAAEID (615/100)
IDEAAD (337/98)
ADEAAA (2392/100)
AAIE (1114/100)
GAAEIE (2275/100)
AAIEE (516/98)
GAEEEA (784/100)
AEEEAE (977/100)
AEGEA (170/77)
DACHGD (463/99)
DAEIEA (200/83)
GAEIE (751/100)
GDAD (119/69)
DAEDEA (50/42)
BFE (1444/100)
IEF (566/99)
GAEEEE (1062/100)
AEEE (950/100)
FDEAA (639/100)
AAEIEA (876/100)
FDAAE (989/100)
IAG (102/59)
IDEAAA (791/100)
AAAEIA (788/100)
IAGAE (488/100)
AAAEGA (504/100)
AAEGAE (1304/100)
AGE (495/99)
GAAEDA (502/100)
ADA (650/100)
DAEIAE (437/98)
DDEAAA (550/98)
IEIEA (283/93)
EEEAC (167/88)
GDAEIA (250/87)
DAIE (99/63)
DEGA (189/86)
DGA (330/97)
AAAEID (335/96)
AAEGEA (604/100)
EEEEEE (450/100)
GEF (382/100)
FEAE (230/88)
EDAED (220/91)
DED (82/57)
DAEDAE (145/75)
AEDAEG (523/100)
FAIA (580/98)
AEIAC (100/60)
IADA (222/88)
AIAE (322/97)
AEIEA (237/88)
GDAEID (117/76)
IDAAE (1052/100)
AAAGE (762/100)
AAADE (354/98)
GAAEGD (440/100)
GDAAE (713/100)
EEEEAE (1127/100)
EGAC (63/40)
GDAEGD (84/56)
GDEAAA (508/100)
IAD (67/55)
EDEEEE (186/89)
GAEIAE (439/100)
IAIAE (556/98)
GEGEA (127/76)
IEA (219/84)
EEAE (213/90)
GEAAD (257/94)
AAEE (1088/100)
AAEEE (556/99)
ADE (162/86)
DDEAAE (781/100)
FGA (381/100)
EDAEIE (360/96)
AAEGAC (247/91)
FDEAAD (299/91)
GDAG (230/92)
DAGE (309/97)
AI (96/62)
GADAE (183/86)
DEAAA (357/99)
DAD (139/74)
DAEGEA (123/77)
AAEGD (227/87)
GEA (79/55)
GDEE (369/97)
DEEE (190/86)
EIEA (131/75)
GAG (83/59)
DEFFGAA (1070/100)
IACHGD (342/99)
DEFFGAE (1546/100)
AEFFGAE (5125/100)
GAEAE (3812/100)
AEAEBFE (2813/100)
BFEFF (3867/100)
FFFGAE (1898/100)
AEFFGAA (4697/100)
GAAIAE (1283/100)
AAEIAEG (658/99)
GFFGAE (1513/100)
AACHGDA (779/100)
DAI (229/87)
IEFFGAA (1543/100)
AAEIAEI (952/100)
IEFFGAD (663/100)
GADEAAE (2259/100)
GAAG (207/85)
EGEEEAE (206/87)
AADAAE (1193/100)
FEFFGA (1311/100)
GEFFGAA (1073/100)
EFFGAD (2069/100)
GADEAAA (1592/100)
ADEAAAE (1993/100)
GAAI (343/95)
GAEEAE (680/100)
AEEEAEG (317/97)
EEAEGE (355/99)
IEDE (165/85)
IFFGAE (2196/100)
AEAEBFA (2024/100)
GEAEBFA (447/98)
DCHGD (164/77)
GDEIE (89/58)
IEAEBFA (666/100)
AEIEEEA (394/93)
IEEAE (338/91)
IEEEAEG (108/64)
AEGAEI (113/70)
AACHGDE (1139/100)
DEAEBFE (609/100)
FEEBFA (564/100)
GAEEE (622/100)
FFGAD (334/98)
FEAEBFD (243/91)
DAAAE (553/100)
AAAEIEA (282/94)
IAEBFE (981/100)
DEAAEF (573/100)
EEEAEI (96/67)
IDAAAE (680/100)
AAAIAE (665/100)
AEIAEGA (546/100)
EIAEGAE (484/100)
IAEGAEI (258/88)
AAAGAE (435/99)
AAEGAEG (413/98)
GAADAE (428/100)
AEDAEI (326/99)
EDAEIAE (223/89)
DAEIAED (69/48)
IADD (95/62)
DDEAAAE (461/98)
AEEEAC (101/66)
CHGD (135/77)
ICHGD (280/89)
IEEEAED (60/46)
DEAEBFA (437/100)
DAEGAEI (161/83)
GAID (243/96)
FABF (731/100)
AEEEAEI (510/99)
EEEAEIE (531/100)
ACHGD (361/98)
GDDE (280/95)
GAAEGEA (416/97)
EEAEI (112/64)
DAEDAEG (59/50)
EDAEGE (266/98)
GEEEAEG (75/58)
FAEIAEI (271/90)
AEIAEIA (627/98)
IACHGDD (118/73)
EIAEDA (258/91)
IADAE (220/88)
IAEDAEI (114/65)
AAI (173/78)
AEIAEI (149/82)
ADEAAAC (394/98)
GAEBFE (642/100)
AAEGAEI (651/100)
GAAEIEA (593/100)
AAGE (468/100)
GEFFGAD (424/97)
FACHGD (316/100)
DAAE (446/98)
GAEEEEA (293/93)
BFA (329/96)
ACH (495/99)
GDEAAAE (441/99)
DEEEEA (50/39)
AEBFE (508/100)
EEEAEG (81/63)
AEGAEIA (502/100)
EGAEIAE (431/100)
GAEIAEI (227/85)
AAAEIAC (121/74)
DEFFGAD (428/99)
GADEAAD (714/100)
AADEAAA (799/99)
EGAEG (65/49)
AEGAEGA (275/95)
GAGA (226/89)
GAEGAEI (135/74)
ADAE (228/92)
AEDAEGA (177/84)
DAGAE (162/81)
EIAEIAE (543/98)
IAAE (139/79)
AEGAEG (67/51)
GAAGAE (869/100)
GAAD (113/71)
DEAAEA (132/75)
GDAIAE (213/83)
DAEIAEI (211/89)
FFGAA (770/100)
AEGAE (240/95)
EDEEEA (125/72)
DEEEAEI (106/67)
DAEGAED (59/45)
AEIAED (106/63)
DDA (382/98)
DDEAAEA (196/86)
FAEGAEI (180/78)
IAIDE (291/92)
IDEAAAC (110/62)
AADA (221/97)
DAEDAEI (75/47)
DAEIAEG (157/72)
EAEBFD (879/100)
ADEAAEA (875/100)
ADAAEE (518/97)
GACHGD (256/90)
IAEIAEI (271/89)
ACHG (187/87)
IAEIAED (94/64)
IEEEAEI (173/77)
FAI (297/96)
IEAEBF (297/96)
AADE (228/88)
GDDAAE (399/99)
DDAA (474/100)
GAEIAEG (137/79)
IAGDE (205/91)
DEEA (162/83)
AAAEGEA (187/82)
GAEDAEI (79/54)
IDEAAEA (260/96)
HGDD (59/46)
GDEGEA (47/40)
CH (184/87)
GDADA (77/62)
FAEIAEG (203/86)
IAEGAE (89/60)
ADDE (80/53)
FEFFGAD (649/100)
GEAEBFD (195/87)
AAEEEEA (146/73)
DEFFGA (529/99)
DEFFGAAE (908/100)
DEFF (1549/100)
GDEFFGAE (793/100)
DEFGAEF (910/100)
GAEFFGAE (3437/100)
AEFFGAEA (1741/100)
GAEAEBFE (1859/100)
AEAEBEF (1724/100)
EFFGAEF (1114/100)
AEFGAEF (3072/100)
GAEFFGAA (3109/100)
AEFFGAAE (3974/100)
GAAEIAEG (445/98)
AIAEGE (315/95)
IAEGE (457/99)
FGAEF (916/100)
EFFGAAC (716/100)
GAACHGDA (530/100)
AACHGDAE (658/100)
IEFFGAAE (1344/100)
GAAEIAEI (622/100)
AAEIAEIE (470/97)
IAEIE (643/100)
AEF (4538/100)
AAEFFGAA (1580/100)
ADAAE (717/100)
AAFFGAE (2219/100)
AFFGAEE (945/100)
AEEEDEAA (512/100)
EEEDEAAE (532/100)
FFFGAAE (1130/100)
GEFFGAAE (925/100)
GAAIDE (615/100)
AAEIDEAA (930/100)
IDAADE (337/98)
AEFFGAD (731/100)
GADAAAE (1318/100)
ADEAAAEI (983/100)
AAEIEEEE (259/91)
FFFG (287/95)
AEIEEED (67/50)
IEEDE (165/85)
IEFFGEA (521/100)
AEAEBFAE (1728/100)
AGA (170/77)
GEAEBFAE (390/98)
DACHGDA (151/75)
IEAE (1946/100)
IEAEBFAE (562/100)
FAIEE (134/69)
AGAEIE (64/50)
AEIE (436/100)
IEFGAEF (1335/100)
GAACHGD (736/100)
AACHGDEA (275/94)
GDEAE (553/100)
GDEAEBFE (266/95)
DEAEBEF (363/97)
DABF (343/98)
DEAEBFEA (161/78)
FAEBFAE (493/98)
IEFF (566/99)
EDEFFGAE (753/100)
AEAEBFEA (690/100)
FABFD (243/91)
FDEAAAEI (280/96)
IEBFE (257/95)
IG (28/22)
AEIDEAAA (769/100)
IDEAAAEI (339/94)
AAEIAEGA (253/90)
IAGAI (128/67)
ADEAAAEG (677/100)
AAGAGE (231/90)
IFFGA (340/95)
GAAEDAEI (217/91)
AEDAEIA (103/66)
IDDE (95/62)
AEDDEAAA (267/93)
DDEAAAEI (231/93)
IEAEBEF (589/99)
IACHGDAE (242/88)
BF (233/89)
DEAEBFAE (384/99)
GDAEGAEI (83/57)
GID (243/96)
AAIAEDE (196/94)
EBFEF (501/100)
ACHGDD (229/94)
DEAAAEID (327/96)
EIDE (327/96)
GEFFGA (1336/100)
GEFF (382/100)
GEFFGEA (364/98)
AEBFEE (399/98)
GAAEDAED (59/50)
ADADA (70/51)
DEFFGAEA (415/94)
EIEIA (93/61)
EIEDA (106/69)
DAIDE (119/70)
AIAEIE (90/56)
AAACHG (403/100)
AIA (237/88)
EAEBE (367/97)
EEEAEIA (183/83)
GDAID (117/76)
EGAEID (97/65)
DDEAAAEG (165/81)
EFFGAEE (161/83)
FGAEA (267/96)
ADEAAAED (333/94)
AEAEBFAC (290/94)
ACHGDEF (189/87)
GDEFFGAA (541/100)
GAAGD (440/100)
AAEGDEAA (660/100)
AEBFAE (290/95)
GACHGDA (149/81)
GDAGD (84/56)
EGDEAA (501/100)
EGDEAAAE (438/99)
GDEAAAEI (240/86)
GAAEIAED (216/93)
AEBFEA (138/78)
FABFEE (120/68)
EEGA (30/26)
GAIAIE (122/67)
ADAAA (674/99)
GAAEDAEG (152/83)
ADAGA (156/80)
GEG (126/74)
IEIEGA (77/54)
GAGAE (127/76)
GAAEGAEI (427/98)
AAEGAEIE (328/97)
FEFFGAEA (497/99)
AAEAEBFA (666/100)
GDAEIAEI (102/59)
AIAI (111/70)
FFGAAE (671/100)
AEGAED (159/86)
IAIEEE (175/81)
IEIEEEA (65/47)
AGAGE (61/46)
AEDDEAAE (379/98)
DEAEA (108/70)
IEIDE (291/92)
DAIAEGE (87/54)
GAEAEBFD (592/99)
FDAAD (299/91)
AADEAAEA (289/94)
DAA (330/96)
EIAEID (144/76)
IAIAI (169/77)
AAACHGDA (249/90)
AGAI (82/51)
IEIEI (97/59)
HG (35/31)
IAEDE (218/91)
IEAEIE (91/58)
IAIAGE (106/71)
FAID (297/96)
FID (297/96)
IABFD (297/96)
IEAAAED (108/64)
FFG (221/90)
AAAEBFE (950/100)
DEAAAED (65/47)
AAEDAEI (108/69)
IEG (55/40)
IEGEIA (91/57)
EIAEG (89/55)
IEGDE (205/91)
IEFFGAAC (198/91)
FEFFGAA (178/78)
GAIAG (72/54)
AEAEBFD (287/93)
GAAEGAEG (283/92)
IDAA (260/96)
DEAAAEI (153/78)
GADEAAEA (586/100)
IEAEBFAC (103/61)
CHGDA (158/84)
GDAEDAEI (35/30)
DEDEIA (28/23)
AAAEGD (226/87)
AAGD (226/87)
AEGDEA (226/87)
GDEEBFA (204/97)
EB (76/55)
EBEF (318/94)
IAGEE (60/44)
EDDE (80/53)
EEG (119/80)
GAGE (83/59)
GDEAAAEG (130/72)
DEGE (52/44)
IEDAEGA (30/27)
FFGAAEDE (784/100)
AEDEF (465/100)
EDEF (465/100)
EDEFF (465/100)
AAEDEFFGA (692/100)
EDEFFGAA (515/99)
DFFG (440/97)
EFFGAAEI (435/98)
GAEFFGAEA (1204/100)
GAEAEBE (1123/100)
GAEGAEF (2009/100)
GAEFFGAAE (2631/100)
AEFFGAAEI (1957/100)
GAAEIAEGE (223/83)
AAIAEGE (191/91)
AEFFGAAC (475/98)
GAACHGDAE (450/99)
AACHGDAEI (325/97)
AEIEFFGAA (1460/100)
EIEFFGAAE (1268/100)
IEFFGAAEI (644/100)
GAAEIAEIE (303/93)
IFFGADE (663/100)
AEFFGAAEG (1320/100)
EFFGAAEGE (1459/100)
AEEEDEAAE (269/93)
AAEFGAEF (1365/100)
FEFFGAAEG (401/98)
AEGEF (860/100)
EGEF (860/100)
EEFFG (860/100)
AAEGEFFGA (1322/100)
AEGEFFGAA (1040/100)
EGEFFGAAE (894/100)
GEFFGAAEI (464/99)
GEIDE (615/100)
AEIDEAAD (143/81)
IDEDE (337/98)
GADEAAAEI (637/100)
ADEAAAEIE (496/98)
AAEIEFFGA (1917/100)
EFFGAAEIE (2176/100)
GAAEIEEEE (171/79)
AIEEEE (158/78)
EEEEFFGAE (1032/100)
AEAEGE (103/65)
EEEAEGE (80/52)
AIDE (67/50)
GAEAEBFAE (1151/100)
AEAEBFAEG (582/100)
EAEBFAEGE (638/100)
EBFEGEA (169/77)
EGEAE (169/77)
GEEBF (440/98)
EGEAEBFAE (384/98)
BFAED (79/54)
DCHGDA (82/58)
DACHGDAEI (75/49)
AEIEAEBFA (651/100)
EIEAEBFAE (549/100)
IEAEBFAEI (297/94)
EAEBFAEIE (924/100)
BFAIEEE (134/69)
DEBFE (93/57)
FEAEBFAEI (239/93)
EAEBFAED (291/97)
ABFAEDE (314/99)
DFFGAE (743/100)
EDEFGAEF (451/100)
GAFFGAEE (625/100)
EFFGAEEEE (1048/100)
AEEEEFFGA (931/100)
AAEFFGAEA (535/100)
DEAAAE (553/100)
FDAAAIE (141/80)
IBF (257/95)
DEAAEFF (573/100)
AEFFGAAED (697/100)
IDEEI (117/70)
EIEG (89/58)
AIAGA (224/86)
IAGAIE (73/47)
GADEAAAEG (456/97)
DEAAEGA (236/91)
AEAEBFAEI (855/100)
IEFFGAAED (238/94)
AAEDAEIA (70/52)
IEDDE (95/62)
DDEAEIA (72/51)
IAI (164/80)
AAEIAEIEA (129/73)
IAIEAE (283/93)
CHGDAEIA (248/87)
AEIACHGDA (275/89)
IACHGDA (239/88)
IACHGDAEI (122/64)
DEEBFA (230/89)
DEAEBFAED (59/43)
DEFFGAAC (82/52)
ACHDAE (222/90)
AAIAD (74/50)
GAEEAEIE (176/84)
GDDEAAAEI (113/68)
DDEAAAEID (45/38)
EIDEA (345/100)
IDAAAIE (178/81)
GAAGEAE (416/97)
EAEBFAE (124/68)
GAAEBFEE (262/92)
DEIDEAAA (75/49)
AAAEIEEEA (61/42)
AAACH (254/90)
BFEIEA (233/88)
GAEEEAEIA (129/71)
GI (117/76)
IDEAEGA (72/55)
GAIDAA (108/68)
IDEAAE (650/100)
GAAIEAE (593/100)
FEFFGAAEI (534/100)
GDDEAAAEG (83/55)
DAAAG (83/56)
FFGAE (156/83)
ADEAAAEGE (341/95)
GFFGADE (424/97)
ADAAAEDE (160/81)
AEBFAEI (187/92)
FACHGDE (316/100)
GDEFFGAAE (461/99)
DEFFGAAEG (307/92)
GEGDE (440/100)
AAEGDEAAE (324/95)
GAEEEAE (293/93)
FAE (105/59)
GACHGDAEG (47/39)
GDGD (84/56)
GDAAAIE (112/64)
AAIADE (121/82)
DEEAE (49/39)
EEEAEBFE (502/100)
GIIE (35/31)
ADEAAAEIA (336/97)
GFFGAD (214/89)
GADAADE (714/100)
ADEAADEAA (953/100)
ADAAAE (674/99)
DAGA (63/48)
GEGDEA (45/38)
AAIAIAE (289/91)
IAGA (68/52)
GAGEAE (127/76)
GAAEGAEIE (210/86)
AAEGAEIEA (101/61)
FEAEBFAEG (168/77)
EIEEEEA (68/52)
IEEEAE (135/80)
DAAEAE (132/75)
AAEAE (1909/100)
AAAEBFAE (575/99)
GDAIAI (59/42)
FFGAAEI (338/95)
GAAGADE (77/52)
IEFFGAAEG (422/98)
EGEAAD (124/70)
AAEIDEAAE (455/100)
IDA (142/78)
AGAIAE (189/87)
DEFFGAAED (166/85)
DAAG (34/29)
AGAIA (47/38)
EIEIDE (291/92)
DEAAEDA (128/76)
CHGDAEI (76/55)
AIAG (55/39)
FDAADE (299/91)
FDEDE (299/91)
ADAAEEE (260/93)
IEAEBFAEG (176/76)
IAIDAA (137/70)
AAEGDEAAA (215/89)
GAAEIAEIA (231/86)
IAIAIAE (80/56)
EEBFE (68/54)
DAGDAA (72/53)
IAIAEGE (69/51)
FFGAAEG (239/92)
IBFDE (297/96)
IDAAADE (62/46)
AAEAEBEF (599/99)
AEDAEGE (67/53)
EDAEIAEG (83/54)
DEIEG (34/29)
IAGAIA (82/52)
EIEGDE (205/91)
GAACHGDE (453/99)
EGAEIA (76/58)
DEAAEAEB (162/83)
FDAAAGE (99/66)
AAAGA (187/82)
GAEGAEGA (79/59)
AGAGA (105/67)
AIDAAE (121/74)
AEEEDEAAA (170/82)
AEIAEIAC (49/42)
IACHDAEG (76/56)
GDAGA (47/40)
CHGAE (43/34)
ABFAE (178/93)
GAAGAEGE (166/80)
FEFFGAAED (195/89)
EAEBFEEEE (484/100)
EEAEB (128/75)
IAGEEE (60/44)
DEAAEIA (60/45)
EGEDDE (80/53)
DDAAAEIE (114/73)
GEEEAEGA (79/61)
AABFE (137/68)
ACHGDAEG (65/47)
FFFGAD (649/100)
GDEFFGAAC (79/56)
IDAAAGE (115/72)
GAEBFDE (195/87)
AAEGAEID (67/48)
BFAEI (142/73)
GEFFGAAEG (300/97)
AAEEAE (146/73)
AAEDEFFGAA (231/91)
ADEFFGAAE (435/97)
DEFFGAAEI (220/83)
DEFFGAEIA (158/75)
AAEIACHGDE (163/83)
EFFG (6896/100)
EFFGAEFF (1114/100)
GAEFFGAAEI (1289/100)
AEFFGAAEIA (671/100)
GAAIAG (125/71)
IAEEFF (457/99)
IEGEFFGA (457/99)
IAGFFGAE (231/91)
FGAEFF (916/100)
GAACHGDAEI (220/82)
AACHGDAEIE (163/77)
DAEIEFFGAA (160/78)
IEFFGAEIA (227/83)
IAEIEF (643/100)
IEIEF (643/100)
IAEIEFFGAD (98/61)
IEFFGDE (663/100)
EFFGADEAAE (2152/100)
FGADEAAEF (1279/100)
DEAAEFFG (1279/100)
ADEAAEFFGA (1969/100)
AEFFGAAEGE (687/100)
GAAGEEAE (65/50)
FGAEEED (150/83)
FFGAAEGE (196/88)
AAEGEFFGAA (463/99)
GEFFGAAEID (75/55)
GAAEIDE (615/100)
GAAEIEAA (85/58)
EIDEDE (337/98)
IDAADEAAE (151/82)
DEAAEFFGAD (695/100)
EFFGADE (695/100)
EFFGADEA (695/100)
AEFFGADEAA (1978/100)
GADAAAIE (319/95)
DEAAAEIE (291/91)
AAEIEFFGAA (660/100)
IFFGAAEIE (332/95)
AAIEEE (101/63)
IEEEE (326/94)
IEEEFFGAE (157/74)
EEFF (224/89)
AEFFGAAEIE (1014/100)
IEEEDE (165/85)
IEFFGA (1287/100)
AAEIEFFGAE (1023/100)
IFFGAEAE (521/100)
GAEAEBFAEG (389/99)
BFAEGE (291/97)
EGEAEBFA (60/39)
GDAEIEAE (89/58)
DEIEAEBFA (79/53)
IABFAEIE (134/68)
AEIEFF (436/100)
GAIFFGAE (220/84)
IEFGAEFF (1335/100)
ACHGA (76/54)
CHGDAD (62/41)
DABFAE (93/57)
FABFAEIE (118/72)
FAEIEFF (566/99)
FAEIEFFGAE (277/89)
AEAEBFAED (190/93)
AAEBFAEDE (151/86)
FADFFGA (95/66)
DEGAE (445/100)
FGAEEEE (465/99)
AEEEEFFGAD (157/78)
AAFFGAAE (535/100)
FBFD (243/91)
AAAIEAE (282/94)
AAEIEAEBFE (443/100)
IABFAE (257/95)
EAEBFDEAAE (965/100)
EFFGAAED (465/100)
AEFFGAAEDE (368/97)
IDAAAIA (105/62)
AAEIAEGAEI (123/64)
GAEIEFFGAD (72/53)
GADEAAAEGA (152/77)
ADEAAAEGAE (211/87)
AAGAEGE (65/49)
AEEFFG (285/94)
EFFGA (285/94)
GAGFFGAE (152/77)
GAEAEBFAEI (572/100)
AEAEBFAEIE (414/97)
AIFFGA (340/95)
IFFGAEEEE (160/75)
IEFFGAEDA (74/53)
GAADAIAE (62/50)
AEDDEAAAEI (116/66)
DDAAAIA (60/43)
IAIABFE (146/75)
IEAEBEFF (589/99)
FFGAEEEA (330/95)
AEEEACHGDA (61/44)
ICH (31/28)
GAADEAE (214/87)
AAEDEAEBFA (113/63)
DAEBFAE (203/88)
GAACHGDAEG (154/80)
GAIDEAA (87/65)
IADEAE (102/64)
IADAB (63/46)
EBFEFF (501/100)
DFFGAAI (227/89)
IEFFGEEE (134/69)
AACHGDDEAA (359/98)
ACHGDDEAAA (279/95)
AAEIDEAAAE (302/99)
IDEAAAEIE (114/66)
GFFGA (1336/100)
GAEFFGAAEG (877/100)
GAAEGEAE (416/97)
GABFAG (58/45)
FAEEFF (382/100)
GFFGAEAE (364/98)
EEBFEEE (118/72)
EAEIE (49/39)
IEFFG (117/68)
AEAEBFAEIA (292/91)
ICHGDDE (118/73)
DEIDE (34/27)
DAIDAAAE (62/43)
FAIAEBFE (116/68)
AAEGEAEBFE (294/97)
IDGA (59/47)
GAAEIEAE (593/100)
FEFFGAEIA (175/82)
AAEFFGAAEI (664/100)
AAEIACHGD (61/44)
GEEFFGAE (115/72)
FGAAE (267/96)
AAGEFFGAE (665/100)
GADAAAG (241/91)
GEFFGDE (424/97)
GADAAADE (112/68)
AAEDEAE (83/61)
DEAEBFAEI (99/63)
DABFAEIE (99/69)
AB (316/100)
ACHGDEFF (189/87)
GDEFFGAAEI (215/87)
DEFFAAE (162/76)
DEFFGAAEGD (50/35)
GAAGDEAAE (213/89)
GAEEEEAE (293/93)
AEEEEAEBFA (154/78)
EACH (63/40)
AGACHGDA (149/81)
DAGDAAA (47/37)
GDAAAEIE (112/64)
ABFEAE (138/78)
FABFEEE (120/68)
GII (35/31)
GADEAAAEIA (217/86)
GDEDEA (714/100)
ADEAADEAAA (380/94)
GEIEFFGAA (143/75)
GAADAGA (47/39)
DAAAIA (82/57)
EIAEIE (89/65)
AAAIAIAE (90/57)
EFFGEGA (135/70)
GIE (56/43)
AAGAIAE (101/61)
GAIAEBFE (119/66)
GDAAA (63/50)
FFFGAA (497/99)
FGAAEIE (275/97)
GAAEIEEEEA (50/40)
IEEEEAE (135/80)
IEEEEEBFA (47/39)
EAEBFA (30/26)
DEAAEAE (132/75)
AAEAEBFAEI (281/94)
EICH (33/28)
ICHGDAEIA (49/37)
AIAIE (31/25)
IAIEFFGAE (309/97)
AEEEEFFGAA (341/97)
IEGEFFGAA (173/75)
EFFGEIA (162/78)
GAAEGDEAAD (84/51)
GDEDE (257/94)
GDAADAA (123/74)
GAAIDEAAE (293/97)
AEFFGAAEGA (453/98)
GAGAIA (125/72)
GEGEFFGA (35/26)
AEEAEBFE (231/95)
EBFAEIA (85/56)
DAAA (108/70)
AAEAEBFAEG (193/84)
AEAEBFAEGA (196/93)
BFAGAE (381/100)
GADEAAAEDA (87/62)
AAEGACHGDA (87/55)
GFFGAAI (227/86)
GAAEBFDE (592/99)
AEAEBFDEAA (856/100)
DAADAA (149/75)
AADAAEAE (289/94)
AEFFGAAEID (268/97)
GAAEIDEAAA (237/90)
GADAA (164/80)
ADEAAEEEE (149/83)
AAEIEAEBFA (290/90)
IEEBFAEGA (60/46)
AGACHG (30/23)
IAIDAAE (137/70)
IAEIDE (89/57)
EIAEIAEI (144/72)
IEIEFFGA (236/87)
GAEGDEAAA (143/80)
DAEIEFFGAE (201/89)
GAAEIAEIAE (199/84)
IAIAEIAE (80/56)
IAEIAEIAE (33/29)
IAEIAEGAEI (34/29)
AACHDA (101/63)
DAEGEFFGAA (98/65)
IAEDEF (218/91)
IEDEF (218/91)
IADEFFGAE (114/74)
AAGDAA (50/41)
BFIDE (297/96)
AAEIEAEBFD (141/73)
AAEDEFFGAE (362/96)
DEFFGAEEED (34/29)
AEFFGAAEGD (177/84)
GAADAG (47/36)
DAGFFGA (170/77)
DIA (26/25)
AAAGAIAE (64/52)
EAEIAE (68/54)
AEGDEAAEA (73/55)
EAAEAEBFD (280/93)
EBFDE (280/93)
AAAGEAE (187/82)
GAAGAGAE (65/52)
AIDEAAE (65/46)
IFFGAEEE (46/33)
GAEEEDEAAA (123/71)
DAAAI (45/36)
GADAAEAE (586/100)
DEFFGAAEGE (140/74)
CHD (43/36)
DFFGAAEDE (87/60)
EIEFFG (280/95)
AEGDEAA (226/87)
FFGAAGE (126/72)
FAEIA (64/43)
IACH (15/14)
GEAEB (79/55)
EBEFF (318/94)
GAAEGAEGE (97/60)
ADEAADEAAE (567/100)
EIEAEB (131/75)
ABF (66/49)
EEAEBFE (64/49)
IEGA (35/28)
DDEIE (34/28)
AABFEE (137/68)
DAGAB (67/56)
FFFGADE (649/100)
FEFFGDE (649/100)
ACHGDE (74/49)
FFGEGA (77/54)
AEGEAEBFD (94/60)
GEEBFDE (195/87)
AAEFFGAAED (232/88)
AEBFAEGD (95/66)
AAGAID (67/48)
GDEFFGAAED (84/63)
EGEAEBFEA (183/83)
IAEDAEGA (30/27)
GEFFGAEGA (108/68)
AAGACHGD (123/68)
DEEEEEA (69/51)
AAEEEAE (146/73)
GAAEDEFFGAA (168/80)
AAEDEFFGAAE (194/87)
FFGAAEIA (90/55)
GAAIACHGD (113/68)
IACHG (102/65)
DEFGAEFF (459/100)
EFFGAEFFGAE (3216/100)
GAFFGAEAE (1204/100)
EFFGAEAEBFE (1792/100)
FFGAEAEBFEF (1080/100)
FGAEAEBFEFF (1080/100)
GAEAEBFEFFG (1080/100)
AEAEBFEFFGA (1658/100)
EAEBFEFFGAE (1824/100)
FFGAEFFGAEF (1884/100)
FGAEFFGAEFF (1884/100)
GAEFFGAEFFG (1884/100)
AEFFGAEFFGA (2885/100)
GEFFGAAEIA (445/98)
AEFFGAAEIAE (574/100)
IAEGEFFGA (457/99)
IAEGEFGAEF (132/76)
FFAEFFG (916/100)
GAACHGDAI (118/63)
ACHGDAEIE (105/66)
DEIEFF (229/87)
GDEIEFFG (89/55)
DAIFFGAA (138/74)
IEFFGAAEIAE (188/79)
EIEFFGDE (663/100)
IEFFGADEAAE (323/95)
ADEAAEFFGAA (702/99)
FGAAG (207/88)
EAADEAAEF (54/47)
ADEAAEFFGAE (1009/100)
AAFFGAEEE (319/94)
FFGAEEE (51/39)
EDEAAEFFGAE (171/79)
AAEFGAEFF (1365/100)
FFGAAEGEF (123/69)
GAAEGEFFGAA (317/95)
AAEGEFFGAAE (397/99)
GFFGAAID (75/55)
IDEAADEAAE (105/68)
ADEAAEFFGAD (328/95)
AEFFGADEAAA (715/100)
GADAAAEIE (176/80)
AAEIEF (659/100)
AAEIEFFGAAE (569/100)
AAIEEEE (101/63)
IEEEEFFGAE (157/74)
IEEEEFFGAEF (91/57)
BFFFGAE (287/95)
GEGAEF (72/55)
GAFFGAAEIE (664/100)
AFFGAAEIEE (151/77)
EEEDE (66/50)
AEFFGAAEIEF (619/100)
GAAEIEFFGAE (684/100)
IEFFGAEA (233/88)
IEFFGAEAE (521/100)
GAEAEBFAEGE (194/89)
BFEGEA (86/56)
IEEBF (37/31)
IAEBFAEIE (134/68)
BFAEIEEE (134/69)
GAIEFFGAE (220/84)
GAEIEFFGAEF (141/71)
IEFFAEFF (1335/100)
EFFGAACHGDE (723/100)
DEAEBEFF (161/81)
DEEBFEFFGA (363/97)
DEAEB (28/26)
DAEFEAE (93/57)
EAEBAEIE (67/48)
FEIEFFG (566/99)
EIEFFGAEA (74/53)
BAD (88/64)
FAEDEFFGAEF (61/47)
GAFFGAEEE (625/100)
GAFFGAEEEE (300/94)
AEFGAEEEEF (267/93)
GEEEE (613/100)
GAEEEEFFGAD (98/64)
AEEEFFGADE (157/78)
FFGDE (334/98)
EEFFGADEAAE (163/78)
EEBFDEAAA (83/57)
EBF (553/100)
AAAEIEAEBFE (140/77)
AAEIEAEBFEA (116/66)
FABFDEAAE (122/69)
FDEAAEFF (573/100)
FDAAFFGAE (280/92)
GAEFFGAAEDE (253/90)
EFGAAEDEF (220/87)
DFFGAAIAE (122/69)
GAIFFGAD (72/53)
IEFFGADEAAA (234/85)
GADAAAGA (132/72)
ADEAAAEGAEG (61/48)
GAEGEFFGAEF (98/63)
GAEAEBFAEIE (274/93)
AEAEBFAEIEF (246/89)
AEIEFGAEF (164/74)
AIEFFGAEE (158/81)
IEFFGAEEEEF (95/59)
DAAAIAI (164/80)
IAEIEAE (283/93)
IAIAEBFE (146/75)
AIEAEBE (100/69)
IEAEBFEFF (589/99)
FGAEDE (49/42)
AAEFFGAEEEA (104/63)
EEECHGD (34/25)
FFGD (88/59)
GAEDEAEBFA (75/50)
DEFFGAACHGD (158/80)
GCHGDEGA (59/44)
ACHGDAGA (75/52)
EDEAAAE (43/35)
IAEDEAEB (102/64)
IADABFE (63/46)
EAEBFEAEBFE (724/100)
BE (501/100)
DFFGAAEIE (106/65)
FFGAAEIEF (126/70)
IFFGAA (117/66)
AACHGDDEAAA (123/73)
AAEIDEAAAEI (147/80)
AAIFFGAE (338/96)
AAEIEFFGAEF (632/100)
GEFFGDEA (1336/100)
AEFFGADEAAE (977/100)
GAEFFGAAEGE (477/99)
FFGAAEGEA (190/84)
EEBFA (150/77)
AAEGEAEBFAE (186/85)
FAEIEFFGAAE (172/83)
IEFGAAEIEF (189/84)
AEAEBAEGEF (161/85)
FEGEFFG (382/100)
GEFFGAEAE (364/98)
GAAEBFEEE (262/92)
EAEBFAEIAE (248/88)
EICHGDDE (118/73)
ICHGDDEAA (46/40)
AIAGE (30/27)
DAAACHGD (203/92)
AACHGDEFFGA (699/100)
AEIEAEBE (67/48)
GAAGEAEBFE (208/91)
AAEGEAEBFEF (156/77)
EAEBEF (367/97)
IDAGA (59/47)
EAAAEGAEI (28/27)
AEIDEAA (96/65)
IDEAAEF (650/100)
IDEAEFFGA (650/100)
IDEAAEFFGAE (306/95)
AEFFGAAEIEA (244/92)
GAAEIEAEBFE (302/96)
AAEIEAEBFEF (252/93)
FFFGAAEIAE (151/73)
EFFGAEIA (225/92)
FFGAAEIAC (96/58)
EIACHGD (40/31)
AAIACHGDD (61/44)
GAEEEFFGAE (300/94)
AEEEEFFGAEF (269/95)
GAAEGEFFGAE (426/99)
AAEGEFGAEF (389/99)
DAAAGE (150/76)
AAEEFF (468/100)
EGEFFGDE (424/97)
GEFFGADEAAA (154/81)
AEDEAEBFAEI (98/63)
EBAEIE (63/52)
ACHGDEFFGAA (526/100)
DFFGAAGD (50/35)
GAGDAA (125/72)
DEAEFFGA (446/98)
GDAAEFFGAE (208/90)
FGEEEEA (128/73)
GAEEEEAEBFA (104/64)
EEAEBFAE (136/75)
EACHG (63/40)
BFAEBFEEE (120/68)
GIAIA (35/31)
EAAAEIA (33/26)
AAAIACHGD (50/39)
DEFFGADEAAD (59/43)
GADEAADE (714/100)
ADEAADEAAAE (328/93)
GAIFFGAA (127/70)
EGDEAAEIA (99/62)
GDAAAIA (81/57)
DEAAAEAE (39/32)
GADAAAEIAE (183/81)
AAAIAEIAE (90/57)
IAEIAEG (35/29)
GAEGEAE (127/76)
AEIEAE (219/84)
GAIEAEBFE (119/66)
EIEBFE (34/29)
AEGDEAAAEI (33/28)
AEBFEFFGAEA (477/99)
EBFEFFGAEAE (477/99)
BFEFFGAEAEB (477/99)
FEFFGAEAEBF (477/99)
GAADE (60/44)
EAEBFAEIA (91/59)
EBFAEIAC (43/36)
IIFF (54/39)
GAEEEEFFGAA (217/86)
EEEFFGAAE (300/95)
IAGFFGAAE (153/72)
GFFGAAIAE (134/74)
IAIEG (179/80)
IFFAA (64/49)
GAAGDAAD (84/51)
AADEAAE (74/51)
AAEFFGAAEIE (347/97)
DEFFGADEAAA (141/80)
EEEEFFGAA (124/70)
IDEAAEFFGAD (104/62)
FGAAEGA (162/73)
FFGAAEGAE (369/94)
AAEGAEIAEI (67/49)
EDEFFGA (162/86)
ADFFGAA (49/42)
FGAAED (81/57)
DEFFGAEDA (25/23)
GGFFGA (35/26)
FFGADEAAE (200/86)
GAEEEEAEBFE (148/79)
EEEEAEBFEA (58/46)
BFI (76/49)
DDEAEAEBFA (75/51)
AAEAEBFAEGA (61/44)
BFG (167/90)
IIDE (33/28)
IDAAACHGD (58/40)
ADAAADAE (80/58)
DEIEEBFA (42/36)
IEAEBAEIE (72/51)
GEFFGEG (291/95)
EFFGAAEGAC (80/58)
GEFFGAAEIEF (145/73)
GEEBFDEA (592/99)
AEBFDEAAD (127/69)
FDEAADE (299/91)
DDEE (34/29)
AADEAAEAE (289/94)
DEEAEBFA (298/95)
BFAGE (97/64)
AEGEFGAEF (124/74)
GAAEIDEAAAE (206/85)
FGAEEEEF (72/56)
GADEAAEEEE (89/63)
GAAEIEF (93/62)
GAAEIEAEBFA (194/79)
AAEIEAEBFAE (247/89)
AIAIAIE (74/51)
IAIFFGAAE (205/84)
FFGEI (37/29)
CHGDAI (45/38)
IFFG (107/63)
DAIFFGA (25/25)
BFAGA (28/24)
AAEIAEIAEI (101/60)
DECHGDA (118/65)
ACHD (28/24)
CHGDAEGE (63/47)
DEGEFFGAA (48/40)
AGFFGAAE (85/58)
AAAEIDEAAEF (98/62)
EAAAEDAE (43/38)
GDEAAEFFGAA (170/82)
IAEDEFFGAE (114/74)
IAEDEGAE (67/49)
AAEIEEEAEI (25/21)
EIEFFGAEF (91/59)
AEAEBFDEAAE (429/99)
IEAEBFD (45/35)
IEBFDE (297/96)
IABFDEAAE (153/76)
FDEEFFG (205/85)
AAEDEF (228/88)
AADFFGA (127/72)
DFFGAD (34/29)
GEDEE (35/30)
AAEAEBEFF (599/99)
GAEFFGAAEDA (140/77)
AEFFGAAEDAE (182/85)
DAGEFFGAE (91/61)
DGFFG (45/34)
FCHGDDA (54/43)
DDEAAEFFGAE (242/88)
AEIEFFGAAC (94/60)
FFGAACHGDEF (447/99)
FGAACHGDEFF (447/99)
GAACHGDEFFG (447/99)
DFFGAAIE (121/73)
DEFFGEIE (69/51)
DEAAAEGAEI (106/63)
AAAGAEIAE (64/52)
AEAEIAEG (28/28)
GDEAEA (51/40)
AGDAAAE (73/55)
AEAEBFDEAAA (308/96)
FDAAAEGE (99/66)
AAGAEBFE (85/54)
IDEAAEAE (260/96)
IDAAABFE (126/74)
IFFGAD (46/33)
DDFFGA (42/32)
GADEAAEAE (586/100)
ADEAAEAEBFE (443/100)
DEFGAAEGEF (84/59)
IICHG (35/31)
GABFA (30/26)
AAEDEFFGAEF (212/87)
GAAEIEFFGAD (181/84)
IEFFGADEAAD (105/67)
GDAA (76/49)
GAAEIAEIAEG (65/48)
IEFFGEIEA (99/61)
CHGDEEBFA (202/97)
EAAEAEBF (33/27)
AFFGAEEEAE (281/95)
GABE (25/22)
AEBE (25/23)
FFGADEAAD (70/44)
GADAADAAE (356/99)
ADEAADEAAEF (336/93)
IEAEBFE (67/48)
ABFE (66/49)
IEAEBE (46/39)
FFF (101/66)
FGAEDEA (25/23)
IDEEAEBFA (99/63)
BFAIAG (107/65)
DAAAIAE (50/37)
DDAAEAEBFE (87/53)
EAAEFFGA (68/48)
FEFFGDEAA (230/93)
AAAEGEFFGAE (235/91)
AAEGEFFGAEA (170/76)
CHG (240/91)
HGDEFFGAAC (76/56)
DEFFGAACH (76/56)
DEFFGAACHG (76/56)
GAACHGDEE (104/66)
EEEEFFG (33/30)
EEFFGAAE (61/47)
AGAE (69/51)
IAEIDEAAAE (30/27)
AGABFDE (94/60)
EGEEBFDE (195/87)
AFFGAADE (115/66)
GAAEDEFFGAE (235/92)
GAEAEBFAEGD (60/49)
FAGDE (95/66)
AEGAEIDEA (67/48)
DGAAD (48/38)
IEEBFDEAA (93/59)
DEAAAEIAEG (25/23)
AAIA (92/65)
GAAGACHGD (86/57)
AEGACHGDE (75/49)
AEFFGADEAAD (324/96)
AEFFGAAEGEF (409/97)
FEFFGADEAAE (317/94)
DAEEEEA (48/38)
AAEBFE (83/56)
AEEAEBE (152/78)
GDAC (235/93)
DAEDD (69/43)
AEGAC (54/41)
IAEGEA (179/79)
GAAEDD (241/90)
DADD (69/43)
FADA (181/82)
CHGDAC (222/93)
GADA (72/47)
EEAED (150/76)
FDEE (280/92)
AEE (147/77)
DEAEBFD (174/83)
DEDDE (69/43)
AADEAAD (356/92)
DDEAAD (99/58)
DAAD (221/84)
GAEDAEG (72/52)
IAEAED (30/28)
AAEEEAC (64/49)
BFD (142/79)
DEAAEEED (166/79)
AAEEEAEG (98/67)
GEDEA (72/47)
GAEDEAEB (72/47)
GAEDA (82/54)
ADEE (73/55)
GAEEEAED (106/61)
AEEEAEDA (50/40)
IEDA (46/40)
DACHGDE (153/77)
AAEDD (102/65)
AAEDDEAA (341/95)
FDAAAE (280/92)
AEEEEE (121/66)
AAACHGDD (132/74)
EGEEED (52/38)
AADAA (187/81)
DAEBFDE (174/83)
EDDEAAD (97/57)
AEACH (66/45)
ABFEE (85/56)
EEBFEA (183/82)
AADAI (170/86)
IADAI (46/36)
IEGEDA (40/34)
FFGAAC (147/80)
GEIEIA (72/48)
ACHGDAC (120/74)
GDACHGD (102/64)
DAAEE (136/76)
EDEAAD (72/51)
AADEAAAEI (346/94)
EEEAEGA (40/34)
EDEAEBE (202/89)
GEGEDA (59/46)
DAAAD (42/34)
ADEAAEEEA (171/83)
AAEGAEGA (47/34)
DAIAI (25/22)
AGADE (73/56)
AEIAEGEA (73/52)
EFFGEA (224/85)
ADDAAE (181/81)
AAEAEBFAC (90/58)
FDAAEAE (280/92)
AIDA (147/77)
GAADD (241/90)
DDAAAE (82/50)
EAAACHG (89/63)
GEEEDE (107/66)
EDEAEBFD (91/60)
AEEEAEID (49/35)
AEIAEDE (105/72)
DEAADEAAD (345/92)
DEAADE (345/92)
DEDEA (345/92)
DDAAD (97/57)
GAAGE (93/53)
GEEEEA (42/35)
DEAEGA (63/48)
IEEEEIEA (25/22)
ADDEAAE (217/87)
GEIEG (164/73)
ACHGDEA (96/66)
DEAEBFAEG (138/73)
DEEEDEA (42/37)
CHGDD (81/61)
AEBFEAE (183/82)
GAADAI (117/75)
DDAAEE (60/51)
AIAIA (84/58)
AIAIAE (65/46)
AGDAA (67/46)
AEIAEIE (82/54)
FFGA (110/70)
EAAAE (33/28)
DDAAAD (34/29)
IIA (63/43)
IAEIEAAD (46/38)
AACHGDAC (80/57)
BFDAAEEE (136/76)
DAADE (72/51)
DEAEIA (119/69)
EIEAEBF (30/26)
IFFGAAEGE (197/83)
GAAGADA (50/40)
DAIAEBFE (91/59)
ABFAG (81/55)
AAEEEA (110/71)
FAEIEFFGA (96/59)
GAEGEFFGAA (98/65)
IEEBFAEIA (127/71)
AEGAEIAEI (42/32)
GAAGA (47/38)
GADFFGAE (77/57)
AIAGAE (73/52)
IAEGEAEBF (30/26)
HGD (224/85)
GADEAAAEDD (25/20)
AADDAA (48/37)
GABFE (47/35)
AEBFDEAAEA (273/92)
DEAAEAEBF (273/92)
EEEEEBFA (30/24)
GEDDEAAA (77/55)
ADDAAA (94/65)
DDEAAACHGD (87/63)
FFGAAED (110/68)
AADEAAEEEA (61/46)
GDEADEAAA (85/60)
AADAAAEIE (177/78)
AAEIDE (49/35)
AAEIAEDE (64/55)
GDDAAAI (58/46)
EDDEDE (97/57)
DDAADAAE (119/73)
AAAEGAED (81/58)
DEAAAEGE (63/48)
FFGAAEGD (42/34)
AAEGDEAAAE (188/83)
EEEEFF (43/36)
IEEEEFFG (126/62)
IEFFGAAEGA (161/79)
EIE (76/57)
BFEEEE (230/85)
EIDEAAEA (112/68)
EFFGAEDA (65/48)
GAAEDDEAAE (133/73)
AADDEAAE (104/64)
GAAIAGA (146/71)
BFAE (63/49)
DABFAEGE (77/52)
IDAAA (45/33)
DEAAAEDE (114/65)
DABFE (47/37)
FEEEEFFGAA (116/68)
EAEFEAE (183/82)
AAEDAEIE (67/52)
EAEA (28/27)
GADDAA (25/21)
DAEIEFFGAD (69/51)
DEFFGEEEA (73/51)
EDDEAA (34/30)
GEIAEIA (72/48)
DAEIDEAAE (80/61)
GFFGAAD (72/51)
IAEIEAEBFD (49/37)
DAGDAAD (39/32)
IAIAAD (46/38)
EDEADEA (72/51)
DAADAAA (45/38)
AAAEIACHGDA (50/39)
AIACHGDAE (114/72)
IABF (30/26)
IEGAAEGEF (121/66)
GFFGAAGAE (85/59)
DEIEAEBFEA (25/23)
GEEBFDEAAA (65/51)
EBFEA (89/56)
EDEEEEFF (43/40)
BFAI (46/39)
FAIFFGA (96/59)
FFGDEAAA (115/64)
IGFFGE (59/46)
DAADAAE (79/56)
GEFFGEEEA (226/85)
GEEBFAEGA (135/82)
EGACHGDD (28/26)
IABFAEIAE (112/68)
AEAEDEFFG (73/56)
GADEFFGAE (77/57)
DEGAEF (46/39)
EFFGAEAEB (224/85)
AADD (25/20)
EDDEA (102/65)
AEIEFFGAD (99/60)
ADEAADEAAEA (145/75)
GAEGEA (47/34)
FDEAAEAEBFA (90/58)
AAEAEBFAEID (50/39)
FAIDEA (147/77)
AEEEFFGAE (143/74)
AFFGAEEE (70/51)
GEDDE (241/90)
GAADDAAAE (65/50)
ADEAAACHGDD (70/51)
CHGDDA (184/87)
DDEAAEFFGAA (157/82)
FFGAADD (110/68)
ADAAEAE (49/40)
EDEEBFDEA (91/60)
ABFDAA (108/71)
DAAABFE (149/73)
AADAAA (74/55)
AADEAAAEIE (177/78)
ADEAAAEIEF (115/66)
EEAEIDEA (49/35)
EIDEAA (68/44)
AAAEGEAEBFA (64/48)
IEDEFFGA (30/26)
AACHGDAG (73/53)
GDGFFGA (79/55)
DAEGEFFGAEF (99/62)
DAADAAD (48/38)
AADEAADEAAE (211/86)
AAEIAEDAEI (30/27)
DDADAA (52/40)
DDAADEAAE (69/52)
AEIDEAAAE (30/27)
IAEIDEAAAEI (46/32)
GEEBFAEDA (62/51)
FFGAAGD (42/34)
GAGDAAA (125/73)
EAAAEI (96/59)
FGADAAE (228/90)
IFFGGA (135/74)
BDEA (76/57)
GAEAEBFEEEE (148/74)
EBEEEE (150/77)
EEFFGAEF (86/63)
IDAAEAE (112/68)
FGAADA (60/47)
GAADDEAAE (77/55)
AAEDDEAAE (104/64)
AEDDEAAEFFG (217/87)
DDEAEFFGA (219/87)
ADEAAAEIEA (90/61)
AAIEAE (130/74)
AEIAEGAEI (74/50)
BAGE (52/39)
FAGFFGAAE (116/66)
GAEFFGAEEED (99/64)
GDEEFFGAE (61/45)
GADAAAEDE (77/53)
GAAEGEFFGAD (129/70)
AEBFEAEBFEA (182/82)
EBFEAEBFEAE (182/82)
BFEAEBFEAEB (182/82)
FEAEBFEAEBF (182/82)
FEFFGADEAAD (99/62)
DAAEIEA (40/31)
DAIFFGAE (94/66)
DAEIEFFGAEF (126/74)
AAEAEBFAEIE (140/74)
AEAEBFAEIEA (101/62)
DAEIEFFGAEA (50/42)
IDEAEFFGAA (238/92)
IAEDAEIEFF (28/27)
DAIFFGAD (69/51)
AEAA (111/68)
DAADAADE (162/77)
DADAA (86/56)
AADEAADEAAA (132/69)
DEADEAAA (52/38)
EAAAC (124/73)
GDEAAE (66/51)
AAAEDEFFGAA (64/51)
DAIA (97/62)
AEGAEIAEIA (25/20)
EIAEIACH (17/16)
GDAIDAAE (35/31)
IAIA (28/26)
IAIABFDE (49/37)
DG (39/32)
DAAEEEAE (52/46)
IEIDEADEA (46/38)
AEGEFFGAAC (67/47)
CHDEFF (66/45)
GDEEE (131/71)
AAEDAC (109/70)
EAEI (70/52)
AEIAEG (116/69)
AEDAC (74/52)
EID (51/40)
EEEA (79/53)
GDCHGDA (85/57)
AEIAEGD (42/38)
DEAAAEG (113/66)
GEGAEIA (47/33)
AAIAE (156/75)
AEEEEAE (64/45)
IIE (31/26)
BFEA (214/85)
EEFFGAD (213/91)
AEGAEGEA (58/43)
AIAGD (42/38)
IAGDAAE (91/60)
DEIEI (34/26)
DAGAI (47/41)
DEEEA (30/28)
CHDAEG (52/42)
ACHGDAEIA (110/61)
DEIDEA (51/40)
DAIDAAD (39/34)
GEAEBFAEIA (61/42)
AAEDEAEBFE (140/77)
GEIEIEA (81/57)
EIEEBF (88/54)
CHGDEEEA (63/45)
EEBFAEGA (60/47)
GFFG (107/63)
DEFFGAAEID (49/37)
EDAEAE (43/36)
DFFGAEEEE (114/70)
CHGDAEID (52/44)
DGD (40/34)
DEAA (45/34)
EAEIAEG (60/44)
IAIACHGD (49/35)
GFFGEE (86/63)
AEBFEEED (49/34)
HDACH (38/33)
IDEAADEAAA (123/74)
IAGABF (86/61)
AAEDEFFGAD (104/63)
DEFFGADE (213/91)
DEEGA (84/55)
HGDA (38/32)
HGA (38/31)
GAEGEAEBFA (50/40)
EDEFFGAAEG (145/75)
IEGDEA (42/38)
IAGDEAAE (91/60)
FFGEG (117/68)
AEAE (30/28)
GEFFGAAEDD (25/20)
DDEADEAAA (60/42)
DBF (39/33)
GAEGAEIA (47/33)
IEGEEBFA (62/44)
ADABFE (49/40)
AEACHGD (74/52)
ADACHGD (58/45)
AEIAEIAE (30/27)
EEEEBF (46/37)
DEAAEAEBFD (131/74)
CHGDI (95/55)
IEFFGEGE (51/40)
GABFAIA (50/36)
GAADAB (102/64)
ADAEBE (79/56)
GAAIAIA (81/57)
IAIAEBFAE (77/50)
EEBFEIE (43/35)
ACHGDEEEA (49/38)
AEAEIAE (49/40)
IEIEFFGE (76/52)
DFFGAAID (49/37)
DEEBFDEAA (42/30)
EGAEEEEF (68/49)
AEFEAE (214/85)
EFFGAAEIEF (154/80)
BFEGA (28/24)
CHGDAID (52/44)
II (33/28)
EEEAEIAE (43/33)
IAEIACH (31/25)
GFFGAEE (106/60)
ABFEEDE (49/34)
IDDA (97/62)
AAGDAAAE (65/49)
FFGAAI (83/55)
IAGAB (45/37)
AADEFFGADE (104/63)
EDEFFGADEA (213/91)
EFFGDEA (214/91)
ADAAAGA (79/54)
ABFDEAAE (73/55)
AAEIEAEBF (96/64)
BFEIE (31/26)
AEIDEAAAEI (45/33)
IBFGA (54/42)
IEGAAEDEF (76/55)
IADFFGAA (72/50)
EFFGAAEDEF (62/45)
GDFFGAE (50/42)
EEEEAEBE (40/33)
DAEGAEIEFFG (47/41)
GDEFFGAEGA (65/44)
DFFGAAGAE (99/59)
AEEAE (30/28)
GFFGAADD (25/20)
EDDADEA (52/39)
EFFGAAE (97/59)
DAIDAA (45/38)
EAEB (68/49)
DACHGDEAEB (48/38)
GEAEBFEA (25/22)
DACH (39/34)
DDDEE (34/32)
BFAEDEA (42/38)
ABAI (47/37)
EEAC (46/36)
GDDEAAD (122/67)
EEEAE (40/35)
BFAC (39/29)
GDDAAD (122/67)
GDDEDE (122/67)
DABFD (82/52)
AD (52/36)
GDAAAGE (65/44)
IEAAAEID (51/38)
CGDACH (40/34)
AEIDEAAEF (92/56)
GGDE (56/44)
AAEIDEAAD (58/46)
AADEAAAEID (50/38)
DEAEAAD (40/27)
GAEEEDEAAD (50/35)
DEBFDE (82/52)
GDAAAEGE (65/44)
EGEA (40/31)
IEAADEAAD (63/48)
DEAAEGEA (77/55)
EAAEEEE (33/30)
FDEADEAAA (94/62)
EFFGAEEE (40/34)
IEAEBFEEED (25/22)
GAAEGEEEE (60/39)
AEIEFFGA (33/27)
AEBFA (28/26)
AAIDAAD (58/46)
AADAAAID (50/38)
IEI (55/42)
FAEGEAEBFEF (58/44)
DEEBFDEA (82/52)
DDAADAAA (49/36)
EGDEAAAEG (62/48)
EIAEDDE (40/33)
GAEAEDE (25/21)
GEFFGAEIEA (47/37)
ABFEEE (82/51)
AAEGAEGAEI (25/24)
GIBFA (59/44)
DDAADAA (67/53)
EBFAEG (35/33)
EGAAEDEF (43/35)
DEAAAEIAEI (45/37)
IDAADAAD (63/48)
AIDAA (46/38)
IDEEEEA (54/41)
IDEEIDEA (51/38)
DAAAGEAE (77/55)
IABFDE (25/22)
FED (38/35)
DEFFGE (52/40)
BFDEAAA (48/38)
BAE (31/27)
IAEBFAE (81/57)
ABFAIE (67/47)
IEDEEEA (25/24)
IAEGAEGE (40/34)
IEGEAA (35/28)
ADEAAEEED (87/58)
IABFAG (86/56)
IAEDEEEA (25/24)
ADAAAD (48/40)
DADFFGA (60/43)
DEF (26/23)
BFEG (51/37)
IABFEEEE (77/54)
IGAA (35/28)
ADAAEEEDE (87/58)
DACHGDAG (25/22)
GAAEGAEIAC (25/20)
EGEEEAEI (28/27)
GAAEIAEGAEG (50/37)
DEEEFFGAE (62/48)
IEAEBFDEAAD (49/37)
DFF (37/32)
DF (26/23)
IAEBFEEEE (77/54)
IGDDE (35/28)
EIAC (27/23)
AGABF (47/36)
EIEAEBFAC (43/33)
DEEED (48/39)
DEGAEDA (25/21)
HGDAC (20/19)
ADAD (48/40)
CGDAC (20/19)
GDEGAEIA (25/23)
GEIEEEA (128/68)
DEED (34/27)
EBFDEAAA (85/60)
FE (33/29)
EEEFF (76/53)
IDEAAAEGE (75/51)
IDEAAEAEBFD (34/27)
IAEGAEGA (28/22)
EEEFFGAAC (40/32)
GGFFGE (35/31)
FCH (20/19)
GADEAAAEGEA (50/41)
IEFFGAED (34/28)
IDECHGD (34/26)
IEEEEI (59/45)
GAEIEA (45/35)
IEEEAEIAEI (25/20)
AEGAEIAED (25/21)
AAGA (30/28)
IAEDDEAAE (33/27)
DEAAAEDA (40/32)
GAIA (45/35)
EDEBFEA (40/31)
AABFEEE (33/27)
AEIEFFG (28/24)
EAAAEGE (33/26)
GACHGDAI (25/20)
GABFAE (25/22)
CHGDDEA (52/40)
DEFFGEDEA (28/25)
IAEIEFFGAAC (31/26)
FGAA (26/21)
IBFA (28/25)
DEAEIDEA (28/22)
EIAEDE (40/32)
AEAAD (26/21)
FAG (39/33)
IFFGAAG (25/24)
EGAEGAEI (34/30)
IEEEEFFGE (46/34)
AEIACHGDE (30/26)
IEAEBEEEEF (50/38)
EAAAEIAE (54/41)
AAAIE (31/30)
HGDAD (28/25)

Der Code dazu:
[src=python]# Find dna blocks
filesToAnalyze = 10;
maxSubFilesToAnalyze = 100;

maxSampleCombinationLength = 12;
minSampleOccurence = 2;
minFileOccurence = 10;

sampleStore = [];
sampleStoreCount = [];
sampleStoreFileCount = [];

dataFileIndex = 0;
subFileIndex = 1;

print("Starting sample search mode...\n");
# Prepopulate data store with file data for later processing
fileDataStore = [];
print("Generating data store...");
while (subFileIndex <= maxSubFilesToAnalyze):
filehandle = open("resultset"+str(subFileIndex)+"i.txt", "r");
fileDataStore.append(filehandle.read());
filehandle.close();
subFileIndex += 1;
print("Done.\n");

print("Scanning files...");
while(dataFileIndex < filesToAnalyze):
print("Scanning file %d..." %(dataFileIndex+1));
dnaData = fileDataStore[dataFileIndex];
dataFileSize = len(dnaData);

samplingSize = 2;
offsetStart = 0;
offsetEnd = 2;
searchString = "";
previousCount = 0;

while(True):
searchString = dnaData[offsetStart:offsetEnd];
searchCount = dnaData.count(searchString);

if not searchString in sampleStore:
sampleTotalCount = 0;
sampleFileCount = 0;
subFileIndex = 0;

while(subFileIndex < maxSubFilesToAnalyze):
subFileData = fileDataStore[subFileIndex]
searchCount = subFileData.count(searchString);

if (searchCount != 0):
sampleTotalCount += searchCount;
sampleFileCount += 1;

subFileIndex += 1;

if (sampleFileCount >= minFileOccurence):
sampleStore.append(searchString);
sampleStoreCount.append(sampleTotalCount);
sampleStoreFileCount.append(sampleFileCount);

offsetStart += 1;
offsetEnd += 1;

if (offsetStart >= dataFileSize):
samplingSize += 1;

if (samplingSize >= maxSampleCombinationLength):
break;

offsetStart = 0;
offsetEnd = samplingSize;

dataFileIndex += 1;

print("\nStarting to clean out sample storage...");
for headIndex, headSample in enumerate(sampleStore):
for index, subSample in enumerate(sampleStore):
if (headSample != subSample):
if (sampleStoreCount[headIndex] == sampleStoreCount[index] and headSample in subSample):
sampleStore[index] = subSample.replace(headSample, "", 1);
print("Done.\n");


print("Merging storage after cleanup...");
finalizedSampleList = [];
finalizedSampleCount = [];
finalizedSampleFileCount = [];

for index, sample in enumerate(sampleStore):
if (len(sample) >= 2):
if not sample in finalizedSampleList:
finalizedSampleList.append(sample);
finalizedSampleCount.append(sampleStoreCount[index]);
finalizedSampleFileCount.append(sampleStoreFileCount[index]);

print("Done.\n");

for index, sample in enumerate(finalizedSampleList):
print("%s (%d/%d)" %(sample, finalizedSampleCount[index], finalizedSampleFileCount[index]) );[/src]

*Edit:
Ich hab den Code schon circa 3 mal so geschrieben, aber ob das so hinhaut... sieht mir nicht ganz so aus, für Tips wäre ich daher dankbar :)

Der Code funktioniert wie folgt, suche Kombinationen mit mindestens 2 Buchstaben und erweitere die Größe bis zu X Zeichen innerhalb X Dateien. Durchsuche bei jedem Durchgang den Inhalt der anderen Dateien auf Vorkommen dieser Kombinationen, taucht die Kombinationen in mehr als Y Dateien auf verwenden wir es als Kombination und tragen es in eine Liste ein.
Das machen wir so lange bis wir Kombinationen mit bis zu 10 Zeichen gefunden haben und dann wird beendet.

Um jetzt mögliche Duplikate zu entfernen erfolgt ein Cleaning bei dem alle kleineren Bausteine in größeren ersetzt werden sollen so lange die Anzahl gleich ist - ich glaube hier liegt auch der Denkfehler bei diesem Ansatz, ist die Anzahl gleich haben wir eine große Kombination und die kleinere müsste weichen... :unknown:

Am Ende werden alle Kombinationen die mehr als 2 Zeichen haben und nicht leer sind auf die finalisierte Liste gelegt und ausgegeben.
 
Zuletzt bearbeitet:

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.760
Ort
in der Zukunft
Echt interessantes Thema - hatte mir nachdem ich den Eingangspost gelesen habe auch Gedanken darüber gemacht und hatte mir überlegt am Besten die Häufigkeit der am meisten vorkommenden Buchstaben zu nehmen und jeweils rechts oder links im wechsel etwas dazu zu bauen bis man die genaue Anzahl der 128 hat.
Viele der unterschiedlichen Aufgaben die gestellt sind ergeben einen Teil des Lösungsweges - sprich ich hätte nicht eine Aufgabe nach der anderen sondern das ganze im Gesamten gelöst (mehr oder weniger) Da über die gezählten Häufigkeiten aller Buchstaben zum schluss auch z.B. das mit dem Geschlecht ins Auge springen müsste?

Aber glaube mein Ansatz ist ähnlich der von Split - finde es daher interessant das mehrere Leute trotz aller Freiheiten in sachen Code etc. doch auf recht ähnliche Ergebnisse kommen können ;D
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #34
Folgend eine Liste von DNA Bausteinen [...]

Ich glaube die Liste ist als Lösung eh zu lang...

Die Liste ist deutlich zu lang. zB kommt der Baustein EEE in mehreren Bausteinen vor, was nicht stimmen kann.

Um jetzt mögliche Duplikate zu entfernen erfolgt ein Cleaning bei dem alle kleineren Bausteine in größeren ersetzt werden sollen so lange die Anzahl gleich ist - ich glaube hier liegt auch der Denkfehler bei diesem Ansatz, ist die Anzahl gleich haben wir eine große Kombination und die kleinere müsste weichen... :unknown:
Genau da ist min. 1 Fehler.
Der kleinere Baustein muss gleich oft oder häufiger vorkommen. Er kann ein Bestandteil von anderen Bausteinen sein.
Kommt er allerdings in mehreren großen Bausteinen vor, sind diese großen Bausteine keine echten Lösungen, manchmal allerdings schon...

---

Ich setze mich heute oder am Wochenende vielleicht noch mal ran und überlege mir was.
den 128 finde ich ja sehr sicher. ich denke diesen Ansatz nutze ich um Bausteine in allen Dateien rauszufiltern... Ich suche dann einfach nach Häufigkeiten.


Da über die gezählten Häufigkeiten aller Buchstaben zum schluss auch z.B. das mit dem Geschlecht ins Auge springen müsste?
Vielleicht, ich versuche vermutlich die beiden Lösungswege zu kombinieren.


Aber glaube mein Ansatz ist ähnlich der von Split - finde es daher interessant das mehrere Leute trotz aller Freiheiten in sachen Code etc. doch auf recht ähnliche Ergebnisse kommen können ;D
Dein Ansatz ist etwas effizienter als der von Split, doch grundsätzlich sehr ähnlich.
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Moin!

Ich hab mich heute kurz rangesetzt und alles nach einer Kombination mit 2 und mehr abgesucht bis die Anzahl abnimmt und es dann in die List einzutragen. Ist wesentlich kürzer, aber noch nicht so ganz das wahre...

Mein Code bisher:
[src=python]# Find dna blocks
filesToAnalyze = 15;

maxSampleCombinationLength = 12;
minSampleOccurence = 2;
minFileOccurence = 15;
minSampleSize = 3;

sampleStore = [];
sampleStoreCount = [];
sampleStoreFileCount = [];

dataFileIndex = 0;
subFileIndex = 1;

print("Starting sample search mode...\n");
# Prepopulate data store with file data for later processing
fileDataStore = [];
print("Generating data store...");
while (subFileIndex <= filesToAnalyze):
filehandle = open("resultset"+str(subFileIndex)+"i.txt", "r");
fileDataStore.append(filehandle.read());
filehandle.close();
subFileIndex += 1;
print("Done.\n");

for dnaIndex, dnaFile in enumerate(fileDataStore):
offsetStart = 0;
offsetEnd = minSampleSize+1;
previousCount = 0;
print("Starting to analyze file %d" %(dnaIndex+1));

while(True):
if (offsetStart >= len(dnaFile)):
break;

searchString = dnaFile[offsetStart:offsetEnd];

if (len(searchString) > maxSampleCombinationLength):
break;

searchCount = dnaFile.count(searchString);

if (searchCount < previousCount and searchCount > minSampleOccurence):
searchString = searchString[:-1];
fileCount = 0;
totalCount = 0;

if not searchString in sampleStore:
for dnaData in fileDataStore:
count = dnaData.count(searchString);
if (count != 0):
fileCount += 1;
totalCount += count

if (fileCount >= minFileOccurence):
sampleStore.append(searchString);
sampleStoreCount.append(totalCount);
sampleStoreFileCount.append(fileCount);

offsetStart = offsetEnd;

offsetEnd = offsetStart + (minSampleSize+1);
else:
previousCount = searchCount;
offsetEnd += 1;

for index, sample in enumerate(sampleStore):
print(sample, sampleStoreCount[index], sampleStoreFileCount[index]);[/src]

Ich poste nur, weil ich glaube das ich aussetze, der Ansatz findet zu wenig des erfragten bzw. gegebenen. ;)
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #36
Ich iteriere hier wie verrückt über eine Sequenz, die ich an bisher ermittelten Bausteinen aufsplitte und dann erneut prüfe.

Eigentlich will ich das nur 10 mal machen, aber ich glaube ich sollte mal hier und da Variablen leeren - Ich habe mir in wenigen Sekunden 8GB Ram vollgesaugt und dann passiert nur noch wenig, obwohl er dann die SSD mitnutzt (10GB dafür reserviert).

Ich habe in einer Sequenz (ich glaube 100) die Bausteine vor der eigentlichen Berechnung und Rekursion auf max. 740 runtergebrochen (das sind nämlich alle Kombinationen, bis 7 Buchstaben, die in allen Sequenzen vorkommen).

Nun versuche ich mit den beiden bekannten Bausteinen eine Sequenz zu splitten und hoffe, dass sich dabei eine Teilsequenz ergibt, die dann wiederrum so kurz ist, dass diese ein Baustein ist. Dann das ganze wieder von vorne.

Beim 3. Durchlauf ist mein Ram voll^^.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Ich glaube das Problem das sich stellt, ab wann ist ein Baustein wirklich ein Baustein, kann man Inhalte mit 3 Zeichen sorglos ersetzen?
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #38
@theSplit:
Ich habe es fast für eine Sequenz.
Wäre natürlich schön, wenn man in geraumer zeit von jmd. bestätigt werden würde.

Ich habe es auf insgesamt 7 Bausteine runtergebrochen. Diese muss ich allerdings nun noch einmal selber durchchecken lassen...
Rechenzeit für eine Sequenz liegt dann bei < 1min - bisher debugge ich noch sehr viel - sollte in wenigen Sekunden fertig sein. Ist auch um einiges effektiver als mein erster Versuch.

Die Bausteine wären derzeit:
[EEE, EAEBF, DEAA, AEDAEI, EFFGA, AEGAED, AEGAEG, AEGAEI, ACHGD]

Dabei muss ich nur noch AED, AEI und AEG rusfiltern. Dann müsste ich alles gefunden haben. wobei AEGAEG eventuell auch so ein echter Baustein ist.

Noch ein bisschen DEBUG-Ausgabe:
Der Block "EEE" kommt in allen Sequenz 72 mal vor.
Alle folgenden Blöcke, kommen in allen Sequenzen 128x vor:
[EAEBF]
Es gibt 1420 mögliche Bausteine.
Es gibt 740 mögliche Bausteine, die in allen Sequenzen vorkommen.
Es gibt nun folgende Teilsequenzen:
[EFFGADEAAAEIAEIEFFGAAEGEAEBFEFFGA, AEIAEIEAEBFAEGEFFGAEFFGAEFFGADEAAEAEBF, EAEBFDEAAEAEBFEFFGA, EFFGAAEIEAEBFAEGAEIEAEBFAEIEFFGADEAAEFFGADEAAEFFGADEAAEFFGAAEIEFFGAEFFGAEAEBF, EFFGAAEIEFFGAAEGAEIAEDEFFGAEFFGAEAEBFAEI, AEGEFFGAAEGAEGDEAAEFFGAEFFGAEFFGAEAEBFDEAAAEIAEIEAEBFEFFGAAEGAEDEFFGAAEIAEGAEIEFFGAEFFGADEAAEFFGAEAEBFEAEBFAEIEFFGAAEIACHGDAEIEFFGADEAADEAAAEIEFFGAAEGAEGAEGACHGDEAEBFEFFGAAEGEFFGAEAEBFEAEBFEAEBFEAEBFEFFGAAEDEAEBFAEDEFFGAEFFGAEFFGA, ACHGDAEDAEIACHGDAEDAEGAEIEFFGAAEIDEAAEFFGAAEGEAEBFEAEBFEAEBFDEAAAEIEFFGAEFFGAAEIAEGAEGAEIEFFGAEAEBFAEIAEGAEIDEAADEAAEFFGAEFFGAEFFGAAEGEAEBFEFFGAEAEBFDEAAACHGDEFFGAEAEBFEAEBFAEGAEIAEIAEIAEIEFFGAEAEBFAEIEFFGAEFFGAEFFGAEFFGADEAAEFFGAEFFGAAEIAEGAEGEFFGAAEGEAEBFEFFGAAEGACHGDEAEBFEFFGA, DEAADEAADEAA, DEAAACHGDAEGEFFGAEAEBFAEGAEIACHGDDEAAACHGDEFFGAACHGDAEIEAEBFEAEBFEAEBFAEIEFFGADEAADEAADEAADEAADEAA, AEIEFFGAAEIEAEBFEFFGAEFFGAEFFGAACHGDAEIEFFGAEFFGAEFFGAEFFGAAEGAEGDEAAEAEBF, EFFGAAEIEFFGAAEIEFFGAAEGDEAAAEGAEIEFFGAAEIAEDAEGEFFGAAEIEFFGADEAAEFFGADEAA, DEAAEFFGAEAEBFAEIEAEBFEFFGAEFFGAEFFGAEAEBFACHGDEAEBFEFFGAAEIDEAAAEIAEGAEIEFFGADEAAACHGDAEGAEDAEGAEIEAEBFEAEBFDEAAAEGAEIAEGAEDEAEBFAEIDEAAEFFGADEAAEFFGAEFFGAEFFGAEAEBFEFFGAEFFGAAEG, EFFGAEFFGAEFFGAACHGDACHGDEFFGAEFFGAEFFGAAEIEFFGAEAEBFAEIEAEBFEFFGAEFFGAEAEBFEAEBFAEDAEGAEGEFFGAEFFGAEAEBFEAEBFEFFGA, EFFGAAEI, DEAADEAAEAEBFEFFGAAEIEAEBFDEAAAEGEFFGAEAEBFAEIEFFGADEAAAEDDEAADEAAEFFGAAEIEFFGAACHGDDEAAAEIEAEBFEFFGAAEGEFFGAACHGDAEGAEI, DEAAAEIEAEBFEAEBFAEIDEAAAEIDEAADEAAEFFGA, AEIEFFGAEFFGADEAAEAEBFEFFGAAEG, EFFGAAED, EFFGAEAEBFEFFGAACHGDAEG, EFFGAAEIDEAAEFFGA, EFFGAEFFGAAEDEFFGAEAEBFAEIDEAAAEIEAEBFAEIEAEBFDEAAAEIEAEBFACHGDEFFGAEFFGAAED, DEAA, DEAAAEG, EFFGAACHGDEAEBFAEIEAEBFDEAA, EFFGAAEIAEGEFFGAAEGEFFGAAEGEAEBFEFFGAEFFGADEAA, EAEBFEFFGAAEI, AEIDEAAEFFGAEFFGAEFFGAAEIEFFGA, AEDAEDEAEBFAEDEAEBFAEIEFFGA, AEIEFFGAACHGDAEGAEIEFFGA, EFFGAAEIEFFGAAEGAEGEFFGADEAAAEIEAEBFEFFGAAEIDEAAACHGDAEDDEAAEAEBFEFFGADEAAEAEBFEFFGAACHGDAEI, EAEBFAEGAEDAEDAEIEFFGAACHGDDEAAAEGEFFGAEFFGAEFFGAEAEBFACHGDAEDAEGEAEBFAEDEFFGAEFFGADEAAEAEBFAEDEAEBFEFFGAEAEBFEFFGAAEGDEAAEFFGA, AEIEAEBFEFFGAEFFGADEAAEFFGAAEIAEIEFFGAAEI, EFFGAEFFGAEFFGAEAEBFEAEBFEFFGAAEI, DEAAAEIAEGAEIDEAADEAAEFFGAAEIAEIEFFGAAEI, AEIAEIEFFGAEFFGA, AEDAEI, DEAAAEIDEAAEFFGAEFFGAEFFGAEFFGAAEGACHGDAEDEFFGADEAAAEDEFFGAAEGEAEBFAEGEFFGAAEGACHGDEAEBFEFFGAEFFGAEFFGAEFFGAAEIAEIEFFGAAEIEFFGAEFFGADEAAEFFGAEAEBFDEAAEFFGAEFFGADEAAACHGDEFFGADEAAAEIEFFGA, AEDEAEBFAEGEFFGAEFFGAEFFGAEFFGADEAAEFFGAEFFGAAEIEFFGAEFFGAAEDAEI, AEIAEGAEIEFFGAEAEBFAEIDEAAAEDEFFGAEAEBFAEGDEAADEAAAEIEAEBFDEAAEFFGAEFFGAEAEBF, AEDAEGAEIACHGDEFFGA, AEIEAEBFAEIACHGDAEGACHGDAEIEFFGAAEI, EAEBFEFFGAAEDAEI, EAEBFAEDEFFGAEAEBFEAEBFDEAAAEIDEAAACHGDAEIEAEBFEFFGAAED, AEGEFFGA, EFFGAEFFGAEFFGAEFFGADEAAAEGEFFGAAEDEFFGAEFFGAEAEBFAEGEFFGAGEIAUEGGDIBEDAEGAEIAEGEFFGADEAAEFFGAEFFGAAED, DEAAAEIDEAAAEGAEIEFFGAEFFGAAEIAEGEFFGAAEIAEDDEAAAEIDEAAEFFGAEFFGAEFFGAEAEBFDEAAEFFGAAEIEAEBFEFFGADEAAEFFGAEFFGADEAAAEIDEAAACHGD, AEIDEAAAEIEAEBFEFFGAAEGEFFGAEAEBFDEAAEFFGAAEIEFFGAAEDEFFGADEAAEFFGAEFFGADEAAEAEBFEFFGAEFFGAEAEBFEFFGAEAEBFDEAA, EFFGAEAEBFAEGAEIAEGEFFGAEFFGAAEIAEIEFFGAEAEBFAEDEFFGAEFFGAEFFGAAEIAEDAEGDEAAAEIEFFGA, AEGEFFGAACHGDDEAA, AED, EFFGA, EFFGAEFFGAEFFGAEFFGAEAEBFAEGAEGEFFGADEAADEAAEFFGAEFFGADEAADEAAAEIEFFGAEAEBFEAEBFDEAADEAAEFFGAAEIAEGEAEBFDEAAAEIDEAAEFFGA, EFFGADEAAACHGDEFFGA, DEAAAEDEAEBFAEGAEGDEAAEFFGAEAEBFEFFGAEFFGAAEI, EAEBFEAEBFEFFGAAEIDEAAEFFGAAEIAEG, EFFGADEAAAEDDEAA, AEIACHGDAEIDEAAAEIAEI, DEAAAEIAEDEAEBFEFFGADEAAEFFGAAEDEFFGAAEIAEI, EFFGADEAAAEGACHGDEAEBFEFFGAEFFGAEAEBFEFFGADEAAEAEBFAEIDEAAEFFGAAEIEFFGAAEIEAEBFEFFGAEAEBF, ACHGDEFFGAAEGEFFGADEAAACHGDDEAAEFFGAEAEBFEAEBFEFFGAEAEBFEFFGAAEIACHGDAEIEFFGAAEIAEIAEGDEAAAEDACHGDEFFGAEFFGAAEDEAEBFDEAAEFFGAAEI, DEAADEAAEFFGAACHGDAEGEAEBFEFFGAAEGEFFGAACHGD, AEGEAEBFACHGDDEAAEFFGAAEIDEAA, AEGAED, ACHGDAEIDEAAEFFGAEAEBFDEAAEFFGA, EFFGAEFFGADEAAAEDAEIACHGDDEAAEFFGA, DEAAAEGAEGEFFGAAEIEFFGAEFFGAAEGDEAAACHGDEAEBFDEAAEFFGAEFFGAAEIEFFGAEFFGAAEDEFFGADEAAEFFGADEAADEAA, AEGAEG, AEGDEAAEAEBFEFFGAEFFGAEAEBFAEGAEGDEAADEAAACHGDAED, EFFGAAEGAEI, AEGACHGDAEIEFFGAEFFGAACHGD, DEAAEFFGADEAA, EFFGADEAAAEIAEIEFFGAAEG, EFFGAEEEAEIAEI, AEGEFFGAEFFGAEFFGADEAA, EFFGAEEEEFFGAAEI, AEGAEI, AEIEFFGADEAAEFFGADEAAEFFGADEAAEFFGAAEIEFFGAEFFGA, EEEEFFGAAEIEFFGAAEGAEIAEDEFFGAEFFGA, AEIEEEAEGEFFGAAEGAEGDEAAEFFGAEFFGAEFFGA, DEAAAEIAEI, EFFGAAEGAEDEFFGAAEIAEGAEIEFFGAEFFGADEAAEFFGA, AEIEFFGAAEIACHGDAEIEFFGADEAADEAAAEIEFFGAAEGAEGAEGACHGD, EFFGAAEGEFFGA, AEDEFFGAEFFGAEFFGAEEEACHGDAEDAEIACHGDAEDAEGAEIEFFGAAEIDEAAEFFGAAEG, DEAAAEIEFFGAEFFGAAEIAEGAEGAEIEFFGA, AEIAEGAEIDEAADEAAEFFGAEFFGAEFFGAAEG, DEAAACHGDEFFGA, AEGAEIAEIAEIAEIEFFGA, AEIEFFGAEFFGAEFFGAEFFGADEAAEFFGAEFFGAAEIAEGAEGEFFGAAEG, EFFGAAEGACHGD, EFFGAEEEDEAADEAADEAAEEEDEAAACHGDAEGEFFGA, AEGAEIACHGDDEAAACHGDEFFGAACHGDAEI, AEIEFFGADEAADEAADEAADEAADEAAEEEAEIEFFGAAEI, EFFGAEFFGAEFFGAACHGDAEIEFFGAEFFGAEFFGAEFFGAAEGAEGDEAA, EEEEFFGAAEIEFFGAAEIEFFGAAEGDEAAAEGAEIEFFGAAEIAEDAEGEFFGAAEIEFFGADEAAEFFGADEAAEEEDEAAEFFGA, AEI, EFFGAEFFGAEFFGA, ACHGD, EFFGAAEIDEAAAEIAEGAEIEFFGADEAAACHGDAEGAEDAEGAEI, DEAAAEGAEIAEGAED, AEIDEAAEFFGADEAAEFFGAEFFGAEFFGA, EFFGAEFFGAAEGEEEEFFGAEFFGAEFFGAACHGDACHGDEFFGAEFFGAEFFGAAEIEFFGA, EFFGAEFFGA, AEDAEGAEGEFFGAEFFGA, EFFGAEEEEFFGAAEIEEEDEAADEAA, DEAAAEGEFFGA, AEIEFFGADEAAAEDDEAADEAAEFFGAAEIEFFGAACHGDDEAAAEI, EFFGAAEGEFFGAACHGDAEGAEIEEEDEAAAEI, AEIDEAAAEIDEAADEAAEFFGAEEEAEIEFFGAEFFGADEAA, EFFGAAEGEEEEFFGAAEDEEEEFFGA, EFFGAACHGDAEGEEEEFFGAAEIDEAAEFFGAEEEEFFGAEFFGAAEDEFFGA, AEIDEAAAEI, DEAAAEI, ACHGDEFFGAEFFGAAEDEEEDEAAEEEDEAAAEGEEEEFFGAACHGD, DEAAEEEEFFGAAEIAEGEFFGAAEGEFFGAAEG, EFFGAEFFGADEAAEEE, EFFGAAEIEEEEEEAEIDEAAEFFGAEFFGAEFFGAAEIEFFGAEEEAEDAED, AEIEFFGAEEEAEIEFFGAACHGDAEGAEIEFFGAEEEEFFGAAEIEFFGAAEGAEGEFFGADEAAAEI, EFFGAAEIDEAAACHGDAEDDEAA, EFFGADEAA, EFFGAACHGDAEIEEE, AEGAEDAEDAEIEFFGAACHGDDEAAAEGEFFGAEFFGAEFFGA, ACHGDAEDAEG, AEDEFFGAEFFGADEAA, EFFGAAEGDEAAEFFGAEEEAEI, EFFGAEFFGADEAAEFFGAAEIAEIEFFGAAEIEEEEFFGAEFFGAEFFGA, EFFGAAEIEEEDEAAAEIAEGAEIDEAADEAAEFFGAAEIAEIEFFGAAEIEEEAEIAEIEFFGAEFFGAEEEAEDAEIEEEDEAAAEIDEAAEFFGAEFFGAEFFGAEFFGAAEGACHGDAEDEFFGADEAAAEDEFFGAAEG, AEGEFFGAAEGACHGD, EFFGAEFFGAEFFGAEFFGAAEIAEIEFFGAAEIEFFGAEFFGADEAAEFFGA, DEAAEFFGAEFFGADEAAACHGDEFFGADEAAAEIEFFGAEEEAED, AEGEFFGAEFFGAEFFGAEFFGADEAAEFFGAEFFGAAEIEFFGAEFFGAAEDAEIEEEAEIAEGAEIEFFGA, AEIDEAAAEDEFFGA, AEGDEAADEAAAEI, DEAAEFFGAEFFGA, EEEAEDAEGAEIACHGDEFFGAEEEAEI, AEIACHGDAEGACHGDAEIEFFGAAEIEEE, EFFGAAEDAEIEEE, AEDEFFGA, DEAAAEIDEAAACHGDAEI, EFFGAAEDEEEAEGEFFGAEEEEFFGAEFFGAEFFGAEFFGADEAAAEGEFFGAAEDEFFGAEFFGA, AEGEFFGAGEIAUEGGDIBEDAEGAEIAEGEFFGADEAAEFFGAEFFGAAEDEEEDEAAAEIDEAAAEGAEIEFFGAEFFGAAEIAEGEFFGAAEIAEDDEAAAEIDEAAEFFGAEFFGAEFFGA, DEAAEFFGAAEI, EFFGADEAAEFFGAEFFGADEAAAEIDEAAACHGDEEEAEIDEAAAEI, DEAAEFFGAAEIEFFGAAEDEFFGADEAAEFFGAEFFGADEAA, DEAAEEEEFFGA, AEGAEIAEGEFFGAEFFGAAEIAEIEFFGA, AEDEFFGAEFFGAEFFGAAEIAEDAEGDEAAAEIEFFGAEEEAEGEFFGAACHGDDEAAEEEAEDEEEEFFGAEEEEFFGAEFFGAEFFGAEFFGA, AEGAEGEFFGADEAADEAAEFFGAEFFGADEAADEAAAEIEFFGA, DEAADEAAEFFGAAEIAEG, DEAAAEIDEAAEFFGAEEEEFFGADEAAACHGDEFFGAEEEDEAAAED, AEGAEGDEAAEFFGA, EFFGAEFFGAAEIEEE, EFFGAAEIDEAAEFFGAAEIAEGEEEEFFGADEAAAEDDEAAEEEAEIACHGDAEIDEAAAEIAEIEEEDEAAAEIAED, EFFGADEAAEFFGAAEDEFFGAAEIAEIEEEEFFGADEAAAEGACHGD, AEIDEAAEFFGAAEIEFFGAAEI, EEEDEAAEEEACHGDEFFGAAEGEFFGADEAAACHGDDEAAEFFGA, EFFGAAEIACHGDAEIEFFGAAEIAEIAEGDEAAAEDACHGDEFFGAEFFGAAED, DEAAEFFGAAEIEEEDEAADEAAEFFGAACHGDAEG, EFFGAAEGEFFGAACHGDEEEAEG, ACHGDDEAAEFFGAAEIDEAAEEEAEGAEDEEEACHGDAEIDEAAEFFGA, DEAAEFFGAEEEEFFGAEFFGADEAAAEDAEIACHGDDEAAEFFGAEEEDEAAAEGAEGEFFGAAEIEFFGAEFFGAAEGDEAAACHGD, DEAAEFFGAEFFGAAEIEFFGAEFFGAAEDEFFGADEAAEFFGADEAADEAAEEEAEGAEGEEEAEGDEAA, AEGAEGDEAADEAAACHGDAEDEEEEFFGAAEGAEIEEEAEGACHGDAEIEFFGAEFFGAACHGDEEEDEAAEFFGADEAA]
Alle bisher bekannten Bausteine sind.
[EEE, EAEBF, DEAA, AEDAEI, EFFGA, AEGAED, AEGAEG, AEGAEI, ACHGD]
Es gibt nun folgende Teilsequenzen:
[AEGAEGDEAADEAAACHGDAED, EFFGAAEGAEI, AEGACHGDAEIEFFGAEFFGAACHGD, DEAAEFFGADEAA, ACHGDAEDEEEEFFGAAEGAEIEEEAEGACHGDAEIEFFGAEFFGAACHGDEEE, AEGAEGDEAADEAAACHGDAEDEEE, AEGAEIEEEAEGACHGDAEI, ACHGDEEEDEAA, DEAADEAAACHGDAEDEEEEFFGAAEGAEIEEEAEGACHGDAEIEFFGAEFFGAACHGDEEEDEAAEFFGADEAA, AEGAEGDEAADEAAACHGDAEDEEEEFFGA, EEEAEGACHGDAEIEFFGAEFFGAACHGDEEEDEAAEFFGADEAA, AEGAEGDEAADEAA, AEDEEEEFFGAAEGAEIEEEAEG, AEIEFFGAEFFGA, EEEDEAAEFFGADEAA]
Alle bisher bekannten Bausteine sind.
[EEE, EAEBF, DEAA, AEDAEI, EFFGA, AEGAED, AEGAEG, AEGAEI, ACHGD]
Es gibt nun folgende Teilsequenzen:
[DEAAEFFGADEAA, EEEDEAA]
Alle bisher bekannten Bausteine sind.
[EEE, EAEBF, DEAA, AEDAEI, EFFGA, AEGAED, AEGAEG, AEGAEI, ACHGD]
Es gibt nun folgende Teilsequenzen:
[]
Alle bisher bekannten Bausteine sind.
[EEE, EAEBF, DEAA, AEDAEI, EFFGA, AEGAED, AEGAEG, AEGAEI, ACHGD]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
AEIAEIAEIAEIAEIAEIAEDAEIAEIAEIAEIAEIAEIAEIAEGAEDAEDAEIAEIAEIAEIAEGAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEDAEIAEIAEIAEIAEIAEDAEIAEIAEDAEIAEIAEGAEIAEIAEIAEIAEDAEIAEIAEIAEIAEDAEGAEIAEIAEIAEIAEDAEDAEIAEIAEIAEIAEDAEIAEGAEDAEDAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEGAEDAEDAEGAEIAEIAEIAEIAEDAEIAEIAEDAEDAEIAEIAEGAEIAEIAEDAEIAEIAEDGEIAUEGGDIBEDAEIAEIAEIAEIAEIAEIAEDAEIAEDAEIAEDAEGAEDAEIAEIAEDAEIAEIAEIAEGAEIAEIAEIAEIAEDAEDAEIAEIAEGAEIAEIAEIAEGAEIAEIAEIAEIAEDAEIAEGAEIAEIAEIAEGAEIAEDAEGAEDAEGAEI
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Man muß ja irgendwie zur EBAEF (oder ähnlich) Sequenz kommen, ist das nicht gegeben wird es auch schwer eine Lösung zu finden.
Ich denke gerade an einen Threshold, weniger als 60% der Anfangssequenz, man erweitert das Ganze. Oder so ähnlich. Ich weiß auch nicht wie man das Aufkommen einer Sequenz von 128 auf 64 oder weniger gut reduzieren kann.

Vielleiht sollte man sagen die Sequenz mit einem Buchstaben mehr darf nur 1/3 weniger aufkommen, ansonsten ist sie Ungültig.
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #40
@theSplit:
Threshold kenne ich bisher gar nicht.

Ich poste mal meinen Code, mit dem ich zu der fast fertigen Lösung komme: (scheint falsch zu sein)
[src=java]public String[] searchAllBlocks(int minChars, int maxChars, Analyse_new[] other_sequenzes, List<String> knownBlocks) {
//Variablen
int seqLength = this.sequenz.length();
int maxOccurences = seqLength / minChars;

String[] tmp_blocks;
String tmp_fb = "";
String tmp_seq = this.sequenz;

String[] posibleBlocks;
List<String> foundBlocks;

List<String> blocksInAllSequenzes = new ArrayList<>();

String[] splitedSequenz;
//Andere Liste, da diese anosonsten in einer Schleife nicht bearbeitet werden kann.
List<String> splitedSequenzes = new CopyOnWriteArrayList<>();

List<String> tmp_splitedSequenzes = new ArrayList<>();
List<String> tmp_knownBlocks = new ArrayList<>();

//Übergabewerte überprüfen
if(minChars <= 0) {
System.out.println("Alle Bausteine sollten mindestens einen Buchstaben enthalten.");
minChars = 1;
}
if(maxChars >= seqLength) {
System.out.println("Ein Baustein muss Teil einer Sequenz sein.");
maxChars = seqLength/2;
}

//Bausteine erstellen
posibleBlocks = this.buildBlocks(minChars, maxChars);
System.out.println("Es gibt " + posibleBlocks.length+ " mögliche Bausteine.");

//Ersten Bausteine aussortieren
for(String b: posibleBlocks) {
if(existBlockInAllSequenzes(b, other_sequenzes)) {
blocksInAllSequenzes.add(b);
}
}
System.out.println("Es gibt " + blocksInAllSequenzes.size() + " mögliche Bausteine, die in allen Sequenzen vorkommen.");

splitedSequenzes.add(this.sequenz);

//Maximal 10 Durchläufe sollten ausreichen, um alle Bausteine zu ermitteln.
for(int i = 0; i < 10; i++) {
if(splitedSequenzes.isEmpty()) {
System.out.println("Es sind keine Teilsequenzen mehr vorhanden");
break;
}


Iterator<String> iterator_s = splitedSequenzes.iterator();
while(iterator_s.hasNext()) {
String seq = iterator_s.next();

for(Iterator<String> iterator = knownBlocks.iterator(); iterator.hasNext(); ) {
String kb = iterator.next();

//Teilsequenzen erstellen
splitedSequenz = seq.split(kb);
for(String s: splitedSequenz) {
if(!tmp_splitedSequenzes.contains(s)
& !s.equals("")
& !knownBlocks.contains(s)
& !seq.equals(s)) {
tmp_splitedSequenzes.add(s);
}
}
//tmp_splitedSequenzes.addAll(Arrays.asList(splitedSequenz));
}

//Speicherplatz optimieren
splitedSequenzes.clear();
splitedSequenzes.addAll(tmp_splitedSequenzes);
tmp_splitedSequenzes.clear();
}



System.out.println("Es gibt nun folgende Teilsequenzen:");
System.out.println(splitedSequenzes);

//Ermittelte Teilsequenzen nach Bausteinen durchsuchen
iterator_s = splitedSequenzes.iterator();
boolean found;
while(iterator_s.hasNext()) {
String seq = iterator_s.next();

if(seq.length() <= maxChars & seq.length() > 0) {
found = false;
for(String kb: knownBlocks) {
if(seq.contains(kb) || kb.contains(seq)) {
found = true;
break;
}
}
if(!found) {
knownBlocks.add(seq);
}
}
}

//Leere und doppelte Teilsequenzen entfernen
splitedSequenzes.removeAll(knownBlocks);
while(true) {
if(!splitedSequenzes.remove("")) {
break;
}
}

System.out.println("Alle bisher bekannten Bausteine sind.");
System.out.println(knownBlocks);
}

//Bausteine ggf. in kleinere Bausteine aufteilen.


foundBlocks = knownBlocks;

//Überprüfen, ob alle Blocks gefunden wurden.
for(String fb: foundBlocks) {
tmp_seq = tmp_seq.replaceAll(fb, "");
}

if(tmp_seq.length() == 0) {
System.out.println("Es wurden alle Bausteine dieser Sequenz gefunden.");
} else {
System.out.println("Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:");
System.out.println(tmp_seq);
}

//... mit allen anderen Dateien vergleichen
String[] result = new String[foundBlocks.size()];
result = foundBlocks.toArray(result);

return result;
}[/src]

Ausgabe:
Der Block "EEE" kommt in allen Sequenz 72 mal vor.
Alle folgenden Blöcke, kommen in allen Sequenzen 128x vor:
[EAEBF]
Es gibt 1420 mögliche Bausteine.
Es gibt 740 mögliche Bausteine, die in allen Sequenzen vorkommen.
Es gibt nun folgende Teilsequenzen:
[EFFGADEAAAEIAEIEFFGAAEGEAEBFEFFGA, AEIAEIEAEBFAEGEFFGAEFFGAEFFGADEAAEAEBF, EAEBFDEAAEAEBFEFFGA, EFFGAAEIEAEBFAEGAEIEAEBFAEIEFFGADEAAEFFGADEAAEFFGADEAAEFFGAAEIEFFGAEFFGAEAEBF, EFFGAAEIEFFGAAEGAEIAEDEFFGAEFFGAEAEBFAEI, AEGEFFGAAEGAEGDEAAEFFGAEFFGAEFFGAEAEBFDEAAAEIAEIEAEBFEFFGAAEGAEDEFFGAAEIAEGAEIEFFGAEFFGADEAAEFFGAEAEBFEAEBFAEIEFFGAAEIACHGDAEIEFFGADEAADEAAAEIEFFGAAEGAEGAEGACHGDEAEBFEFFGAAEGEFFGAEAEBFEAEBFEAEBFEAEBFEFFGAAEDEAEBFAEDEFFGAEFFGAEFFGA, ACHGDAEDAEIACHGDAEDAEGAEIEFFGAAEIDEAAEFFGAAEGEAEBFEAEBFEAEBFDEAAAEIEFFGAEFFGAAEIAEGAEGAEIEFFGAEAEBFAEIAEGAEIDEAADEAAEFFGAEFFGAEFFGAAEGEAEBFEFFGAEAEBFDEAAACHGDEFFGAEAEBFEAEBFAEGAEIAEIAEIAEIEFFGAEAEBFAEIEFFGAEFFGAEFFGAEFFGADEAAEFFGAEFFGAAEIAEGAEGEFFGAAEGEAEBFEFFGAAEGACHGDEAEBFEFFGA, DEAADEAADEAA, DEAAACHGDAEGEFFGAEAEBFAEGAEIACHGDDEAAACHGDEFFGAACHGDAEIEAEBFEAEBFEAEBFAEIEFFGADEAADEAADEAADEAADEAA, AEIEFFGAAEIEAEBFEFFGAEFFGAEFFGAACHGDAEIEFFGAEFFGAEFFGAEFFGAAEGAEGDEAAEAEBF, EFFGAAEIEFFGAAEIEFFGAAEGDEAAAEGAEIEFFGAAEIAEDAEGEFFGAAEIEFFGADEAAEFFGADEAA, DEAAEFFGAEAEBFAEIEAEBFEFFGAEFFGAEFFGAEAEBFACHGDEAEBFEFFGAAEIDEAAAEIAEGAEIEFFGADEAAACHGDAEGAEDAEGAEIEAEBFEAEBFDEAAAEGAEIAEGAEDEAEBFAEIDEAAEFFGADEAAEFFGAEFFGAEFFGAEAEBFEFFGAEFFGAAEG, EFFGAEFFGAEFFGAACHGDACHGDEFFGAEFFGAEFFGAAEIEFFGAEAEBFAEIEAEBFEFFGAEFFGAEAEBFEAEBFAEDAEGAEGEFFGAEFFGAEAEBFEAEBFEFFGA, EFFGAAEI, DEAADEAAEAEBFEFFGAAEIEAEBFDEAAAEGEFFGAEAEBFAEIEFFGADEAAAEDDEAADEAAEFFGAAEIEFFGAACHGDDEAAAEIEAEBFEFFGAAEGEFFGAACHGDAEGAEI, DEAAAEIEAEBFEAEBFAEIDEAAAEIDEAADEAAEFFGA, AEIEFFGAEFFGADEAAEAEBFEFFGAAEG, EFFGAAED, EFFGAEAEBFEFFGAACHGDAEG, EFFGAAEIDEAAEFFGA, EFFGAEFFGAAEDEFFGAEAEBFAEIDEAAAEIEAEBFAEIEAEBFDEAAAEIEAEBFACHGDEFFGAEFFGAAED, DEAA, DEAAAEG, EFFGAACHGDEAEBFAEIEAEBFDEAA, EFFGAAEIAEGEFFGAAEGEFFGAAEGEAEBFEFFGAEFFGADEAA, EAEBFEFFGAAEI, AEIDEAAEFFGAEFFGAEFFGAAEIEFFGA, AEDAEDEAEBFAEDEAEBFAEIEFFGA, AEIEFFGAACHGDAEGAEIEFFGA, EFFGAAEIEFFGAAEGAEGEFFGADEAAAEIEAEBFEFFGAAEIDEAAACHGDAEDDEAAEAEBFEFFGADEAAEAEBFEFFGAACHGDAEI, EAEBFAEGAEDAEDAEIEFFGAACHGDDEAAAEGEFFGAEFFGAEFFGAEAEBFACHGDAEDAEGEAEBFAEDEFFGAEFFGADEAAEAEBFAEDEAEBFEFFGAEAEBFEFFGAAEGDEAAEFFGA, AEIEAEBFEFFGAEFFGADEAAEFFGAAEIAEIEFFGAAEI, EFFGAEFFGAEFFGAEAEBFEAEBFEFFGAAEI, DEAAAEIAEGAEIDEAADEAAEFFGAAEIAEIEFFGAAEI, AEIAEIEFFGAEFFGA, AEDAEI, DEAAAEIDEAAEFFGAEFFGAEFFGAEFFGAAEGACHGDAEDEFFGADEAAAEDEFFGAAEGEAEBFAEGEFFGAAEGACHGDEAEBFEFFGAEFFGAEFFGAEFFGAAEIAEIEFFGAAEIEFFGAEFFGADEAAEFFGAEAEBFDEAAEFFGAEFFGADEAAACHGDEFFGADEAAAEIEFFGA, AEDEAEBFAEGEFFGAEFFGAEFFGAEFFGADEAAEFFGAEFFGAAEIEFFGAEFFGAAEDAEI, AEIAEGAEIEFFGAEAEBFAEIDEAAAEDEFFGAEAEBFAEGDEAADEAAAEIEAEBFDEAAEFFGAEFFGAEAEBF, AEDAEGAEIACHGDEFFGA, AEIEAEBFAEIACHGDAEGACHGDAEIEFFGAAEI, EAEBFEFFGAAEDAEI, EAEBFAEDEFFGAEAEBFEAEBFDEAAAEIDEAAACHGDAEIEAEBFEFFGAAED, AEGEFFGA, EFFGAEFFGAEFFGAEFFGADEAAAEGEFFGAAEDEFFGAEFFGAEAEBFAEGEFFGAGEIAUEGGDIBEDAEGAEIAEGEFFGADEAAEFFGAEFFGAAED, DEAAAEIDEAAAEGAEIEFFGAEFFGAAEIAEGEFFGAAEIAEDDEAAAEIDEAAEFFGAEFFGAEFFGAEAEBFDEAAEFFGAAEIEAEBFEFFGADEAAEFFGAEFFGADEAAAEIDEAAACHGD, AEIDEAAAEIEAEBFEFFGAAEGEFFGAEAEBFDEAAEFFGAAEIEFFGAAEDEFFGADEAAEFFGAEFFGADEAAEAEBFEFFGAEFFGAEAEBFEFFGAEAEBFDEAA, EFFGAEAEBFAEGAEIAEGEFFGAEFFGAAEIAEIEFFGAEAEBFAEDEFFGAEFFGAEFFGAAEIAEDAEGDEAAAEIEFFGA, AEGEFFGAACHGDDEAA, AED, EFFGA, EFFGAEFFGAEFFGAEFFGAEAEBFAEGAEGEFFGADEAADEAAEFFGAEFFGADEAADEAAAEIEFFGAEAEBFEAEBFDEAADEAAEFFGAAEIAEGEAEBFDEAAAEIDEAAEFFGA, EFFGADEAAACHGDEFFGA, DEAAAEDEAEBFAEGAEGDEAAEFFGAEAEBFEFFGAEFFGAAEI, EAEBFEAEBFEFFGAAEIDEAAEFFGAAEIAEG, EFFGADEAAAEDDEAA, AEIACHGDAEIDEAAAEIAEI, DEAAAEIAEDEAEBFEFFGADEAAEFFGAAEDEFFGAAEIAEI, EFFGADEAAAEGACHGDEAEBFEFFGAEFFGAEAEBFEFFGADEAAEAEBFAEIDEAAEFFGAAEIEFFGAAEIEAEBFEFFGAEAEBF, ACHGDEFFGAAEGEFFGADEAAACHGDDEAAEFFGAEAEBFEAEBFEFFGAEAEBFEFFGAAEIACHGDAEIEFFGAAEIAEIAEGDEAAAEDACHGDEFFGAEFFGAAEDEAEBFDEAAEFFGAAEI, DEAADEAAEFFGAACHGDAEGEAEBFEFFGAAEGEFFGAACHGD, AEGEAEBFACHGDDEAAEFFGAAEIDEAA, AEGAED, ACHGDAEIDEAAEFFGAEAEBFDEAAEFFGA, EFFGAEFFGADEAAAEDAEIACHGDDEAAEFFGA, DEAAAEGAEGEFFGAAEIEFFGAEFFGAAEGDEAAACHGDEAEBFDEAAEFFGAEFFGAAEIEFFGAEFFGAAEDEFFGADEAAEFFGADEAADEAA, AEGAEG, AEGDEAAEAEBFEFFGAEFFGAEAEBFAEGAEGDEAADEAAACHGDAED, EFFGAAEGAEI, AEGACHGDAEIEFFGAEFFGAACHGD, DEAAEFFGADEAA, EFFGADEAAAEIAEIEFFGAAEG, EFFGAEEEAEIAEI, AEGEFFGAEFFGAEFFGADEAA, EFFGAEEEEFFGAAEI, AEGAEI, AEIEFFGADEAAEFFGADEAAEFFGADEAAEFFGAAEIEFFGAEFFGA, EEEEFFGAAEIEFFGAAEGAEIAEDEFFGAEFFGA, AEIEEEAEGEFFGAAEGAEGDEAAEFFGAEFFGAEFFGA, DEAAAEIAEI, EFFGAAEGAEDEFFGAAEIAEGAEIEFFGAEFFGADEAAEFFGA, AEIEFFGAAEIACHGDAEIEFFGADEAADEAAAEIEFFGAAEGAEGAEGACHGD, EFFGAAEGEFFGA, AEDEFFGAEFFGAEFFGAEEEACHGDAEDAEIACHGDAEDAEGAEIEFFGAAEIDEAAEFFGAAEG, DEAAAEIEFFGAEFFGAAEIAEGAEGAEIEFFGA, AEIAEGAEIDEAADEAAEFFGAEFFGAEFFGAAEG, DEAAACHGDEFFGA, AEGAEIAEIAEIAEIEFFGA, AEIEFFGAEFFGAEFFGAEFFGADEAAEFFGAEFFGAAEIAEGAEGEFFGAAEG, EFFGAAEGACHGD, EFFGAEEEDEAADEAADEAAEEEDEAAACHGDAEGEFFGA, AEGAEIACHGDDEAAACHGDEFFGAACHGDAEI, AEIEFFGADEAADEAADEAADEAADEAAEEEAEIEFFGAAEI, EFFGAEFFGAEFFGAACHGDAEIEFFGAEFFGAEFFGAEFFGAAEGAEGDEAA, EEEEFFGAAEIEFFGAAEIEFFGAAEGDEAAAEGAEIEFFGAAEIAEDAEGEFFGAAEIEFFGADEAAEFFGADEAAEEEDEAAEFFGA, AEI, EFFGAEFFGAEFFGA, ACHGD, EFFGAAEIDEAAAEIAEGAEIEFFGADEAAACHGDAEGAEDAEGAEI, DEAAAEGAEIAEGAED, AEIDEAAEFFGADEAAEFFGAEFFGAEFFGA, EFFGAEFFGAAEGEEEEFFGAEFFGAEFFGAACHGDACHGDEFFGAEFFGAEFFGAAEIEFFGA, EFFGAEFFGA, AEDAEGAEGEFFGAEFFGA, EFFGAEEEEFFGAAEIEEEDEAADEAA, DEAAAEGEFFGA, AEIEFFGADEAAAEDDEAADEAAEFFGAAEIEFFGAACHGDDEAAAEI, EFFGAAEGEFFGAACHGDAEGAEIEEEDEAAAEI, AEIDEAAAEIDEAADEAAEFFGAEEEAEIEFFGAEFFGADEAA, EFFGAAEGEEEEFFGAAEDEEEEFFGA, EFFGAACHGDAEGEEEEFFGAAEIDEAAEFFGAEEEEFFGAEFFGAAEDEFFGA, AEIDEAAAEI, DEAAAEI, ACHGDEFFGAEFFGAAEDEEEDEAAEEEDEAAAEGEEEEFFGAACHGD, DEAAEEEEFFGAAEIAEGEFFGAAEGEFFGAAEG, EFFGAEFFGADEAAEEE, EFFGAAEIEEEEEEAEIDEAAEFFGAEFFGAEFFGAAEIEFFGAEEEAEDAED, AEIEFFGAEEEAEIEFFGAACHGDAEGAEIEFFGAEEEEFFGAAEIEFFGAAEGAEGEFFGADEAAAEI, EFFGAAEIDEAAACHGDAEDDEAA, EFFGADEAA, EFFGAACHGDAEIEEE, AEGAEDAEDAEIEFFGAACHGDDEAAAEGEFFGAEFFGAEFFGA, ACHGDAEDAEG, AEDEFFGAEFFGADEAA, EFFGAAEGDEAAEFFGAEEEAEI, EFFGAEFFGADEAAEFFGAAEIAEIEFFGAAEIEEEEFFGAEFFGAEFFGA, EFFGAAEIEEEDEAAAEIAEGAEIDEAADEAAEFFGAAEIAEIEFFGAAEIEEEAEIAEIEFFGAEFFGAEEEAEDAEIEEEDEAAAEIDEAAEFFGAEFFGAEFFGAEFFGAAEGACHGDAEDEFFGADEAAAEDEFFGAAEG, AEGEFFGAAEGACHGD, EFFGAEFFGAEFFGAEFFGAAEIAEIEFFGAAEIEFFGAEFFGADEAAEFFGA, DEAAEFFGAEFFGADEAAACHGDEFFGADEAAAEIEFFGAEEEAED, AEGEFFGAEFFGAEFFGAEFFGADEAAEFFGAEFFGAAEIEFFGAEFFGAAEDAEIEEEAEIAEGAEIEFFGA, AEIDEAAAEDEFFGA, AEGDEAADEAAAEI, DEAAEFFGAEFFGA, EEEAEDAEGAEIACHGDEFFGAEEEAEI, AEIACHGDAEGACHGDAEIEFFGAAEIEEE, EFFGAAEDAEIEEE, AEDEFFGA, DEAAAEIDEAAACHGDAEI, EFFGAAEDEEEAEGEFFGAEEEEFFGAEFFGAEFFGAEFFGADEAAAEGEFFGAAEDEFFGAEFFGA, AEGEFFGAGEIAUEGGDIBEDAEGAEIAEGEFFGADEAAEFFGAEFFGAAEDEEEDEAAAEIDEAAAEGAEIEFFGAEFFGAAEIAEGEFFGAAEIAEDDEAAAEIDEAAEFFGAEFFGAEFFGA, DEAAEFFGAAEI, EFFGADEAAEFFGAEFFGADEAAAEIDEAAACHGDEEEAEIDEAAAEI, DEAAEFFGAAEIEFFGAAEDEFFGADEAAEFFGAEFFGADEAA, DEAAEEEEFFGA, AEGAEIAEGEFFGAEFFGAAEIAEIEFFGA, AEDEFFGAEFFGAEFFGAAEIAEDAEGDEAAAEIEFFGAEEEAEGEFFGAACHGDDEAAEEEAEDEEEEFFGAEEEEFFGAEFFGAEFFGAEFFGA, AEGAEGEFFGADEAADEAAEFFGAEFFGADEAADEAAAEIEFFGA, DEAADEAAEFFGAAEIAEG, DEAAAEIDEAAEFFGAEEEEFFGADEAAACHGDEFFGAEEEDEAAAED, AEGAEGDEAAEFFGA, EFFGAEFFGAAEIEEE, EFFGAAEIDEAAEFFGAAEIAEGEEEEFFGADEAAAEDDEAAEEEAEIACHGDAEIDEAAAEIAEIEEEDEAAAEIAED, EFFGADEAAEFFGAAEDEFFGAAEIAEIEEEEFFGADEAAAEGACHGD, AEIDEAAEFFGAAEIEFFGAAEI, EEEDEAAEEEACHGDEFFGAAEGEFFGADEAAACHGDDEAAEFFGA, EFFGAAEIACHGDAEIEFFGAAEIAEIAEGDEAAAEDACHGDEFFGAEFFGAAED, DEAAEFFGAAEIEEEDEAADEAAEFFGAACHGDAEG, EFFGAAEGEFFGAACHGDEEEAEG, ACHGDDEAAEFFGAAEIDEAAEEEAEGAEDEEEACHGDAEIDEAAEFFGA, DEAAEFFGAEEEEFFGAEFFGADEAAAEDAEIACHGDDEAAEFFGAEEEDEAAAEGAEGEFFGAAEIEFFGAEFFGAAEGDEAAACHGD, DEAAEFFGAEFFGAAEIEFFGAEFFGAAEDEFFGADEAAEFFGADEAADEAAEEEAEGAEGEEEAEGDEAA, AEGAEGDEAADEAAACHGDAEDEEEEFFGAAEGAEIEEEAEGACHGDAEIEFFGAEFFGAACHGDEEEDEAAEFFGADEAA]
Alle bisher bekannten Bausteine sind.
[EEE, EAEBF, DEAA, AEDAEI, EFFGA, AEGAED, AEGAEG, AEGAEI, ACHGD]
Es gibt nun folgende Teilsequenzen:
[AEGAEGDEAADEAAACHGDAED, EFFGAAEGAEI, AEGACHGDAEIEFFGAEFFGAACHGD, DEAAEFFGADEAA, ACHGDAEDEEEEFFGAAEGAEIEEEAEGACHGDAEIEFFGAEFFGAACHGDEEE, AEGAEGDEAADEAAACHGDAEDEEE, AEGAEIEEEAEGACHGDAEI, ACHGDEEEDEAA, DEAADEAAACHGDAEDEEEEFFGAAEGAEIEEEAEGACHGDAEIEFFGAEFFGAACHGDEEEDEAAEFFGADEAA, AEGAEGDEAADEAAACHGDAEDEEEEFFGA, EEEAEGACHGDAEIEFFGAEFFGAACHGDEEEDEAAEFFGADEAA, AEGAEGDEAADEAA, AEDEEEEFFGAAEGAEIEEEAEG, AEIEFFGAEFFGA, EEEDEAAEFFGADEAA]
Alle bisher bekannten Bausteine sind.
[EEE, EAEBF, DEAA, AEDAEI, EFFGA, AEGAED, AEGAEG, AEGAEI, ACHGD]
Es gibt nun folgende Teilsequenzen:
[DEAAEFFGADEAA, EEEDEAA]
Alle bisher bekannten Bausteine sind.
[EEE, EAEBF, DEAA, AEDAEI, EFFGA, AEGAED, AEGAEG, AEGAEI, ACHGD]
Es gibt nun folgende Teilsequenzen:
[]
Alle bisher bekannten Bausteine sind.
[EEE, EAEBF, DEAA, AEDAEI, EFFGA, AEGAED, AEGAEG, AEGAEI, ACHGD]
Es sind keine Teilsequenzen mehr vorhanden
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
AEIAEIAEIAEIAEIAEIAEDAEIAEIAEIAEIAEIAEIAEIAEGAEDAEDAEIAEIAEIAEIAEGAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEDAEIAEIAEIAEIAEIAEDAEIAEIAEDAEIAEIAEGAEIAEIAEIAEIAEDAEIAEIAEIAEIAEDAEGAEIAEIAEIAEIAEDAEDAEIAEIAEIAEIAEDAEIAEGAEDAEDAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEIAEGAEDAEDAEGAEIAEIAEIAEIAEDAEIAEIAEDAEDAEIAEIAEGAEIAEIAEDAEIAEIAEDGEIAUEGGDIBEDAEIAEIAEIAEIAEIAEIAEDAEIAEDAEIAEDAEGAEDAEIAEIAEDAEIAEIAEIAEGAEIAEIAEIAEIAEDAEDAEIAEIAEGAEIAEIAEIAEGAEIAEIAEIAEIAEDAEIAEGAEIAEIAEIAEGAEIAEDAEGAEDAEGAEI

EDIT:
Ich habe gerade nochmal die Aufgaben gelesen. Ich habe für Aufgabe 4 bereits zu viel gewollt.
Es werden zuerst Bausteine gesucht, die in allen Sequenzen gleichhäufig vorkommen.
Hätte ich diese Einschränkung vorher gewusst, wäre das alles auch um einiges einfacher gewesen.
Ich setze mich später oder so noch mal ran und berichte weiter von meinen Fortschritten.

EDIT2:
Ich habe nun 26 Bausteine, die in allen Sequenzen gleich häufig vorkommen.
Darunter dann auch der 128x-er.
Die Umsetzung bis dahin war wesentlich einfacher als ich gedacht habe.
Ich konnte nahezu meinen gesamten, weiter oben verwendeten, Code löschen^^
Der Baustein AC kommt 50x in allen Sequenzen vor.
Der Baustein BE kommt 1x in allen Sequenzen vor.
Der Baustein BF kommt 128x in allen Sequenzen vor.
Der Baustein CH kommt 50x in allen Sequenzen vor.
Der Baustein EB kommt 128x in allen Sequenzen vor.
Der Baustein EF kommt 300x in allen Sequenzen vor.
Der Baustein HG kommt 50x in allen Sequenzen vor.
Der Baustein ACH kommt 50x in allen Sequenzen vor.
Der Baustein AEB kommt 128x in allen Sequenzen vor.
Der Baustein AED kommt 50x in allen Sequenzen vor.
Der Baustein AEG kommt 100x in allen Sequenzen vor.
Der Baustein CHG kommt 50x in allen Sequenzen vor.
Der Baustein EBF kommt 128x in allen Sequenzen vor.
Der Baustein EEE kommt 72x in allen Sequenzen vor.
Der Baustein EFF kommt 300x in allen Sequenzen vor.
Der Baustein FGA kommt 300x in allen Sequenzen vor.
Der Baustein HGD kommt 50x in allen Sequenzen vor.
Der Baustein ACHG kommt 50x in allen Sequenzen vor.
Der Baustein AEBF kommt 128x in allen Sequenzen vor.
Der Baustein CHGD kommt 50x in allen Sequenzen vor.
Der Baustein EAEB kommt 128x in allen Sequenzen vor.
Der Baustein EFFG kommt 300x in allen Sequenzen vor.
Der Baustein FFGA kommt 300x in allen Sequenzen vor.
Der Baustein ACHGD kommt 50x in allen Sequenzen vor.
Der Baustein EAEBF kommt 128x in allen Sequenzen vor.
Der Baustein EFFGA kommt 300x in allen Sequenzen vor.
Es gibt 26 mögliche Bausteine, die in allen Sequenzen gleich häufig vorkommen.
Diese Bausteine sind:
[AC, BE, BF, CH, EB, EF, HG, ACH, AEB, AED, AEG, CHG, EBF, EEE, EFF, FGA, HGD, ACHG, AEBF, CHGD, EAEB, EFFG, FFGA, ACHGD, EAEBF, EFFGA]
Entfernt man nun kleinere Bausteine, die bereits in anderen Bausteinen gleich häufig vorkommen, erhaält man:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA]

EDIT3:
Ich habe nun mal alle Sequenzen durchlaufen lassen.
Ich finde mein Ergebnis gar nicht so schlecht. Leider habe ich wohl irgendwo noch einen Fehler drin... Es bleiben nämlich bei ca. der Hälfte der Sequenzen ein Buchstabe über, der nicht zugeordnet ist.
Die GeschlechtsBausteine habe ich auf 2 Varianten eingegrenzt (durch die Ausgabe ersichtlich).
Der Block [EEE] kommt 72x mal in allen Sequenzen vor.
Alle folgenden Blöcke, kommen in allen Sequenzen 128x vor:
[EAEBF]
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
GEIAUEGGDID
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden mehrere Bausteine nicht gefunden. Diese sind in der folgenden Sequenz enthalten:
D
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.
Alle gefunden Bausteine sind:
[BE, AED, AEG, EEE, ACHGD, EAEBF, EFFGA, DEAA, AEI, AGIGDFFGD, IA, GE, UEGGDI]
Es wurden alle Bausteine dieser Sequenz gefunden.

Dabei ist zu beachten, dass die Bausteine AGIGDFFGD, IA, GE, UEGGDI nicht in allen Sequenzen vorkommen, sondern durch meinen Code zu den bekannten Bausteinen hinzugefügt wurden.
Ich vermute daher, dass entweder IA und GE die Geschlechter spezifizieren oder 2 Längere Kombinationen, die ganz am Anfang meiner Analyse noch als Teilsequenzen auftauchen (diese müssten dann wie folgt gesplittet werden:
GEIAUEGGDID oder so ähnlich. Leider schafft das mein Code nicht so recht.
Wenn ich die Ausgabe auf das nötigste reduziere, benötigt mein Code 5-10 Sekunden auf einem Intel i7 3630QM 4/(8)x2,4GHz mit ca. 5GB verfügbarem RAM (ca. 100MB verwendet)

Um einige Überprüfunge durchzuführen habe ich zu dem eigentlichen Code noch einige Funktionen geschrieben, die zum Beispiel Strings multiplizieren (zB 5x"ABC" = "ABCABCABCABCABC") oder auch umgekehrt zählen, ob ein Substr ein Vielfaches eines Strings ist.
Zudem habe ich das Zerlegen einer Sequenz in Teilsequenzen ebenfalls ausgelagert und per REGEX gelöst.
Das hat den Code ungemein beschleunigt.

Bevor ich mich das nächste Mal ransetzte, warte ich auf ein paar Rückmeldungen und erledige erstmal anderen Kram^^
 
Zuletzt bearbeitet:
Oben