Clinical-Genomics / cg_lims

3 stars 1 forks source link

New workflow for ONT, consisting of prep and sequencing #451

Closed amandaraud closed 6 months ago

amandaraud commented 11 months ago

We are going to start sequencing samples with ONT for the 100 genomes project, which is planned to start in December. Luckily enough, NGI have been running ONT samples for some time, and already have a LIMS workflow set up for it: image (4)

A meeting is planned in order to discuss how much of their implementation can be used by us, and what changes that are needed.

The current deadline for having this in production is around the 5-10th of December, but this might change depending on how the lab and IT implementations progress.

Karl-Svard commented 10 months ago

NGI workflow set-up: https://docs.google.com/spreadsheets/d/1JKTgZmP6pnPfjUJtSt6gL-yTqmHN6PJ8Yp0joG3U_nY/edit#gid=183845737

Comments and requests from LF: https://docs.google.com/document/d/1OQBI0tdQVhBlzRhnlmuUfw4YbKi6uEfgXjpJAuHX-MY/edit

(tell me if you need access to view them)

Karl-Svard commented 6 months ago

The ONT workflow has now been deployed to the production environment

New workflow: ONT

Initial QC (ONT)

ONT Library Prep

Library Validation (ONT)

ONT Sequencing

Delivery v1

New EPPs created:

Set Date

bash -c -l "conda activate cg_lims && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf copy process-to-sample -sudf 'Received at' -pudf 'Date arrived at Clinical Genomics'"

Check Required - Aggregate QC (DNA) (ONT)

bash -c -l "conda activate cg_lims &&  lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf check check-artifact-udfs  -i -au 'Concentration'  -au 'Amount (ng)'"

Calculate Amount for 50 μl of the samples

bash -c -l "conda activate cg_lims &&  lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf calculate calculate-amount-ng-fmol -n 'DNA Fragmentation (ONT)' --concentration-udf 'Concentration' --volume-udf 'Volume (ul)' --size-udf 'Size (bp)' --preset-volume 50"

Calculate ONT Aliquot Volumes for fragmentation

bash -c -l "conda activate cg_lims &&  lims -c  /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid}   udf calculate ont-aliquot-volume -n 'DNA Fragmentation (ONT)' --concentration-udf 'Input Concentration (ng/ul)' --size-udf 'Size (bp)' --volume-udf 'Sample Volume (ul)' --buffer-udf 'Volume H2O (ul)' --total-volume-udf 'Total Volume (ul)'"

Copy UDFs from Reception Control QC

bash -c -l "conda activate cg_lims && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf copy artifact-to-artifact --sample-artifact -au 'Input Size (bp)' -sau 'Size (bp)' -au 'Input Amount (ng)' -sau 'Amount (ng)' -au 'Volume (ul)' -sau 'Volume (ul)' -sau 'Concentration' -au 'Input Concentration (ng/ul)'"

Calculate Aliquotation Volumes for Size Selection

bash -c -l "conda activate cg_lims &&  lims -c  /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid}   udf calculate ont-aliquot-volume -n 'DNA Fragmentation (ONT)' -n 'DNA Size Selection (ONT)' --concentration-udf 'Input Concentration (ng/ul)' --size-udf 'Size (bp)' --volume-udf 'Sample Volume (ul)' --buffer-udf  'Volume H2O (ul)' --total-volume-udf 'Total Volume (ul)' "

Calculate Amount for 37 μl of the samples

bash -c -l "conda activate cg_lims &&  lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf calculate calculate-amount-ng-fmol -n 'DNA Fragmentation (ONT)' -n 'DNA Size Selection (ONT)' --concentration-udf 'Concentration' --volume-udf 'Volume (ul)' --size-udf 'Size (bp)' --preset-volume 37"

Copy UDFs from DNA Fragmentation

bash -c -l "conda activate cg_lims && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf copy artifact-to-artifact -n 'DNA Fragmentation (ONT)' -au 'Input Size (bp)' -sau 'Size (bp)' -au 'Input Amount (ng)' -sau 'Amount (ng)' -au 'Volume (ul)' -sau 'Volume (ul)' -sau 'Concentration' -au 'Input Concentration (ng/ul)'"

Calculate ONT Aliquot Volumes

bash -c -l "conda activate cg_lims &&  lims -c  /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid}   udf calculate ont-aliquot-volume -n 'DNA Fragmentation (ONT)' -n 'DNA Size Selection (ONT)' --concentration-udf 'Concentration' --size-udf 'Size (bp)' --volume-udf 'Sample Volume (ul)' --buffer-udf 'Volume H2O (ul)' --total-volume-udf 'Total Volume (ul)'"

Copy UDFs from Initial QC or Previous Steps

bash -c -l "conda activate cg_lims && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf copy artifact-to-artifact --sample-artifact -au  'Concentration' -sau 'Concentration' -au 'Amount (ng)' -sau 'Amount (ng)' && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf copy artifact-to-artifact -n 'DNA Fragmentation (ONT)' -n 'DNA Size Selection (ONT)' -au  'Concentration' -sau 'Concentration' -au 'Amount (ng)' -sau 'Amount (ng)' --ignore-fail"

Copy Volume from Initial QC or Previous Step

bash -c -l "conda activate cg_lims && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf set updated-sample-volume -sa && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf set updated-sample-volume -n 'DNA Fragmentation (ONT)' -pudf 'Total Volume (ul)'  --subtract-volume 5 --ignore-fail && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf set updated-sample-volume -n 'DNA Size Selection (ONT)' -pudf 'Total Volume (ul)' --subtract-volume 13 --ignore-fail"

Calculate Amount for 60 μl of the samples

bash -c -l "conda activate cg_lims &&  lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf calculate calculate-amount-ng-fmol -n 'DNA Fragmentation (ONT)' -n 'DNA Size Selection (ONT)' --concentration-udf 'Concentration (ng/ul)' --volume-udf 'Volume (ul)' --size-udf 'Size (bp)' --preset-volume 60"

Copy Amount (ng) from ONT Aliquotation

bash -c -l "conda activate cg_lims && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf copy artifact-to-artifact  --process-types 'Aliquot Samples for ONT Prep' -au 'Input Amount (ng)' -sau 'Amount (ng)'"

Copy Volume from ONT Aliquotation

bash -c -l "conda activate cg_lims && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf set updated-sample-volume -n 'Aliquot Samples for ONT Prep' -pudf 'Total Volume (ul)'"

Copy Amount (ng) from ONT End Repair

bash -c -l "conda activate cg_lims && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf copy artifact-to-artifact  --process-types 'Aliquot Samples for ONT Prep' -au 'Input Amount (ng)' -sau 'Amount (ng)'"

Calculate Amount for 24 μl of the samples

bash -c -l "conda activate cg_lims &&  lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf calculate calculate-amount-ng-fmol -n 'DNA Fragmentation (ONT)' -n 'DNA Size Selection (ONT)' --concentration-udf 'Concentration' --volume-udf 'Volume (ul)' --size-udf 'Size (bp)' --preset-volume 24 -i"

Calculate ONT Sequencing Aliquotation

bash -c -l "conda activate cg_lims && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf calculate ont-aliquot-volume -n 'DNA Fragmentation (ONT)' -n 'DNA Size Selection (ONT)' --concentration-udf 'Concentration' --size-udf 'Size (bp)' --volume-udf 'Sample Volume (ul)' --buffer-udf 'Volume Buffer (ul)' --total-volume-udf 'Loading Volume (ul)' --amount-fmol-udf 'Loading Amount (fmol)'"

Copy Concentration and Amount from ONT prep

bash -c -l "conda activate cg_lims && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf copy artifact-to-artifact -au 'Concentration' -au 'Amount (fmol)' -n 'ONT Adapter Ligation'"

Copy Input Container Name and Well

bash -c -l "conda activate cg_lims && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf copy container-to-artifact -n 'ONT Adapter Ligation' --well-udf 'Input Container Well' --container-name-udf 'Input Container Name'"

Generate ONT Sample Sheet

bash -c -l "conda activate cg_lims && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} files create-ont-sample-sheet -f {compoundOutputFileLuid1}"

Set ONT Experiment Name

bash -c -l "conda activate cg_lims && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf set set-ont-sequencing-settings"

Calculate Available Amount for ONT Reload

bash -c -l "conda activate cg_lims &&  lims -c  /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf calculate ont-available-sequencing-reload"

Calculate ONT Reload Aliquot Volume

bash -c -l "conda activate cg_lims &&  lims -c  /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid} udf calculate ont-aliquot-volume -n 'DNA Fragmentation (ONT)' -n 'DNA Size Selection (ONT)' --concentration-udf 'Concentration' --size-udf 'Size (bp)' --volume-udf 'Sample Volume (ul)' --buffer-udf 'Buffer Volume (ul)' --amount-fmol-udf 'Reload Amount (fmol)' --total-volume-udf 'Reload Volume (ul)' -m"

Next step Remove (Non output step)

bash -l -c "/opt/gls/clarity/bin/java -jar /opt/gls/clarity/extensions/ngs-common/v5/EPP/ngs-extensions.jar -i {stepURI:v2} -u {username} -p {password} script:evaluateDynamicExpression -t false -h false -exp 'if (input.hasValue( ::Rerun:: ) && input.::Rerun:: == true) { nextStep = ::REMOVE:: } else { nextStep = ::ADVANCE:: }' -log {compoundOutputFileLuid1}"

Parse ONT Run Results

bash -c -l "conda activate cg_lims && lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid4} -p {processLuid} files parse-ont-report --root-path /home/gls/nanopore_data"

Queue Samples for Rerun (ONT)

bash -c -l "conda activate cg_lims &&  lims -c /home/glsai/.genologics.yaml epps -l {compoundOutputFileLuid0} -p {processLuid}  move  rerun-samples -u 'Rerun' -n 'ONT Adapter Ligation' -w 2152 -s 7487 -i"

New UDFs created:

Derived Sample

Measurement

New Container type

henrikstranneheim commented 6 months ago

Fantastic 🥇