B:BD[
6.42002] → [
7.30:8222]
- [ ] 2300292749_63109239
- [ ] 230029277_63109247
- [ ] 2300294712_63109236
- [ ] 2300308032_63111581
- [ ] 2300323537_63114209
- [ ] 2300334609_63115535
- [ ] 2300346867_63118093
- [ ] 2300346867_63118093_NA12878
- [ ] 2300348940_63118099
- [ ] 2300359806_63119915
- [ ] 2300380476_63123963
- [ ] 2300382582_63123749
- [ ] 2300384269_63126867
- [ ] 2300407581_63130826
- [ ] 2300407626_63130842
- [ ] 2300409593_63130874
- [ ] 2300409612_63130980
- [ ] 2300417623_63131524
** TODO Variants manqués :checkpipeline:
SCHEDULED: <2023-10-21 Sat>
*** DONE 63012582: chr10:g.102230760 filtré par AD :63012582:
CLOSED: [2023-10-08 Sun 23:24] SCHEDULED: <2023-10-08 Sun>
Il est en sortie d'haplotypecaller !
Attention à la position : POS=102230753 noté CG->C
GT:AD:DP:GQ:PL 0/1:26,8:34:99:146,0,671
Filtré par la condition AD <= 10 (porté par 8 reads seulement)
Non confirméen sanger, rendu vous
**** KILL image BAM cento
CLOSED: [2023-10-08 Sun 23:13]
**** DONE image BAM bisonex
CLOSED: [2023-10-08 Sun 23:23] SCHEDULED: <2023-10-08 Sun>
**** DONE Mail Paul
CLOSED: [2023-10-08 Sun 23:24] SCHEDULED: <2023-10-08 Sun>
*** DONE 63060439: chr15:g.26869324 = Problème de profondeur DP=15 :63060439:
CLOSED: [2023-10-08 Sun 23:24] SCHEDULED: <2023-10-08 Sun>
GABRA5
Rendu VOUS avec un variant patho MDB5 pour même patient (VOUS- même)
Non confirmé en Sanger
GT:AD:DP:GQ:PL 0/1:9,6:15:99:103,0,213
**** DONE image BAM bisonex
CLOSED: [2023-10-08 Sun 22:56]
**** DONE Mail Paul
CLOSED: [2023-10-08 Sun 23:24] SCHEDULED: <2023-10-08 Sun>
*** DONE Un seul exécutable pour toutes les étapes
CLOSED: [2023-11-04 Sat 19:00] SCHEDULED: <2023-10-21 Sat>
Un utilitaire en ligne de commande qui appel les différentes étapes.
On utilise une structure unique pour toutes les étapes mais qui sera remplie au fur et à mesure. En stockant dans un csv à chaque étape
**** DONE parse variants
CLOSED: [2023-10-21 Sat 23:29] SCHEDULED: <2023-10-21 Sat>
**** DONE Ajouter négatifs dans la liste des variants
CLOSED: [2023-10-22 Sun 23:01] SCHEDULED: <2023-10-21 Sat>
**** DONE Mettre à jour liste des variants
CLOSED: [2023-10-22 Sun 23:01] SCHEDULED: <2023-10-21 Sat>
- [X] Régéner la liste des variants
- [ ] Retrouver les variants modifié à la main avec diff
On ne garde que les ajouts
#+begin_src sh
awk -F ',' '{print $1","$2":"$3$4$5}' extracted.csv | ^sort | save -f extracted_concat.csv
xsv select 1-2 ~/annex/data/centogene/variants/variant_genomic.csv | ^sort | save variant_genomic_corr.csv -f
diff extracted_concat.csv variant_genomic_corr.csv | grep '^>' | save -f update.diff
#+end_src
- [X] Ajouter négatifs
345 variants non trouvés avant modification
141 après modification
- [X] Ajouter différence
- [X] Corriger erreurs de parsing
**** KILL Lifter coordonées variants cento génomique en GRCh38
CLOSED: [2023-10-21 Sat 22:47]
**** DONE Parser coordonnée patient
CLOSED: [2023-11-04 Sat 18:59] SCHEDULED: <2023-10-31 Tue>
**** DONE Un seul type de données
CLOSED: [2023-11-01 Wed 00:55] SCHEDULED: <2023-10-31 Tue>
***** DONE Vérifier avec derniere version sauvegardé
CLOSED: [2023-11-01 Wed 00:55] SCHEDULED: <2023-10-31 Tue>
file,transcript,coding,codingPos,codingChange,proteinChange,classification,zygosity
->
patient,transcript (cento),transcript (canonical),coding,genomic (hg38),classification (cento),zygosity,gene,Confirmed in sanger,Found by bisonex,chrom,pos,ref,alt
- [ ] Fusionner coding,codingPos,codingChange
- [ ] Ne pas écrire proteinchange
- [ ] Fichier de référence : insérer champs vides avec awk : transcript (canonical), genomic puis gene, etc
- [ ] Fichier de référence : renommer header
- [ ] vérifier que fichier toujours identique
#+begin_src julia
using DataFramesMeta, CSV
# - [ ] Fichier de référence : insérer champs vides avec awk : transcript (canonical), genomic puis gene, etc
# - [ ] Fichier de référence : renommer header
# - [ ] vérifier que fichier toujours identique
#file,transcript,coding,codingPos,codingChange,proteinChange,classification,zygosity
#->
#patient,transcript (cento),transcript (canonical),coding,genomic (hg38),classification (cento),zygosity,gene,Confirmed in sanger,Found by bisonex,chrom,pos,ref,alt
function mergeCoding(c, p, ch)
"negatif" in [c, p, ch] ? "negatif" : c * p * ch
end
function negative(t, pos)
t == "negatif" ? -1 : pos
end
cols = [:patient,:"transcript (cento)",:"transcript (canonical)",:coding,:"genomic (hg38)",
:"classification (cento)",:zygosity,:gene,:"Confirmed in sanger",:"Found by bisonex",
:chrom,:pos,:ref,:alt]
d = @chain CSV.read("variant_extracted.csv", DataFrame) begin
# Fusionner coding,codingPos,codingChange
@transform :coding = mergeCoding.(:coding, :codingPos, :codingChange)
# Ne pas écrire proteinchange
@select $(Not([:codingPos, :codingChange, :proteinChange]))
# Add missing mcolumns
@rename :"transcript (cento)" = :transcript :patient = :file :"classification (cento)" = :classification
@transform :"transcript (canonical)" = missing :"genomic (hg38)" = missing :gene = missing
@transform :"Confirmed in sanger" = missing :"Found by bisonex" = missing
@transform :chrom = missing :pos = missing :ref = missing :alt = missing
# Rorder
@select :patient :"transcript (cento)" :"transcript (canonical)" :coding :"genomic (hg38)" :"classification (cento)" :zygosity :gene :"Confirmed in sanger" :"Found by bisonex" :chrom :pos :ref :alt
# Set -1 for negative variant
@rtransform :pos = :"transcript (cento)" == "negatif" ? -1 : :pos
@rtransform :"transcript (canonical)"= :"transcript (cento)" == "negatif" ? "negatif" : :"transcript (canonical)"
@rtransform :"genomic (hg38)" = :"transcript (cento)" == "negatif" ? "negatif" : :"genomic (hg38)"
@rtransform :coding = :"transcript (cento)" == "negatif" ? "negatif" : :coding
@rtransform :gene = :"transcript (cento)" == "negatif" ? "negatif" : :gene
@rtransform :pos = ismissing(:pos) ? -1 : :pos
end
CSV.write("variant_extracted_remap.csv", d)
d2 = @chain CSV.read("extracted.csv", DataFrame) begin
@orderby :patient
end
CSV.write("extracted_sorted.csv", d2)
#+end_src
ON trie les fichiers pour bien avoir le bon order (sinon diff ne fonctionne pas ??)
diff extracted_sorted.csv variant_extracted_remap.csv -u | save extracted.diff
patch -p1 extracted_sorted.csv extracted.diff
patching file extracted_sorted.csv
diff extracted_sorted.csv variant_extracted_remap.csv -u
**** KILL variant_recoder pour avoir les coordonnées VCF
CLOSED: [2023-10-25 Wed 09:13] SCHEDULED: <2023-10-21 Sat>
mobidetails n e trouve pas les ieux transcrits
**** DONE Annotation mobidetails (gene + données gonémique)
CLOSED: [2023-10-25 Wed 09:14]
**** DONE Envoyer liste à Paul
SCHEDULED: <2023-10-26 Thu>
**** DONE compare chaque variant avec la sortie du pipeline
CLOSED: [2023-10-31 Tue 00:18] SCHEDULED: <2023-10-21 Sat>
Avec la fonction "test" dans Search.hs
1126 extracted
654 annotated
253 raw data
102 raw and annotated
236 raw and extracted
17 raw NOT extracted
890 extract WITHOUT raw
#+begin_src sh
❯ open diff.txt | from csv | get id | into string | each {|e| "~/annex/data/centogene/reports/" ++ $e ++ "*.pdf"} | each {|e| firefox $e }
#+end_src
Les 17 manquants sont
- 62913191 : CNV
- 62959388 : MT-ATP6
- 62999572 : MT-ATP6
- 62999627 : CNV
- 62999630 : CNV
- 63004218: CNV
- 63006466 : CNV
- 63009152 : manqué à extraire -> bien présent
- 63015289: CNV
- 63024910 : MT-ATP6
- 63040251 : CNV
- 63043050 : CNV
- 63118093 : NA12878
- NA12878 x4
*** DONE Comparer variants cento à sortie bisonex: 50/121 confirmé en sanger, 71/121 non testé, 0 confirmés manqué par pipeline, 5 manqué mais non confirmés
CLOSED: [2023-11-08 Wed 00:19] SCHEDULED: <2023-11-04 Sat>
*** Comparger sanger : variant seul
Compliqué de reconstituer l'arbre familial. L'information est là mais demande du travail.
ON suppose que le variant n'est que dans la famille....
Résultats
❯ open san
- [ ] 2300292749_63109239
- [ ] 230029277_63109247
- [ ] 2300294712_63109236
- [ ] 2300308032_63111581
- [ ] 2300323537_63114209
- [ ] 2300334609_63115535
- [ ] 2300346867_63118093
- [ ] 2300346867_63118093_NA12878
- [ ] 2300348940_63118099
- [ ] 2300359806_63119915
- [ ] 2300380476_63123963
- [ ] 2300382582_63123749
- [ ] 2300384269_63126867
- [ ] 2300407581_63130826
- [ ] 2300407626_63130842
- [ ] 2300409593_63130874
- [ ] 2300409612_63130980
- [ ] 2300417623_63131524
** DONE Variants manqués :checkpipeline:
CLOSED: [2023-11-10 Fri 00:25] SCHEDULED: <2023-10-21 Sat>
*** DONE 63012582: chr10:g.102230760 filtré par AD :63012582:
CLOSED: [2023-10-08 Sun 23:24] SCHEDULED: <2023-10-08 Sun>
Il est en sortie d'haplotypecaller !
Attention à la position : POS=102230753 noté CG->C
GT:AD:DP:GQ:PL 0/1:26,8:34:99:146,0,671
Filtré par la condition AD <= 10 (porté par 8 reads seulement)
Non confirméen sanger, rendu vous
**** KILL image BAM cento
CLOSED: [2023-10-08 Sun 23:13]
**** DONE image BAM bisonex
CLOSED: [2023-10-08 Sun 23:23] SCHEDULED: <2023-10-08 Sun>
**** DONE Mail Paul
CLOSED: [2023-10-08 Sun 23:24] SCHEDULED: <2023-10-08 Sun>
*** DONE 63060439: chr15:g.26869324 = Problème de profondeur DP=15 :63060439:
CLOSED: [2023-10-08 Sun 23:24] SCHEDULED: <2023-10-08 Sun>
GABRA5
Rendu VOUS avec un variant patho MDB5 pour même patient (VOUS- même)
Non confirmé en Sanger
GT:AD:DP:GQ:PL 0/1:9,6:15:99:103,0,213
**** DONE image BAM bisonex
CLOSED: [2023-10-08 Sun 22:56]
**** DONE Mail Paul
CLOSED: [2023-10-08 Sun 23:24] SCHEDULED: <2023-10-08 Sun>
*** DONE Un seul exécutable pour toutes les étapes
CLOSED: [2023-11-04 Sat 19:00] SCHEDULED: <2023-10-21 Sat>
Un utilitaire en ligne de commande qui appel les différentes étapes.
On utilise une structure unique pour toutes les étapes mais qui sera remplie au fur et à mesure. En stockant dans un csv à chaque étape
**** DONE parse variants
CLOSED: [2023-10-21 Sat 23:29] SCHEDULED: <2023-10-21 Sat>
**** DONE Ajouter négatifs dans la liste des variants
CLOSED: [2023-10-22 Sun 23:01] SCHEDULED: <2023-10-21 Sat>
**** DONE Mettre à jour liste des variants
CLOSED: [2023-10-22 Sun 23:01] SCHEDULED: <2023-10-21 Sat>
- [X] Régéner la liste des variants
- [ ] Retrouver les variants modifié à la main avec diff
On ne garde que les ajouts
#+begin_src sh
awk -F ',' '{print $1","$2":"$3$4$5}' extracted.csv | ^sort | save -f extracted_concat.csv
xsv select 1-2 ~/annex/data/centogene/variants/variant_genomic.csv | ^sort | save variant_genomic_corr.csv -f
diff extracted_concat.csv variant_genomic_corr.csv | grep '^>' | save -f update.diff
#+end_src
- [X] Ajouter négatifs
345 variants non trouvés avant modification
141 après modification
- [X] Ajouter différence
- [X] Corriger erreurs de parsing
**** KILL Lifter coordonées variants cento génomique en GRCh38
CLOSED: [2023-10-21 Sat 22:47]
**** DONE Parser coordonnée patient
CLOSED: [2023-11-04 Sat 18:59] SCHEDULED: <2023-10-31 Tue>
**** DONE Un seul type de données
CLOSED: [2023-11-01 Wed 00:55] SCHEDULED: <2023-10-31 Tue>
***** DONE Vérifier avec derniere version sauvegardé
CLOSED: [2023-11-01 Wed 00:55] SCHEDULED: <2023-10-31 Tue>
file,transcript,coding,codingPos,codingChange,proteinChange,classification,zygosity
->
patient,transcript (cento),transcript (canonical),coding,genomic (hg38),classification (cento),zygosity,gene,Confirmed in sanger,Found by bisonex,chrom,pos,ref,alt
- [ ] Fusionner coding,codingPos,codingChange
- [ ] Ne pas écrire proteinchange
- [ ] Fichier de référence : insérer champs vides avec awk : transcript (canonical), genomic puis gene, etc
- [ ] Fichier de référence : renommer header
- [ ] vérifier que fichier toujours identique
#+begin_src julia
using DataFramesMeta, CSV
# - [ ] Fichier de référence : insérer champs vides avec awk : transcript (canonical), genomic puis gene, etc
# - [ ] Fichier de référence : renommer header
# - [ ] vérifier que fichier toujours identique
#file,transcript,coding,codingPos,codingChange,proteinChange,classification,zygosity
#->
#patient,transcript (cento),transcript (canonical),coding,genomic (hg38),classification (cento),zygosity,gene,Confirmed in sanger,Found by bisonex,chrom,pos,ref,alt
function mergeCoding(c, p, ch)
"negatif" in [c, p, ch] ? "negatif" : c * p * ch
end
function negative(t, pos)
t == "negatif" ? -1 : pos
end
cols = [:patient,:"transcript (cento)",:"transcript (canonical)",:coding,:"genomic (hg38)",
:"classification (cento)",:zygosity,:gene,:"Confirmed in sanger",:"Found by bisonex",
:chrom,:pos,:ref,:alt]
d = @chain CSV.read("variant_extracted.csv", DataFrame) begin
# Fusionner coding,codingPos,codingChange
@transform :coding = mergeCoding.(:coding, :codingPos, :codingChange)
# Ne pas écrire proteinchange
@select $(Not([:codingPos, :codingChange, :proteinChange]))
# Add missing mcolumns
@rename :"transcript (cento)" = :transcript :patient = :file :"classification (cento)" = :classification
@transform :"transcript (canonical)" = missing :"genomic (hg38)" = missing :gene = missing
@transform :"Confirmed in sanger" = missing :"Found by bisonex" = missing
@transform :chrom = missing :pos = missing :ref = missing :alt = missing
# Rorder
@select :patient :"transcript (cento)" :"transcript (canonical)" :coding :"genomic (hg38)" :"classification (cento)" :zygosity :gene :"Confirmed in sanger" :"Found by bisonex" :chrom :pos :ref :alt
# Set -1 for negative variant
@rtransform :pos = :"transcript (cento)" == "negatif" ? -1 : :pos
@rtransform :"transcript (canonical)"= :"transcript (cento)" == "negatif" ? "negatif" : :"transcript (canonical)"
@rtransform :"genomic (hg38)" = :"transcript (cento)" == "negatif" ? "negatif" : :"genomic (hg38)"
@rtransform :coding = :"transcript (cento)" == "negatif" ? "negatif" : :coding
@rtransform :gene = :"transcript (cento)" == "negatif" ? "negatif" : :gene
@rtransform :pos = ismissing(:pos) ? -1 : :pos
end
CSV.write("variant_extracted_remap.csv", d)
d2 = @chain CSV.read("extracted.csv", DataFrame) begin
@orderby :patient
end
CSV.write("extracted_sorted.csv", d2)
#+end_src
ON trie les fichiers pour bien avoir le bon order (sinon diff ne fonctionne pas ??)
diff extracted_sorted.csv variant_extracted_remap.csv -u | save extracted.diff
patch -p1 extracted_sorted.csv extracted.diff
patching file extracted_sorted.csv
diff extracted_sorted.csv variant_extracted_remap.csv -u
**** KILL variant_recoder pour avoir les coordonnées VCF
CLOSED: [2023-10-25 Wed 09:13] SCHEDULED: <2023-10-21 Sat>
mobidetails n e trouve pas les ieux transcrits
**** DONE Annotation mobidetails (gene + données gonémique)
CLOSED: [2023-10-25 Wed 09:14]
**** DONE Envoyer liste à Paul
SCHEDULED: <2023-10-26 Thu>
**** DONE compare chaque variant avec la sortie du pipeline
CLOSED: [2023-10-31 Tue 00:18] SCHEDULED: <2023-10-21 Sat>
Avec la fonction "test" dans Search.hs
1126 extracted
654 annotated
253 raw data
102 raw and annotated
236 raw and extracted
17 raw NOT extracted
890 extract WITHOUT raw
#+begin_src sh
❯ open diff.txt | from csv | get id | into string | each {|e| "~/annex/data/centogene/reports/" ++ $e ++ "*.pdf"} | each {|e| firefox $e }
#+end_src
Les 17 manquants sont
- 62913191 : CNV
- 62959388 : MT-ATP6
- 62999572 : MT-ATP6
- 62999627 : CNV
- 62999630 : CNV
- 63004218: CNV
- 63006466 : CNV
- 63009152 : manqué à extraire -> bien présent
- 63015289: CNV
- 63024910 : MT-ATP6
- 63040251 : CNV
- 63043050 : CNV
- 63118093 : NA12878
- NA12878 x4
*** DONE Comparer variants cento à sortie bisonex: 50/121 confirmé en sanger, 71/121 non testé, 0 confirmés manqué par pipeline, 5 manqué mais non confirmés
CLOSED: [2023-11-08 Wed 00:19] SCHEDULED: <2023-11-04 Sat>
*** Comparger sanger : variant seul
Compliqué de reconstituer l'arbre familial. L'information est là mais demande du travail.
ON suppose que le variant n'est que dans la famille....
Résultats
❯ open san