AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte .csv Datei einlesen, analysieren und bearbeitet abspeichern.

.csv Datei einlesen, analysieren und bearbeitet abspeichern.

Ein Thema von Dade · begonnen am 18. Apr 2015 · letzter Beitrag vom 4. Mai 2015
Antwort Antwort
Dade

Registriert seit: 18. Apr 2015
20 Beiträge
 
#1

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.

  Alt 2. Mai 2015, 11:29
Es geht um das hier:

Code:
Annotations;;
Name;Perimeter (µm);Area (µm2)
LK_1_1_F_1;835,4;48705,5
LK_1_1_F_2;1142,7;93813,4

...snipp...

LK_1_2;39765,9;15226633,7
LK_1_3;14272,3;7956108,4

Distance measurement annotations;;
Length (µm);;
5,15;;
3,22;;

Der 2. Block mit:

Distance measurement annotations;;
Length (µm);;
5,15;;
3,22;;


Ist wichtig und sollte übernommen werden in zwei extra Spalten. Leider sind sie nicht in jeder Datei vorhanden.

Zur Not kann das auch unter den Tisch fallen. Muss halt per Hand gemacht werden.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.

  Alt 2. Mai 2015, 12:43
Deine Infos sind leider nicht ausreichend. Ich hab mir's nochmal angeschaut. Bin ja nach wie vor der Meinung, daß man das nicht Delphi machen sollte? Aber wenn du unbedingt willst. Man könnte das zum Beispiel mit meinem TGrid relativ bequem machen. Du müsstest nur das (Siehe unten) weiter ausfüllen (ggf. auch nur Pseudocode) so daß es ein Delphianer auch versteht, sonst kommen wir hier nicht weiter.
Delphi-Quellcode:
procedure AufbereitungDerLymphknotenDaten(const FileName: string; Grid: TGrid):
var
  I, J, K, Row, FollikelCount: integer;
  Csv: TCsvFile;
  Indices: array of integer;
begin
  Csv := TCsvFile.Create;
  try
    Csv.LoadFromFile(FileName);
    Grid.Clear; // Row = Zeile, Col = Spalte
    Grid.ColCount := 18;
    for I := 1 to 20 do
      for J := 1 to 20 do
        if HaveLymphknotennummer(Csv, I, J) then
        begin
          Row := Grid.AddRow; // Zeile hinzufügen
          Grid.Cells[Row, 0] := GetFallnummer(FileName);
          Grid.Cells[Row, 1] := GetLymphknotennummer(I, J);
          FollikelCount := GetFollikelCount(Csv, I, J, Indices);
          Grid.Cells[Row, 3] := IntToStr(FollikelCount);
          for K := 0 to FollikelCount - 1 do
          begin
            Row := Grid.AddRow;
            Grid.Cells[Row, 4] := IntToStr(Indices[K]);
            Grid.Cells[Row, 5] := GetPerimeter(I, J, Indices[K], Csv);
            Grid.Cells[Row, 6] := GetArea(I, J, Indices[K], Csv);
          end;
(*
5. Spalte: Keimzentren vorhanden ja=1, nein=0: Wenn irgend ein LK_X_K, LK_X_X_K, LK_X_X_X_K -> ja, sonst nein
6. Spalte: Anzahl der Keimzentren: Auftrittsanzahl der Lymphknoten mit Keimzenren (alle Lk_X_K / LK_X_X_K / LK_X_X_X_K)
7. Spalte: Anzahl der regressiven, hyalinisierten Keimzentren (RHK): Auftrittsanzahl der Lymphknoten mit RHK (alle Lk_X_K_R / LK_X_X_K_R / LK_X_X_X_K_R)
8. Spalte: Metastase: Alle VarLymph mit "Metastase" im Namen: Metastase_LK_X, Metastase_LK_X_X
9. Spalte: Umfang Metastase: Umfang der Metastase VarUmfang
10. Spalte: Fläche Metastase: Fläche der Metastase VarFläche
11. Spalte: Follikelnummer: Alle VarLymph mit F im Namen, wie LK_X_F, LK_X_X_F, LK_X_X_X_F
12. Spalte: Umfang Follikel: Umfang Follikel VarUmfang
13. Spalte: Fläche Follikel: Fläche Follikel VarFläche
14. Spalte: Keimzentrumsnummer: Alle VarLymph mit F im Namen, wie LK_X_K, LK_X_X_K, LK_X_X_X_K, LK_X_K_R, LK_X_X_K_R, LK_X_X_X_K_R
15. Spalte: Umfang Keimzentrum: Umfang Keimzentrum VarUmfang
16. Spalte: Fläche Keimzentrum: Fläche KeimzentrumVarFläche
17. Spalte: Distance measurement: Length
18. Spalte: Distance measurement: UnknownValue
*)

    end;
  finally
    Csv.Free;
  end;
end;
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.

  Alt 2. Mai 2015, 15:52
