# Výsledky

Výsledky jsou automaticky ukládány do souboru v podsložce `Temp` složky programu se stejným názvem jako má soubor měření a příponou '`.sen`' (resp. souboru `output.sen` v případě generování všech možností nebo zkoumaná hmota v případě hledání alternativ). Pokud takový soubor již existuje, je přepsán bez ohlášení. Doporučuje se tedy požadované výsledky následně ukládat jinam a zároveň nenechávat ve složce žádné důležité soubory s příponou '`.sen`'. Toto automatické ukládání je vhodné brát pouze jako zálohu pro případ, že by byl program nedopatřením ukončen. Zároveň je v případě potřeby nutné tuto složku promazávat manuálně.

V horní části se zobrazuje panel s nastavením výpočtu a případně nastavenými filtry. Pro každý soubor měření a jeho formát se zobrazuje jeden panel s výsledky. V případě hledání alternativ má vlastní panel každá hmota, pokud jich není více než nastavený limit.

Řádky lze mazat nebo filtrovat. Filtrování je pouze dočasné a zvolené filtry se aplikují na všechny panely. Oproti tomu smazání je trvalé a příslušné hmoty nejsou uvažovány ani při hledání alternativ jako kontrolní rozdíl (vhodné např. když má formát měření takovou strukturu, že nějaký řádek hlavičky vyhovuje struktuře řádku s měřením).

## Hledání alternativ

Pro vybrané řádky lze pomocí kontextového menu spustit hledání alternativ. Při hledání alternativ je použito nastavení aktuálního experimentu s tím rozdílem, že před specifické štěpení je přidána vrstva nespecifického štěpení, která není zohledňována při kontrole počtu miss-cleavages. Navíc, pokud byly aktuální výsledky získány pomocí generování všech možností, je nutné ještě zadat interval přesnosti, s jakou tolerancí jsou hmoty ještě považovány za totožné.

V případě hledání alternativ obsahuje pole '`Other`' originální záznamy, pro které jsou hledány alternativy (jinak obsahuje informace, které jsou v souboru měření u příslušné hmoty a které nejsou využity v jiných polích). Pokud byly aktuální výsledky vygenerovány pomocí generování všech možností, je jejich hmota ve výsledcích hledání alternativ označována jako hmota experimentální. Je-li hledána alternativa pro záznamy sloučené podle hmoty, lze pak hity rozdělit. Jsou-li sloučené podle modifikace/ můstku, rozdělit je nelze. Je-li hledána alternativa pro sloučeninu, nejsou jako alternativa pro žádnou z nich zobrazeny zbylá přiřazení; pokud jsou nálezy rozděleny, je každý protějšek zobrazen jako alternativa.

## Grouping

Je-li slučování zadáno pomocí kontextového menu, aplikuje se pouze na vybrané řádky. Je-li zadáno pomocí tlačítka v dolní části okna, aplikuje se na všechny řádky každého panelu. Při slučování se zachovává pořadí řádků.

### Slučování modifikací/ můstků

Sloučeny jsou výsledky, které se liší pouze v poli modifikace (resp. můstky). Jednotlivé sloučené modfikace (resp. můstky) jsou odděleny pomocí znaku '|'. Vznikl-li řádek pomocí sloučení modifikací/ můstků a následně sloučením podle hmoty, nelze ho rozdělit podle modifikací/ můstků, nebude-li nejdříve rozdělen podle hmoty.

### Slučování podle hmoty

Při slučování podle hmoty jsou jsou sloučeny řádky, které mají (s ohledem na nastavenou přesnost zobrazení) stejnou experimentální hmotnost v případě filtrování výsledků podle souboru měření, resp. stejnou teoretickou hmotnost v případě generování všech možností. Obsahy jednotlivých buněk jsou nejprve vloženy do složených závorek '`{}`' a teprve poté odděleny separátorem '`|`'. Pokud je obsah příslušného sloupce ve všech sloučených řádcích stejný, je zobrazen pouze jednou. Vznikl-li řádek pomocí sloučení modifikací/ můstků a následně sloučením podle hmoty, nelze ho rozdělit podle modifikací/ můstků, nebude-li nejdříve rozdělen podle hmoty.

## Filtrování

Kořenový uzel je `OR` uzel. (Nebo chcete raději `AND` uzel? Chcete to tam explicitně připsat do závorky?) Kromě filtru '`Not assigned`' se pro ostatní filtry zobrazí defaultně pouze přiřazené záznamy. Některé filtry nemají vždy smysl (např. '`(Not) Assigned`' v případě generování všech možností), ale z praktických důvodů (zachovávání nastavení filtrů pro použití v pozdějších experimentech) nejsou přímo zakázány.

- '`(Not) Assigned`': Zobrazí řádky obsahující (ne)přiřazený záznam.
- '`Modified/X-linked`': Alespoň jeden ze sloučených záznamů je modifikovaný, resp. x-linkovaný.
- '`Not modified/x-linked`': Alespoň jeden ze sloučených záznamů není modifikovaný, resp. x-linkovaný.
- '`Modified/X-linked by {change}`': Alespoň jeden ze sloučených záznamů je modifikovaný, resp. x-linkovaný pomocí `{change}`.
- '`Not modified/x-linked by {change}`': Alespoň jeden ze sloučených záznamů není modifikovaný, resp. x-linkovaný pomocí `{change}`.
- '`Interpeptide`': Alespoň jeden ze sloučených záznamů je dipeptidem.
- '`Interpeptide {x-link}`': Alespoň jeden ze sloučených záznamů je dipeptid spojený pomocí {x-link}.
- '`Intrapeptide`': Alespoň jeden ze sloučených záznamů je monopeptid.
- '`Intrapeptide {x-link}`': Alespoň jeden ze sloučených záznamů obsahuje {x-link} v rámci jednoho peptidu.
- '`Ambiguous`': Řádky, které vznikly sloučením více různých peptidů podle hmoty (t.j. nezohledňuje více záznamů v souboru měření se stejnou hmotou). Tento filtr funguje pouze po sloučení nálezů podle hmoty (t.j. není schopen porovnávat mezi řádky).
- '`Not ambiguous`': Jednoznačně přiřazené řádky (`Not Ambiguous`). Tento filtr funguje pouze po sloučení nálezů podle hmoty (t.j. není schopen porovnávat mezi řádky).
- '`(Not) Contains`': Přípustné řádky jsou definovány za pomocí regulárních výrazů (Documentation, Lessons). '`Contains`' zobrazí řádky, kde alespoň jeden ze sloučených záznamů odpovídá příslušnému vzoru. Oproti tomu '`Not contains`' zobrazí řádky, kde žádný ze sloučených záznamů příslušnému vzoru neodpovídá.
- '`Arithmetic`': Hodnota alespoň jednoho ze sloučených záznamů zvoleného sloupce odpovídá zvolené nerovnosti.

### Examples

Většina filtrů je implementována pomocí filtru CONTAINS:

Filter | Sloupec | Výraz | Výsvětlení
--- | --- | --- | ---
Modified | Modifications | `[^| ]` | Obsahuje něco jiného než prázdné pole a oddělovač polí.
Modified by {mod} | Modifications | `(^|\| |, |; ){mod} \(` | Ukotvení zleva na oddělovači; název modifikace; ukotvení zprava na pozici. Ukotvení nutné pokud název jedné modifikace může být podřetězcem druhé (bat vs. wombat).
Not modified | Modifications | `(^|\| )( ?\||$)` | Začátek pole - konec pole. (`^$` nestačí pro případ, že by modifikace měla nulovou hmotnost a tedy bylo možné ji sloučit s nemodifikovaným hitem.)
Not modified by {mod} | Mod | `(^|\| )(?!([^(]*\([^)]*\)[,;] )*{mod} \()` | Ukotvení pole zleva - pokud pole obsahuje hledanou modifikaci (posloupnost jakýchkoliv jiných modifkací = {víme, že název pole neobsahuje závorku (}({zadání pozice modifikace neobsahuje závorku )}){oddělovač modifikací} nasledovaná hledanou modifikací s ukotvením konce názvu), tak hledat dál.
Interpeptide | Chain | `-` | Pole obsahuje pomlčku právě tehdy, když se skládá z více peptidů.
Interpeptide {x-link} | X-links | `(^|\\| |, |; ){x-link} \\(([A-Z]+\\.)[^;]+; (?!\\2)` | Ukotvení zleva na oddělovači; název můstku; `(`; index peptidu; pozice; oddělovač; odlišný index peptidu.
Intrapeptide | Chain | `^[^-]*$` | Ukotvení pole zleva; pole neobsahuje oddělovač peptidů; ukotvení pole zprava.
Intrapeptide {x-link} | X-links | `(^|\\| |, |; ){x-link} \\(([A-Z]+\\.|)[^;.]+; \\2` | Ukotvení začátku můstku; {x-link}; `(`; index proteinu, je-li; pozice; oddělovač; stejný index proteinu.

### Základní pravidla

- {A} ∧ ({B} ∨ {C}) ⇔ ({A} ∧ {B}) ∨ ({A} ∧ {C})
- {A} ∨ ({B} ∧ {C}) ⇔ ({A} ∨ {B}) ∧ ({A} ∨ {C})
- ¬(¬{A}) ⇔ {A}
- ¬({A} ∧ {B}) ⇔ ¬{A} ∨ ¬{B}
- ¬({A} ∨ {B}) ⇔ ¬{A} ∧ ¬{B}
- ¬∀{A} ⇔ ∃¬{A}
- ¬∃{A} ⇔ ∀¬{A}