Koukam dalsi datovy format, ale opet nema co bych potreboval.
Nevi nekdo o jednoduchem formatu, ktery by byl citelny lidmi, a umoznoval snadne citelne ukladani mensich matic? Ve vetsine formatu se daji rozumne ukladat vektory, ale matice uz byvaji stylem: [[1,2,3],[4,5,6],[7,8,9]], coz uz vubec neni lidsky citelne.
Pozadavek prichazi z oblasti presnych mereni - spousta malych kalibracnich matic, 5 bodu pres napetovou stupnici, 5 pres frekvencni, matice plna korekci. A clovek obvykle potrebuje mit kontrolu nad hodnotama v ruznych castech kalibracnich postupu, takze to musi byt citelne pro lidi, rychle prohlizeni, a snadno prenositelne z jednoho programu do druheho.
Priznam se ze jsem si neco vytvoril:
https://github.com/KaeroDot/info-strings
Textovy soubor, obsahue klic::hodnota, matice mam takhle:
#startmatrix:: simple matrix
1; 2; 3
4; 5; 6
#endmatrix:: simple matrix
Jenze nedostatky sveho reseni vnimam na kazdem kroku. Navic nejsem profesionalni programator, takze to je pomale a projevuje se to pri vetsim mnozstvi cteni/zapisu, protoze vse resim pres regexpy, a ty jsou krute pomale.
V biologii se používá formát NEXUS, který umožňuje uložit různé bloky, mj. (distanční) matici, která je fakticky zapsaná jako TSV. Používá to velké množství programů (často si definují vlastní bloky) a je to dostatečně jednoduché na to, aby se to dalo upravovat ručně. :-)
Tak jsem na disku našel nějaký příklad:
#nexus [! Cavalli-Sforza and Edwards chord distance (1967) ] BEGIN TAXA; DIMENSIONS NTAX=489; TAXLABELS [1] Kr001 [2] Kr002 [3] Kr003 ... [487] Kl004 [488] Kl005 [489] Kl006 ; END; BEGIN DISTANCES; DIMENSIONS NTAX=489; FORMAT TRIANGLE=BOTH DIAGONAL LABELS=LEFT ; MATRIX Kr001 0.00000 0.23621 0.22879 ... Kr002 0.23621 0.00000 0.18748 ... Kr003 0.22879 0.18748 0.00000 ... ... Kl004 0.72767 0.67895 0.67895 ... Kl005 0.76898 0.81770 0.81770 ... Kl006 0.81028 0.81028 0.81028 ... END;
Tohle načítá třeba SplitsTree (v nejnovější verzi jsem to nepoužil, mezi 4 a 5 tam bylo dost změn), ale jinak jsou matice spíš vzacnější příklad užití NEXU, spíš se tam ukládají sekvence, fylogenetické stromy a další data. Ten TAXLABELS blok by tam být nemusel. Smysl má, když má člověk dlouhá jména vzorků --- potom lze v datových blocích (sekvence, matice, znaky, ...) používat čísla vzorků místo jmen. Jinak je asi zřejmé, co je co. Existuje spousta SW, co s tím pracuje, něco by se jistě dalo vykuchat. :-) Výhodou je rozšiřitelnost --- řada programů do toho přidává vlastní bloky, což zase ale někdy přináší problémy při přenosu dat mezi programy... ;-)
Odradkovani je dulezite, ale ta pripadna knihovna to musi delat. Pokud to vypise do souboru v jednom radku, je to napytel.
Ne, grafy jsou mi pro tohle pouziti nahouby. Porovnavat hodnoty v sesti grafech je opruz. A v grafu neuvidim hodnotu 6. desetinneho mista. Ano, opravdu potrebuju matice se sesti platnymi misty. Casto i s deviti.