Ist wichtig und sollte übernommen werden in zwei extra Spalten. Leider sind sie nicht in jeder Datei vorhanden.

Zur Not kann das auch unter den Tisch fallen. Muss halt per Hand gemacht werden.
Du möchtest also sowas:
SOURCEFILENAMEFOLNAME_RAWPERIMETER_NUMAREA_NUMDMANNOTATION1_NUMDMANNOTATION2_NUM 
1Lu_39893_12_1ALK_1_1_F_1835,448705,53,225,15 
2Lu_39893_12_1ALK_1_1_F_21142,793813,43,225,15 
3Lu_39893_12_1ALK_1_1_F_4811,936774,73,225,15 
4Lu_39893_12_1ALK_1_1_F_51044,460502,53,225,15 
5............ 
Gruß, Jo
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.

  Alt 2. Mai 2015, 16:29
Die neuen Dateien haben komplett andere Strukturen als die Rohdaten. Welche muß zuerst anhand der Infos aus "roh csv" ermittelt werden.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.

  Alt 2. Mai 2015, 17:26
Ja, das ist irgendwie schon "klar". Excel soll es ja nicht unbedingt sein, schreibt dade irgendwo. Die Quell - bzw. Transformationsbeschreibung ist nicht sehr "eingängig" bzw. unvollständig. Wie gesagt, die Daten in Dropbox nützen mir nichts. Vielleicht sind die Summierungen in Excel ja nur nice to have oder so, die Sektion 2 ist im CSV File ist ja auch irgendwie egal.
In Delphi macht es m.E. nicht soviel Sinn, die Aufbereitung umzusetzen, das ist umständlich und unflexibel.
Ich habe einfach mal einen kleinen Zwischenschritt bereitgestellt.
Gruß, Jo
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.

  Alt 3. Mai 2015, 10:42
Also ich denke, man kann das mit SQL machen, auch wenn einige Dinge unklar sind.
Inhaltlich z.B. die Handhabung der "Lenght" oder irgendwelche Kommentar, die angeblich am Ende der CSV stehen.
Technisch, weiß ich nicht, ob 1500 Dateien als External eingebunden werden können, sonst muss man iterieren.
Outputformat, sollen mehre Ursprungsdateien in einem dargestellt werden oder als mehrere Ergebnisse.
Gruß, Jo
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.

  Alt 3. Mai 2015, 11:33
Hab mir mal das Zeugs aus der Dropbox runtergeladen. Die Auswertung soll so aussehen. Ich frage mich wie jemand das für TE machen sollte?
Code:
1.) Fallnummer Lymphknoten

2.) Lymphknotennummer

3.) Anzahl der Follikel

4.) Keimzentren vorhanden ja=1, nein=0

5.) Anzahl der Keimzentren

6.) Anzahl der regressiven, hyalinisierten Keimzentren

7.) Anzahl der ill defined Keimzentren

8.) Anzahl nackte Keimzentren (keine Mantelzone)

9.) Normale Keimzentren vorhanden ja=1, nein=0

10.) Viele Makrophagen im Kortex vorhanden (erst wenn mindestens 3 verschiedene Stellen, min. 40x Gesichtsfelddurchmesser groß, oder 1 Stelle 20x Gesichtsfelddurchmesser groß hiervon betroffen) ja=1, nein=0

11.) Granulome vorhanden ja=1, nein=0

12.) Metastasen vorhanden, ja=1, nein=0

13.) Mikrometastase vorhanden ja=1, nein=0

14.) Minimaldistanz Mikrometastase zu Follikel

15.) Minimaldistanz Mikrometastase zu ill defined GC

16.) Minimaldistanz Mikrometastase zu Granulom

17.) Tumor lymphozytenreich (wenn im 20er Objektiv mindestens ein zusammenhängendes Lymphozyteninfiltrat das Gesichtsfeld durchmisst)

18.) Tumor lymphozytenreich im 10er Objektiv; ja=1, nein=0

19.) Tumor lymphozytenreich-plasmazellreich

20.) Lokalisation, 1=SN, 2=LK Level 1, 3=LK Level 2,4=Level 1&2 zusammen befundet, 5= Tumor Mamma

21.) LK-Nummer

22.) Umfang LK

23.) Fläche LK

24.) Metastase

25.) Umfang Metastase

26.) Fläche Metastase

27.) Follikelnummer

28.) Umfang Follikel

29.) Fläche Follikel

30.) Keimzentrumsnummer

31.) Umfang Keimzentrum

32.) Fläche Keimzentrum

33.) Nacktes Keimzentrum -Nummer

34.) Umfang nacktes Keimzentrum

35.) Fläche nacktes Keimzentrum

36.) Besonderheiten/Kommentare
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#8

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.

  Alt 3. Mai 2015, 11:37
Ah, schon mal die Überschriften!
Also ich würde es mit Oracle unter Nutzung der "external tables" machen.
Die Zählerei- /Existenzwerte sollten damit kein Problem sein.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz