Closed martin-raden closed 5 years ago
19: remove definition and replace 'P_type' with 'Z_type' 22: rename (globally) P2dMatrix -> Z2dMatrix 41/56/72/89: function return type = Z_type 42/57/73/90: Z_type basePairWeight 43/58/74/91: replace E2dMatrix mit Z2dMatrix, weil soll floats speichern 102: neues argument mit default value: 'E_type basePairEnergy = -100'
102: neues argument mit default value: 'E_type basePairEnergy = -100' 49: replace "+1" mit basePairEnergy 50: replace ">" mit "<" um zu minimieren ab 69: replace E_type mit Z_type
43: default value -100 statt -1 44/69: Z_type RT 71: Z_type basePairWeight
48/266: Z_type RT 49: default -100 statt -1 228: return "this->RT" 226/268: Z_type replace all "return 0.0" with "return (E_type)0" 394: return basePairEnergy
10/11 Z2dMatrix
27; replace with logQ(i,j) = getE(q_val);
@Fulanko hab mal noch ein bissl nachgegraben und noch einige gruselige hard coded values in meinem code gefunden.. danke fürs überarbeiten ;)
ok, es kompiliert soweit wieder. ich hab in den Makefile.am
files in src
und tests
jeweils alles auskommentiert, was noch nicht auf den überarbeiteten Klassen arbeitet. Damit kannst du jetzt stückweise weiter anpassen und dann immer schauen, obs dafür schon einen Test gibt und den wieder aktivieren (wieder in die _src
liste des entsprechenden Makefile.am einfügen).
@Fulanko new food... :+1:
47,104,126: Z_type
18,52: Z_type 143: Euser_2_E(-RT...) 152: Euser_2_E(curVal)
28,40,67,75,76,87: Z_type
23,118,120: Z_type
135: Euser_2_E(E_type(energy)) 230: Euser_2_E(calc... - E_all) 275,461: Euser_2_E(-RT..) 365,420: (double)(vrnaHand...)
define macro #define Evrna_2_E( e ) ( static_cast<E_type>(e) )
define macro #define Evrna_equal( e ) ( static_cast<E_type>(e) )
279: Z_type
326,337,348,368,392,414,434,493,516: remove /(E_type)100.0
and use Evrna_2_E
statt explicit cast (E_type)
106,149, : remove /(E_type)100.0
and use Evrna_2_E
statt explicit cast (E_type)
169: Z_type
204: FLT_OR_DBL
statt float
225: replace with Z_equal
229: Euser_2_E statt cast
217,218,219,221: E_2_Euser
300,305-312,324-325: E2Euser 313,314: E2Euser(-contr.ED12) 326,327: analog 313,314
wenn editiert, die entsprechenden .h
und .cpp
files im src/IntaRNA/Makefile.am
wieder nach oben in die _HEADERS
und _SOURCES
variable schieben und schauen obs noch kompiliert.
wenn alle drin bitte folgende tests aktivieren und prüfen:
AccessibilityFromStream_test.cpp \
OutputHandlerRangeOnly_test.cpp \
OutputHandlerInteractionList_test.cpp \
Ich habe die Files angepasst und jetzt laufen alle Tests bis auf 2 ohne Fehler durch (bei SeedHandlerExplicit_test habe ich die empty energy von -1 auf -100 geändert).
Folgende Tests schlagen noch fehl:
Am Mo., 26. Nov. 2018 um 14:05 Uhr schrieb Martin Raden < notifications@github.com>:
wenn editiert, die entsprechenden .h und .cpp files im src/IntaRNA/Makefile.am wieder nach oben in die _HEADERS und _SOURCES variable schieben und schauen obs noch kompiliert.
wenn alle drin bitte folgende tests aktivieren und prüfen:
AccessibilityFromStream_test.cpp \ OutputHandlerRangeOnly_test.cpp \ OutputHandlerInteractionList_test.cpp \
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Fulanko/IntaRNA/issues/1#issuecomment-441632011, or mute the thread https://github.com/notifications/unsubscribe-auth/AQC9ZOxOPifXdTEzZFo2wGeZIYsTmE6kks5uy-cZgaJpZM4YdwJo .
super, schau ich mir nachher gleich an.
warst ein bissl schnell mit dem enablen der Klassen. ist noch ein bissl was übrig.
138: E2Euser
181: E2Euser
112,121,136,155,171: Z_type
replace E_INF_string
with Pu_INF_string
41,61,106,147: "for infinity entries"
129: replace "E" with "boltzmannWeight"
191: use Z_isINF(..)
replace E_INF_string
with Pu_INF_string
21,22,59,60: Z_INF
101,113,140: Z_type
98,152,155: Z_type
101: Z_equal 136: Z_type
115-118: remove local definition of E_MAX and minInitDangleEndEnergy
67: remove line (obsolete)
83: remove line (obsolete)
380: E2Euser
381: new line <<", ED="<<c.getMaxED()
danach sollte auch der letzte test wieder durchlaufen. :+1:
und final:
rename "E2dMatrix" nach "Z2dMatrix" rename "E4dMatrix" nach "Z4dMatrix" 24,81,124: Z_type
162: Z_type
Danke dir!
Tests laufen jetzt alle durch.
Beim PredictionTrackerProfileMinE_test musste ich regex Vergleiche anpassen, zB: 2 -> 0.02
Am Di., 27. Nov. 2018 um 16:23 Uhr schrieb Martin Raden < notifications@github.com>:
und final: PredictorMaxProb.h
rename "E2dMatrix" nach "Z2dMatrix" rename "E4dMatrix" nach "Z4dMatrix" 24,81,124: Z_type PredictorMaxProb.cpp
162: Z_type
Danke dir!
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Fulanko/IntaRNA/issues/1#issuecomment-442097968, or mute the thread https://github.com/notifications/unsubscribe-auth/AQC9ZNQgz6TR1rv8vbjkz6b1zzpUcOHOks5uzVjegaJpZM4YdwJo .
Daumenhoch! Dann fehlt nur noch die binary und wir können das testen und benchmarken anfangen! Bis morgen!
enable --enable-debug
im configure call, damit wir auch die letzten kleinigkeiten rausbekommen
definier bitte ein E_2_Z
und Z_2_E
in general.h
und ersetze E_2_Euser
/Euser_2_E
woimmer kein input/output
wenn alles fertig:
Ich habe E_2_Z und Z_2_E hinzugefügt und ein paar Tests gemacht und keine größeren zeitlichen Unterschiede zwischen floats und ints gefunden.
Hier sind ein paar Ergebnisse: https://github.com/Fulanko/IntaRNA-log
Am Mi., 28. Nov. 2018 um 15:14 Uhr schrieb Martin Raden < notifications@github.com>:
wenn alles fertig:
- mail an martin
- martin = compile on cluster
- rick = run benchmark
- frank = extend documentation mit figure
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Fulanko/IntaRNA/issues/1#issuecomment-442460842, or mute the thread https://github.com/notifications/unsubscribe-auth/AQC9ZEzy02OU5N_z2UGGliPpH2b1ICLgks5uzpo0gaJpZM4YdwJo .
Moin Frank, super, danke dir!
Könntest du das bitte nochmal für folgende lange sequence (oder subsequenzen) durchlaufen lassen, um mal werte im sekunden/minuten bereich zu erzwingen?
AGGTACTTGATAACTTCTGCGTAGCATACATGAGGTTTTGTATAAAAATGGCGGGCGATATCAACGCAGTGTCAGAAATCCGAAACAGTCTCGCCTGGCGATAACCGTCTTGTCGGCGGTTGCGCTGACGTTGCGTCGTGATATCATCAGGGCAGACCGGTTACATCCCCCTAACAAGCTGTTTAAAGAGAAATACTATCATGACGGACAAATTGACCTCCCTTCGTCAGTACACCACCGTAGTGGCCGACACTGGGGACATCGCGGCAATGAAGCTGTATCAACCGCAGGATGCCACAATGGCAGTAGATAAACTGGCGGAAGGTATCCGTAAGTTTGCTATTGACCAGGAAAAACTGGAAAAAATGATCGGCGATCTGCTGTAATCATTCTTAGCGTGACCGGGAAGTCGGTCACGCTACCTCTTCTGAAGCCTGTCTGTCACTCCCTTCGCAGTGTATCATTCTGTTTAACGAGACTGTTTAAACGGAAAAATCTTGATGAATACTTTACGTATTGGCTTAGTTTCCATCTCTGATCGCGCATCCAGCGGCGTTTATCAGGATAAAGGCATCCCTGCGCTGGAAGAATGGCTGACATCGTACTGCAAATCGCCTGCCTGCGCCGGATGGTTAGCGCCACTCAGGTCTGATACCGGAAACCGGGGAAAATTTTCATTTTCCCCTCAAAAGATCGTAGACACTGCCCCACTGGCTGATTATTATGCCGCGCCCTGAAAACACTACAGTTATTCAGGGAAATTATTTCACCATTCATTCGATGATGATTTTTGAGGAATTATGGGCAACACTAAGTTGGCTAATCCGGCACCGCTGGGCCTGATGGGCTTCGGCATGACCACCATTCTGCTTAACCTGCACAACGTGGGTTATTTCGCTCTAGCGCCAGTCAGAGCCTGAATATTCCTTCAGAAATAAAAGAAGGGCAAACCACTGACTGGATCAACATTAACAGCGATAACGACAATAAACGCTGCGTCTCAAAAATCACCTTTTCGGGTCATACGGTGAACTCATCGGATATGGCCACGCTGAAAATTATCGGCGACGACTAACGCCAGAATATAGAAGCCACAAAAAATGAATGTTAATTACCTGAATGATTCAGATCTGGATTTTCTTCAGCATTGTAGTGAGGAACAGTTGGCAAATTTCGCCCGATTGCTCACCCATAATGAAATTTGCGCAGAAATTTCGCGATATGGCAGGACAAGACGTAAAATTGACAGCAATTTTATTCATATAAAGAATGAATCGCAGCCAAGGCATTCATCAAAAAATTGTAATAAAAAGAAAAGATTACGTGCCTGAATCTTCTCTTTATCAGCAGTAAACTAGTGGGTATTCATCCCCCTACCTCTTCCCACTAAGAGAATCCTTATGAAATCCGTTTTTACGATTTCCGCCAGCCTGGCGATTAGCCTGATGCTGTGCTGCACGGCGCAGGCAAACGACCATAAACTCCTCGGCGCCATTGCAACATATCGCGAAATTTCTGCGCAAAAGCACAAAAAATTTTTGCATCTCCCCCTTGATGACGTGGTTTACGACCCCATTTAGTAGTCAACCGCAGTGAGTGAGTCTGCAAAAAAATGAAATTGGGCAGTTGAAACCAGACGTTTCGCCCCTATTACAGACTCACAACCACATGATGACCGAATATATAGTGGAGACGTTTAGATGGGTAAAATAATTGGTATCGACCTGGGTACTACCAACTCTTGTGTAGCGATTATGGATGGCACCACTCCTCGCGTGCTGGAGAACGCCGAAGGCGATC
das wär nochmal interessant.
ansonsten werd ichs die tage auf dem cluster installieren und Rick bescheid geben, dass mal auf den benchmark datensatz loszulassen..
mit Seed
auf master: 2070ms auf e2int: 2027ms
noSeed
auf master: 2023ms auf e2int: 2027ms
Am Do., 29. Nov. 2018 um 14:52 Uhr schrieb Martin Raden < notifications@github.com>:
Moin Frank, super, danke dir!
Könntest du das bitte nochmal für folgende lange sequence (oder subsequenzen) durchlaufen lassen, um mal werte im sekunden/minuten bereich zu erzwingen?
AGGTACTTGATAACTTCTGCGTAGCATACATGAGGTTTTGTATAAAAATGGCGGGCGATATCAACGCAGTGTCAGAAATCCGAAACAGTCTCGCCTGGCGATAACCGTCTTGTCGGCGGTTGCGCTGACGTTGCGTCGTGATATCATCAGGGCAGACCGGTTACATCCCCCTAACAAGCTGTTTAAAGAGAAATACTATCATGACGGACAAATTGACCTCCCTTCGTCAGTACACCACCGTAGTGGCCGACACTGGGGACATCGCGGCAATGAAGCTGTATCAACCGCAGGATGCCACAATGGCAGTAGATAAACTGGCGGAAGGTATCCGTAAGTTTGCTATTGACCAGGAAAAACTGGAAAAAATGATCGGCGATCTGCTGTAATCATTCTTAGCGTGACCGGGAAGTCGGTCACGCTACCTCTTCTGAAGCCTGTCTGTCACTCCCTTCGCAGTGTATCATTCTGTTTAACGAGACTGTTTAAACGGAAAAATCTTGATGAATACTTTACGTATTGGCTTAGTTTCCATCTCTGATCGCGCATCCAGCGGCGTTTATCAGGATAAAGGCATCCCTGCGCTGGAAGAATGGCTGACATCGTACTGCAAATCGCCTGCCTGCGCCGGATGGTTAGCGCCACTCAGGTCTGATACCGGAAACCGGGGAAAATTTTCATTTTCCCCTCAAAAGATCGTAGACACTGCCCCACTGGCTGATTATTATGCCGCGCCCTGAAAACACTACAGTTATTCAGGGAAATTATTTCACCATTCATTCGATGATGATTTTTGAGGAATTATGGGCAACACTAAGTTGGCTAATCCGGCACCGCTGGGCCTGATGGGCTTCGGCATGACCACCATTCTGCTTAACCTGCACAACGTGGGTTATTTCGCTCTAGCGCCAGTCAGAGCCTGAATATTCCTTCAGAAATAAAAGAAGGGCAAACCACTGACTGGATCAACATTAACAGCGATAACGACAATAAACGCTGCGTCTCAAAAATCACCTTTTCGGGTCATACGGTGAACTCATCGGATATGGCCACGCTGAAAATTATCGGCGACGACTAACGCCAGAATATAGAAGCCACAAAAAATGAATGTTAATTACCTGAATGATTCAGATCTGGATTTTCTTCAGCATTGTAGTGAGGAACAGTTGGCAAATTTCGCCCGATTGCTCACCCATAATGAAATTTGCGCAGAAATTTCGCGATATGGCAGGACAAGACGTAAAATTGACAGCAATTTTATTCATATAAAGAATGAATCGCAGCCAAGGCATTCATCAAAAAATTGTAATAAAAAGAAAAGATTACGTGCCTGAATCTTCTCTTTATCAGCAGTAAACTAGTGGGTATTCATCCCCCTACCTCTTCCCACTAAGAGAATCCTTATGAAATCCGTTTTTACGATTTCCGCCAGCCTGGCGATTAGCCTGATGCTGTGCTGCACGGCGCAGGCAAACGACCATAAACTCCTCGGCGCCATTGCAACATATCGCGAAATTTCTGCGCAAAAGCACAAAAAATTTTTGCATCTCCCCCTTGATGACGTGGTTTACGACCCCATTTAGTAGTCAACCGCAGTGAGTGAGTCTGCAAAAAAATGAAATTGGGCAGTTGAAACCAGACGTTTCGCCCCTATTACAGACTCACAACCACATGATGACCGAATATATAGTGGAGACGTTTAGATGGGTAAAATAATTGGTATCGACCTGGGTACTACCAACTCTTGTGTAGCGATTATGGATGGCACCACTCCTCGCGTGCTGGAGAACGCCGAAGGCGATC
das wär nochmal interessant.
ansonsten werd ichs die tage auf dem cluster installieren und Rick bescheid geben, dass mal auf den benchmark datensatz loszulassen..
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Fulanko/IntaRNA/issues/1#issuecomment-442840684, or mute the thread https://github.com/notifications/unsubscribe-auth/AQC9ZFcfaODXn1x2cGMZ3szktmPp7h6mks5uz-aVgaJpZM4YdwJo .
:+1: du bist der star! :)
fazit: no change.. schade, aber muss man hinnehmen. ;)
werd die installation angehen und dann dem rick bescheid geben.
BEVOR DU ANFAENGST: starte einen neuen branch
e2int
in dem du die folgenden änderungen angehst!was muss man wo ändern. am besten die erledigten sachen abhacken und auch pushen, auch wenn das jetzt ne weile nicht durch die travis checks durchlaufen wird. :)
IntaRNA/general
E_user_type = float
der für in-/output verwendet wirdE_type = int
auf integer setzenZ_type = float
für alle probabilities,RT
und Boltzmann Werte (Z
oder boltzmann weight etc)T_type Z_type
setzenE_equal
durch einfach equality check ersetzen, da korrekt für integer (E_precisionEpsilon
entfaellt)E_INF
auf(max()/2)+1
setzen (da infinity nicht definiert)IntaRNA/InteractionEnergy
und subklassenE_user_type convertE( E_type & e )
sowieE_type convertE( E_user_type & e )
, um die konvertierung zu zentralisieren; im folgenden überall wo man umrechnen muss diese funktionen verwendengetE( const E_type Z )
: replace mitZ_type
E_type getRT()
: replace mitZ_type
getBoltzmannWeight()
: return value =Z_type
getPr_dangling*()
: replace mitZ_type
getE()
aufpassen, dass duE_type
mitZ_type
multiplizierst und am ende einE_type
rauskommen soll.. kannst über harte expliziten casts machen ohne rundungen etc.IntaRNA/Accessibility
und subclassesZ_type
in:writeRNAplfold_Pu_text()
decomposeByMinPu()
writeRNAplfold_text()
writeRNAplfold_text()
body:getED()
values müssen inE_user_type
für ausgabe konvertiert werdenout <<std::min<E_type>( std::numeric_limits<E_type>::max(), getED(j+1-l, j) ) <<'\t';
: replace mitE_user_type
maxED
(da double)bin/CommandLineParsing
user input bleibt weiterhin float, daher
E_user_type
füroutDeltaE
outMaxE
seedMaxE
E_type
überall wo diese werte in die entsprechenden klassen weitergegeben werdenZ_type
füroutMinPu
seedMinPu
IntaRNA/OutputHandlerCsv
add()
:E*
undseedE*
cases) inE_user_type
vor der ausgabeE_user_type
umrechenen (zB. casePu*
,E_norm
,E_hybridNorm
,seedPu*
)... to be continued.. :grinning: