Skip to content

Conversation

@Jonas0000
Copy link
Collaborator

Description

refactoring of details page ended up in refactoring steps.

Plot and calculate forms are combined into one so that calculating and plotting is possible by one click.
Handling of methods is overworked.
The definition of input keys is done by the method parameters to have less duplicated code.

There is still some stuff left to improve but i want to concentrate on the migration to react.

Tested a lot of steps including the MVP steps.

@Jonas0000 Jonas0000 marked this pull request as draft January 27, 2025 22:45
@github-actions
Copy link

github-actions bot commented Feb 11, 2025

Coverage report

Click to see where and how coverage changed

FileStatementsMissingCoverageCoverage
(new stmts)
Lines missing
  protzilla
  disk_operator.py
  run.py
  run_helper.py
  steps.py 42, 76-77, 81-82, 89, 93, 97, 137, 139, 144, 159, 161, 169-170, 172-175, 177, 179, 181, 192, 204, 215, 220, 230, 236, 260
  protzilla/data_analysis
  plots.py
  protein_graphs.py
  ptm_analysis.py 56, 123-125
  protzilla/data_integration
  database_query.py 119
  di_plots.py
  enrichment_analysis.py
  protzilla/data_preprocessing
  imputation.py 91
  plots.py
  protzilla/importing
  ms_data_import.py 122, 276
  protzilla/methods
  data_analysis.py 21, 41, 65, 88, 111, 123, 137, 166, 177, 189, 200, 212, 238, 246-257, 287, 303, 341, 348, 367, 408, 430, 452, 487, 502, 524, 542, 562, 581, 597, 615, 624, 636, 645, 651
  data_integration.py 22
  protzilla/utilities
  utilities.py 184
  ui/main
  settings.py 131
  ui/runs
  fields.py
  views.py 21-24, 73-74, 180, 257, 678, 683-687
  views_helper.py
  ui/runs/forms
  base.py 107
  custom_fields.py 119
  data_analysis.py 323-327, 384, 414, 450, 473, 1188, 1226, 1248
  data_integration.py
  ui/settings
  plot_template.py 84
Project Total  

The report is truncated to 25 files out of 62. To see the full report, please visit the workflow summary page.

This report was generated by python-coverage-comment-action

@Jonas0000 Jonas0000 marked this pull request as ready for review February 11, 2025 21:12
Copy link
Collaborator

@maximilianKalff maximilianKalff left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Finde es cool, wie jetzt calculate und plot zusammen gehandelt werden. Ich hatte noch ein paar Fragen an manchen Stellen, aber die habe ich alle dazugeschrieben. :))

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warum werden die Parameter alle so spezifiziert? Damit grenzt man ja die Flexibilität der Funktionen schon ein, weil man jetzt nicht mehr alle Parameter, die der Random Forest Classifier von sklearn bietet, nutzen kann.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ich habe eigentlich versucht, dass keine Funktionalität oder Flexibiltät verloren geht, sondern nur die **kwargs ausspezifiziert, wenn es konkrete Parameter sind, die verwendet werden oder entfernt, wenn sie überhaupt nicht genutzt werden. Wenn ich etwas übersehen habe, dann ändere ich das gerne. Kannst du mir dafür eine konkrete stelle nennen, an der Flexibilität verloren geht?
Zum Hintergrund, warum ich das gemacht habe: Ich fand es sehr unverständlich, was für parameter bei den Kwargs verwendet erwartet werden und missverständlich, wenn die Funktion kwargs angenommen hat, obwohl mit diesen nichts getan wird. So wollte ich in den Funktionen klarer machen, welches eigentlich die Parameter sind, die genutzt werden.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ich vermute die build_pie_bar_plot Funktion wurde sonst nirgends aufgerufen? Aber ist es vielleicht nicht sinnvoll, wenn man eine generische allgemeine Funktion für diese Art von Plot hat? Für den Fall, dass man sie nochmal verwenden möchte. Also warum hast du das zusammengeführt?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grundsätzlich bin ich voll bei dir und fände eine allgemeine Funktion auch sehr sinnvoll. Allerdings ist die Funktion an dieser stelle so spezifisch (Bspw. durch sie Labels ["Proteins kept", "Proteins filtered"]), dass man sie sowieso kein zweites mal verwenden kann. Hintergrund war einfach nur, dass ich die zweite Funktion, die nichts tut, entfernen wollte, weil sie nichts tut.

Eigentlich ist die Funktion auch genau so gut an anderer Stelle wieder verwendbar, wie vorher, dadurch, dass ich nur Parameter umbenannt habe.

Fändest du es trotzdem besser, wenn ich wieder eine zusätzliche Funktion einfüge?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sollen die Sachen auskommentiert bleiben?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gerade festgestellt, dass die Felder zwar nicht normal verwendet werden, dafür aber an anderer Stelle genutzt werden und daher habe ich sie wieder ein kommentiert.

Copy link
Collaborator Author

@Jonas0000 Jonas0000 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hab auf die ersten Kommentare geantwortet. Rest kommt gleich :D

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ich habe eigentlich versucht, dass keine Funktionalität oder Flexibiltät verloren geht, sondern nur die **kwargs ausspezifiziert, wenn es konkrete Parameter sind, die verwendet werden oder entfernt, wenn sie überhaupt nicht genutzt werden. Wenn ich etwas übersehen habe, dann ändere ich das gerne. Kannst du mir dafür eine konkrete stelle nennen, an der Flexibilität verloren geht?
Zum Hintergrund, warum ich das gemacht habe: Ich fand es sehr unverständlich, was für parameter bei den Kwargs verwendet erwartet werden und missverständlich, wenn die Funktion kwargs angenommen hat, obwohl mit diesen nichts getan wird. So wollte ich in den Funktionen klarer machen, welches eigentlich die Parameter sind, die genutzt werden.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grundsätzlich bin ich voll bei dir und fände eine allgemeine Funktion auch sehr sinnvoll. Allerdings ist die Funktion an dieser stelle so spezifisch (Bspw. durch sie Labels ["Proteins kept", "Proteins filtered"]), dass man sie sowieso kein zweites mal verwenden kann. Hintergrund war einfach nur, dass ich die zweite Funktion, die nichts tut, entfernen wollte, weil sie nichts tut.

Eigentlich ist die Funktion auch genau so gut an anderer Stelle wieder verwendbar, wie vorher, dadurch, dass ich nur Parameter umbenannt habe.

Fändest du es trotzdem besser, wenn ich wieder eine zusätzliche Funktion einfüge?

Copy link
Collaborator Author

@Jonas0000 Jonas0000 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fertig, @maximilianKalff schaue gerne nochmal rüber, ob das jetzt so für dich passt bzw. du bei den ersten Kommentaren auch mit der Erklärung als Backgroundinfo eine Änderung haben möchtest.
@sarahvgls ich denke, dass du jetzt schon drüber schauen kannst, wenn du möchtest.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gerade festgestellt, dass die Felder zwar nicht normal verwendet werden, dafür aber an anderer Stelle genutzt werden und daher habe ich sie wieder ein kommentiert.

Copy link
Collaborator

@sarahvgls sarahvgls left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ein paar Anmerkungen von meiner Seite:

  1. Super cool, dass du das alles gemacht hast. Also wirklich, meinen absoluten Respekt!!!
  2. Ich finde einige der renames wirklich sinnvoll und du vernichtest echt einige Code smells, sehr sehr gut!
  3. zu den kwargs:
    Ich habe mich dazu eben auch etwas eingelesen, was denn eigentlich so üblich ist, vor allem, da ich **kwargs schon recht häufig treffe und daher anfangs auch eher die Meinung vertreten wollte, dass wir die doch lieber behalten wollen. Aber muss dir dann doch eigentlich zustimmen, dass ein sinnvolles weitergeben dieser Parameter einfach ein code smell ist und nicht zur verständlichkeit beiträgt. @maximilianKalff Sag gerne noch mal Bescheid, wenn dir was einfällt, warum es doch so besser wäre (vielleicht übersehen Jonas und ich ja gerade was). Ich könnte mich aber auch gut damit anfreunden, dass man so die vielen Parameter doch direkt sieht und - sollte es Bedarf geben dies zu erweitern, man einfach mehr Parameter hinzufügt und diese dann halt verwendet. Aber ein intransparentes **kwargs klingt hier schon eher nach einer Unsicherheit, was man eigentlich übergibt.
  4. Das anders-behandeln von Input parameters ist so viel smarter, das ist echt eine Verbesserung!!
  5. Ich habe ein paar Todos gefunden, sag gerne mal bescheid ob du die noch schnell angreifst, ansonsten gerne ein Issue dafür aufmachen
  6. Ich hab ein paar Fragen und Anmerkungen im Code dazu geschrieben, sag mir gerne mal, was du so davon hältst
  7. den html teil hab ich tbh geskippt

Und damit beende ich mal meinen review-Spam hier, vielen Dank für deine Arbeit!!!

@Jonas0000
Copy link
Collaborator Author

@sarahvgls ich sollte jetzt alle deine Kommentare bearbeitet haben. Vielen Dank für die vielen Hinweise und sinnvollen Kommentare. Könntest du nochmal rüber schauen und Kommentare als erledigt markieren, wenn sie aus deiner Sicht erledigt sind. Falls ich bei der Menge etwas übersehen habe, sag gerne nochmal Bescheid

Copy link
Collaborator

@sarahvgls sarahvgls left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noch ein paar kleine Anmerkungen, sonst sollte alles passen :))



class PlotVolcano(PlotStep):
class PlotVolcano(DataAnalysisStep):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blöde frage vielleicht aber ist es dann nicht irgendwie unvollständig, dass wir noch ein paar PlotSteps haben obwohl die eigentlich entfernt werden sollen?

@sarahvgls
Copy link
Collaborator

Und mir fällt gerade auf, dass der eine Test nach deinen letzten Änderungen wohl leider failt weil wohl kwargs fehlen. Wäre super, wenn du das noch wieder in den Tests anpassen könntest :))

@Jonas0000
Copy link
Collaborator Author

@maximilianKalff Helloo, könntest du nochmal über deine Kommentare schauen?

@Jonas0000 Jonas0000 force-pushed the refactoring_details branch from 26c87be to a5bd23c Compare March 1, 2025 11:21
@Jonas0000 Jonas0000 merged commit e306590 into dev Mar 4, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants