FET6GLIGISCNS72RBB3CGHKJ2TMVWHQ7O25I2UHHYO6GWDV4H5HQC
4MSZS47PX5OIKGBAMWYPHM5V6NJEWUWE4LNEPFXT4AIIU6MOB5AAC
DOXKBKKKXYAHFFH22XF36OET2GXQL3NGMASIYGLLY6WGUPGGRXZAC
KJ4LPYD2LGKDUIILOUCUJHDOVW4KGDZQUC6K2H7GG46IIJWQLS2AC
KJJ4F3EOZ6YH6OWPX62P7FH3TXFKR35AEM7UGG3L7KDAP5WY2PJAC
DLJPWVRPZ5E4TC7IXF4DBPN3KQZCC4F5GBT222Q4W4FAJSAIHBFQC
NBJFXQNG6YLIEL6HK7VZDEQZTXK2QJZ43AKNLXIIBX5K3MOX6WCQC
OOOQLNOD45WPP3R6XB3SVSK3HSRDVURRXC7WUNDWRJFPVZ6AWGZQC
PDH2BEBXR6WCCO2GRS3L6HMLQNCC2JU5BOKZLV4DLFPQD2UZFJKQC
ZJOCAXXFC5X5PWLVEXXU3MX74AQ6SO4NQRP6W3PYAWBM635J3MHQC
XFMQ2JV2NSO3B2Z5OV6JAROGH5NYU5X3JVSTL3S2W2P7VAC3WBDAC
EPIVT3XCO6VCBLQSXDOHCZWV2NEZ2ALHX6CZBRQDMHOKRZKO4R2AC
AXLHBJMZJEJQB2WO622GRVS3EXI3X2WCQGUMTKJJI52H2D36XB6QC
#+title: Nushell
#+filetags: cs
#+begin_src nu
ls excel = (ls S:genetique\commun\Centogene_variants\excel | get name | path basename | path parse | get stem | parse "{id}_{s}" | get id)
let patho = (open patho.csv | get id)
$excel | append $patho | uniq -d
#+end_src
** Génerer une liste de fastq en les groupant par nom de dossier
List all fastq, then generate a column containing the file and dirname.
Groupy by directory, extract record values input a table.
Filter folders with less than 2 files.
Concatenante the files and save the result into a txt file (.csv does not work)
#+begin_src sh
ls fastq/*/*.fastq.gz | select name | insert dir { $in.name | path dirname } | group-by dir | values | where ($in | length) > 1 | each { $in.name | str join ',' } | save input.txt
#+end_src
Version plus évoluée:
#+begin_src sh
def annotate [] { insert dir { $in.name | path dirname | path basename } | insert file { $in.name | path basename } | insert id { $in.name | patientID }}
def patientID [] { path basename | split row '_R' | first }
def toCSV [d] { $d.name | insert 0 ($d.dir | first) | insert 1 ($d.id | first) | str join ',' }
ls fastq/*/*.fastq.gz | select name | annotate | group-by dir | values | where ($in | length) > 1 | each { toCSV $in } | save -f input.txt
#+end_src
* Intégration
** Python avec virtual env
Installer virtualenv, exemple avec `emerge virtualenv` puis
#+begin_src
virtualenv myenv
overlay use myenv/bin/activate.nu
pip install osmnx
#+end_src
** Emacs et tramp
Pour forcer tramp à utiliser bash
#+begin_src
SHELL="/bin/bash" ~/.emacs.d/bin/doom env
#+end_src
* Exemples de scripts
** Pandoc sur une liste de fichier
org -> markdown
#+begin_src nu
ls *.org | each {|e| pandoc $e.name -o $"($e.name | path parse | get stem).md"}
#+end_src
** Lister tous les IDs des csv et faire l’intersection avec les ID des pdfs
# Utilisation
Lister nom de colonnes
open lol.csv | columns
# Intégration
## Emacs et tramp
Pour forcer tramp à utiliser bash
SHELL="/bin/bash" ~/.emacs.d/bin/doom env
## Python avec virtual env
Installer virtualenv, exemple avec \`emerge virtualenv\` puis
virtualenv myenv
overlay use myenv/bin/activate.nu
pip install osmnx
# Exemples de scripts
## Pandoc sur une liste de fichier
org -\> markdown
``` nu
ls *.org | each {|e| pandoc $e.name -o $"($e.name | path parse | get stem).md"}
```
## Lister tous les IDs des csv et faire l'intersection avec les ID des pdfs
``` nu
ls excel = (ls S:genetique\commun\Centogene_variants\excel | get name | path basename | path parse | get stem | parse "{id}_{s}" | get id)
let patho = (open patho.csv | get id)
$excel | append $patho | uniq -d
```
## Génerer une liste de fastq en les groupant par nom de dossier
List all fastq, then generate a column containing the file and dirname.
Groupy by directory, extract record values input a table. Filter folders
with less than 2 files. Concatenante the files and save the result into
a txt file (.csv does not work)
``` {.bash org-language="sh"}
ls fastq/*/*.fastq.gz | select name | insert dir { $in.name | path dirname } | group-by dir | values | where ($in | length) > 1 | each { $in.name | str join ',' } | save input.txt
```
Version plus évoluée:
``` {.bash org-language="sh"}
def annotate [] { insert dir { $in.name | path dirname | path basename } | insert file { $in.name | path basename } | insert id { $in.name | patientID }}
def patientID [] { path basename | split row '_R' | first }
def toCSV [d] { $d.name | insert 0 ($d.dir | first) | insert 1 ($d.id | first) | str join ',' }
ls fastq/*/*.fastq.gz | select name | annotate | group-by dir | values | where ($in | length) > 1 | each { toCSV $in } | save -f input.txt
```
Principe : antigène sur le globule rouge, anticorps dans le plasma.
Ex:
- groupe A = antigène A, anticorpsp antiB
- groupe O = pas d'antigène A ni B, anticorps anti A et B
Génétique: A et B co-dominant, O récessif
Note: sous-groupe A1 et A2 mais pas d'intérêt en transfusion
### Phénotype rares
- faible expression antigène A B
- cis-AB : 2 allèles transmis comme un (d'ou le cis-)
- B(A): les sujets B peuvent être agglutinées par des anticorps anti-A. Idem pour A(B)
- acquis: B, A, perte expression partielle chez patients hémato
### Anticorps
"Naturels" vs "immuns" (stimulation suplémentaires)
## H
- Gènes H et SE -> haplotypes HSE, Hse, hSE, hse
- Phénotype H déficients : pas d'antigène H mais anti-H plus ou moins intense (exemple du phénotype Bombay qui a un anti-H très puissant ("receveur dangereux"))
- Anticorps antiH: dangereux chez sujet Bombay, Ah ou Bh
## LE (ancien. Lewis)
- Pas un vrai système de groupe sanguin mais sécrétion/tissulaire (existence d'une susbstance LE1 ou LE2 mais seule la second est dans les globules rouges).
- Anticorps : anti-LE1, LE1, LebH, LebL....
- Peu utile pour transfusion