Video summary
The nf-core/longraredisease pipeline is a comprehensive tool designed for detecting and interpreting clinical variants using Oxford Nanopore long-read sequencing data. It addresses significant diagnostic gaps left by short-read sequencing, particularly in resolving structural rearrangements, large insertions, inversions, and repeat expansions that often span longer than the read lengths of standard technologies. By leveraging the ability of long reads to traverse repetitive regions and retain native DNA methylation information, this pipeline enables effective phasing of variants onto maternal or paternal haplotypes, which is crucial for investigating imprinting disorders and other complex genetic conditions.
The workflow integrates multiple complementary analysis classes, including small variant calling with Clair3, structural variant detection using tools like Sniffles2, DeepVariant, and SVIM, as well as copy number variation analysis via PackI or SPECTER depending on the platform. It also incorporates methylation pileup generation with Modkit and haplotype phasing with LongPhase. A key enhancement over previous workflows is its support for family-based analysis, allowing users to input pedigree structures and phenotype information directly into sample sheets. This capability facilitates joint genotyping, Mendelian consistency checks, and phenotype-driven prioritization of variants, creating a connected set of branches that share alignment coverage and phasing data rather than simply listing isolated variants.
To ensure robust results, the pipeline employs dynamic filtering strategies that adapt to varying sequencing depths, avoiding the pitfalls of fixed read support thresholds which can either miss critical events or admit excessive noise. The process involves a multi-layered approach where initial variant calls inform haplotype construction, which in turn refines structural variant and copy number calling. Users can select specific sequencing platforms such as ONT, PacBio, or HiFi to automatically configure appropriate aligners like Minimap2 and variant callers like STRiCT or SPECTER. Additionally, the pipeline offers extensive annotation options, converting variant data into browsable HTML reports and allowing for reprioritization based on human phenotype ontology terms.
Looking toward future development, the creator aims to expand the pipeline's capabilities by adding de novo assembly support and integrating new tools like MahiMahi for tandem repeat calling. The developer emphasizes the importance of community engagement, encouraging users to report issues via GitHub or join Slack channels to foster collaboration and improve the tool's lifecycle. While currently maintained primarily by a single developer with clinical input from Birmingham Women's and Children's Hospital, there is a strong desire to attract more bioinformaticians and developers from diverse institutions to ensure the pipeline remains robust, widely adopted, and continuously improved for the broader genomics community.
Read the full video transcript
Hi, Maxim here. I'd like to welcome
Norafel.
Uh she's from Bigam Woman and Children's
Hospital and uh today she's going to
talk about NFore longer disease.
So over to you Nor.
>> Hi, thank you everyone for joining. Um
so basically I'm going to talk you
through the pipeline. Um we've released
version 1.00 00 and it's basically to
for detecting um clin and interpreting
variance from Oxford nanopore impact by
long read sequencing data. So this is
what we'll I'll cover today and I'll
begin with the clinical problem that
motivated the pipeline the types of
pathogenic variation
uh that are difficult to resolve using
short read sequencing. I'll also talk
about what makes long rare disease
variant um long rare disease pipeline
different and I'll talk through the
inputs and qu uh I'll also show you the
command for a quick start um and then
walk you through the coverage um
annotation outputs and future directions
as well.
So short read sequencing is highly
effective for many single nucleotide
variants and small insertions or
deletions but it leaves important
diagnostic gap. Uh balance structural
rearrangements, large insertions and
inversions can be difficult to
reconstruct because an individual shorty
does not span the complete event. So
repeat expansions create a similar
problem as well. The pathogenic repeat
may be substantially longer than the
reads being used to sequence it. So long
reads can span these events and can map
effectively across repetitive or
difficult regions as well as native long
reads can also retain information about
DNA methylation and can allow varants to
be phased onto maternal or paternal
hypotypes and that makes it possible to
investigate for example imprinting
disorders.
So the biplier supports several um
complimentary classes of analysis and
this uh includes for example small
variants and these are called blar
three. Um deep variant can be used as an
alternative structural variants are
called independently and you can use
sniffles vim orv as well as merging
using um jasmine.
uh copy number calling is optional and
platform dependent as well whether it's
um packp and I'll talk you through how
to um specify the platform and also
there's modkit that produces methylation
pileups and long phas is used for
phasian and hlet attacking
so um some of the pipelines foundations
come from Oxford nanoporeo epitme human
variation workflow and this includes the
established caller such as sniffles for
example and also adjusting structural
variant read support threshold acample
coverage.
Uh here it has been incorporated into an
NF core workflow and extended
substantially.
So um for example the main additions
here would include multicolor uh
structural variant consensus also pack
bio support uh deep variant but also you
could use family analysis in this
pipeline and there's a clinical
interpretation layer as well and the
sample sheets itself can contain
pedigree and human phenotype information
as well. Uh so this enables pedigree
construction joint genotyping um and
also mandelian analysis and phenotype
driven prioritization.
So the diagram summarizes the whole
pipeline and the workflow accepts under
analigned bound files for skew or
aligned bound data for skew and
unaligned bound file uh inputs. They can
pass through read preparation and
alignment using minimap 2 or optionally
you can also use winn mapap and the
resulting b is index and used for
coverage calculation small variant
calling and initial structure variant
call.
Okay. So clearly and uh SNVs and the
initial snipples uh calls they inform
long phase as well. So long phase phases
the variance and writes hletype ds back
into bam and the hlet tag bam feeds the
final structure variance copy number v
str branches so this all depends on
selected options so calls are also
merged if uh if it's selected annotated
and phenotype priorit prioritize
um this is potentially combined into a
unit unified VCF if needed
So um the important point here is that
it's not simply variant color. It's uh a
set of connected branches sharing
alignment coverage and phasing
information.
So um the sample sheet has only two
mandatory fields. We've got the sample
ID and the file path. uh and the sample
identifier becomes the metadata
identifier used by next floor and is
reflected in the output directory. Um
file path can point to a single file or
it can be a directory containing
multiple files for example multiple and
map files which can be which are merged
by the pipeline. uh optional human type
uh human phenotype ontology, sex
phenotype and pedigree columns and they
unlock the interpretation family
analysis components.
So uh before processing a complete
genome I recommend using the test
profile uh just to see if the pipeline
works uh on on your HPC or on the cloud
uh to make sure also all the
configuration are correct. Um the
command shown here runs a small test
data set using Docker and writes it
results to a local output directory. Uh
this basically a quick check um that
next floor and the selected container
engine and the surrounding execution
environment are working before
substantial compute is is committed.
Um for real data the command adds a
sample sheet output directory input type
and for example sequencing platform as
well that is used or int or packpai or
hi-fi and reference genome
um so uh the sequencing platform so the
sequencing platform parameter is more
than a label so for Oxford nanopore uh
mini map to if you choose a sequencing
platform for example in t that would uh
preset the mini map to and mini map and
that would use a map function in those
um in in those tools.
CLA 3 uses its model as as well as well
as deep variant uh for back bio
alignment which this switches to for
example map hi-fi for hi-fi data or map
PB for the broader back bio setting uh
class 3 and deep far use back by
appropriate models and long face
receives uh the PB flag uh in this
instance as well uh TRGT tool replaces
straggler to call um STRs and hi-fi CNV
replaces uh spectra for CNV caller. So
uh most presets can still be overridden
explicitly. So u this is useful when
you're using or backfire or hi-fi reads
for example.
Okay. So for Oxford nanoporeo um a
typical comprehensive run may enable STR
CNV and methylation analysis. Spectra
uses genomewide coverage information
while struggler genotype tandem repeat
and um strang tool called stranger
that's what annotates STR um varants
uh so this provides a repeat catalog um
modkit also can extract methylation
information directly uh from mm or ml
tags retained in the bump file and then
for backpi The overall pip structure
remains the same but it's platform
sensitive colors change basically.
So for analigned bal input uh samples
fasc converts reads for alignment while
retaining the mml and move uh move table
tags. Uh the reference is index once and
the same index can be reused across
samples.
Mini Map 2 then aligns the read with
selected platform presets. And I wanted
to flag um the Y flag in Mini Map 2. And
this option is important because it
carries base modification information
into the aligned BAM. And basically
without it the alignment itself uh may
look successful but methylation analysis
will not have the information it needs.
Um yeah. So the next bit that I want to
talk about is MOSEP the coverage
information. So it's used in uh two
related ways. The the first one is uh
invocation calculates coverage in 1
kilobyt windows and produce a summary
containing the sample mean depths. The
second invocation it uses quantise and
basically oops it suppresses per base
output. So instead it creates a bed file
dividing the genome into four broad
coverage bands. Um and then these
measurements answer different questions.
Basically one describes a numerical
depth distribution while the other
provides a compact representation of uh
genome callability.
Okay. So uh a fixed read support
threshold behaves poorly across uh
samples with different depth. That's why
requiring eight supporting re in a 10
times genome would remove many critical
events. So at very high coverage um
retaining every event support but only
two reads would um admit considerable
noise. That's uh that's why we use a
mean read support alum. And basically
the pipeline converts the mean depth
into a support threshold
and uh the lookup table itself returns
zero below one time coverage as well. So
um basically with the current code the
effective filter doesn't actually fall
below two as well. So uh it's
automatically as a default. It's just if
you need to increase it um there is an
option for you to do that.
Okay, so structure variant filtering
occurs in layers. So first the colors uh
apply mapping quality requirement to the
supporting reads. Uh the workflow can
then retain only variance marked path uh
restrict results to selected regions or
chromosome and apply as well the
coverage aware read support. So after
those caller specific filters, Jasmine
evaluates cross caller support and the
default minimum is two callers. For
example, you can merge results from two
or more colors um and keep them. Um
so for example uh if you'd like to
identify only g um only variants that
need support from at least uh two or
more colorists, then you can use this
option. and as well as annotation and
phenotype ranking uh provide a final
prioritization layer.
So for SNV and indul you can use CLA 3
as a default and it produces GBCF output
so samples can later be join genotyped
as well and also uses long face during
its own uh output processing.
Um so a header also there is a header
repair step included before downstream
PCF tools processing and um this this is
important for SNPF annotation
and um the default SPF resource is um a
GIC 38 but that can be changed as well.
Um so deep parent is also available uh
as optional and um it basically it is
disabled by default but you can turn it
on if you would prefer.
Um so why the band gets httacked first?
So there is a habac option available and
it can be turned off as well. So um the
phasing in this uh pipeline it
introduces an important loop and um so
class three first calls small varants
and sniffles plat performs an initial SV
call on the aligned BAM and then
longface uses the SMV and SV information
to build HL types basically uh and then
this assigns uh HL types and writes HP
tags into a new pal.
So the STR branch differs substantially
by platform as well. ONT data are
analyzed using straggler but however and
annotated using stranger but for example
for backb we use trgt for copy number as
well. Uh spectra uses a bin whole genome
sequencing and uh relevant supporting
files.
Okay.
So there there's a lot of um annotation
available in the pipeline. for example
using anotv
uh as well as not anotusv uh which turns
information um into html browsable HTML
uh as well as uh spanner for example uh
can be used to reprioritize structural
varants according to the proband's
phenotype and it requires human
phenotype ontology
um and we also can use uh SMP SMF as
well And uh it provide it can then
annotate annotate any combined files as
well. So for example the unified VCF
that I mentioned earlier can be uh you
can use SNPF to annotate all of the
variants in this um in that VCF.
So here I just wanted to include um the
output directory. So what is um produced
at the end
and it's uh basically a list of folders
um just to give you an idea what uh
where is information um and uh it's
I've made sure it's very um
self-explanatory like for example
sniffles fam QSV all of the folders are
called based on the tools output
um so for future future additions here.
So I have um
I I would like to ask so if you see an
issue with the pipeline and um you would
like an improvement please uh add it as
an issue. Um and so far I've got uh bed
file support via the NF schema um plugin
the GPU accelerated for mini map 2. Um I
also want to add denovo assembly to the
pipeline. Um one thing that I wanted to
mention as well that the anode sv is
currently failing for spam. So the SV
can only be called for uh cute SV or
sniffles and as well predict carotype
prediction from the data. Uh there is a
new STR call that the Epichimi has um
published called Mahi Mahi that I want
to take a look into and if it's good as
well and validate it um and implement it
as well.
Thank you.
Hello. Hello. So, thank you again. Oh,
thank you. That was very good. I'm going
to allow people to unmute their
themselves.
Yes, that should be good. So, if you
have a question, uh either you can ask
on the chat or unmute yourself and go
for it. Uh otherwise, I do have a
question myself. Uh you add the params
to select the platform
>> either. Yeah, you add params to select
the platform. So either or pack bio. Uh
do you envision uh having the polic
directly within the sample sheet?
>> Yes. Um I I have tried to do that before
and I found it just easier to do it
through the config. Um
I think so initially when I did that I
wanted to allow like different samples
uh to be analyzed simultaneously and
that it just did not work for me
initially but maybe I need to try again
and see if that would um that would
work.
Yeah, I do think it's slightly more
complex and I think most of the time
like people have like projects that have
like uh all on the same platform but yes
maybe sometime you end up like having
one project with like both stuff. So you
could always split the sample sheet into
one with just and one with just
everything. But yes, I know it's a bit
of uh making it more difficult for the
developer, but yes. Why is it just just
a question so no worries?
>> No, that's a that's a good question and
um that I have tried to do that but I'm
I will try again to do that when I have
more time hopefully because I think uh
that would be that would provide the
users with the ability to analyze using
both in one sample sheet. Yeah. Yeah,
you
talked earlier before the that we have
actually that and you mentioned that you
you're the main and only developer on
that pipeline uh that like you get help
from uh from people like around you but
mainly just in advising you with the
tool and everything. So I think uh it
might be helpful for you to try to get
like more user. I'm guessing you have
many user at at your local like locally,
right? Or did you get user outside of
your own hospital?
Um so at the moment in Birmingham we've
got many users but it's mainly a
clinical scientist um that do the
variant prioritization
um but um not many bionaticians
um that work on the pipeline
um as well as in Birmingham University
there are users as well um in Andrew
Beck's lab
Um, so I did hear that some people using
it outside but I'm not sure where
exactly
but
>> okay so I'm hoping that you will get
more people and that you will get more
more question and uh and hopefully more
collaboration.
>> Yeah,
>> one thing is I really hope for is to
keep improving the pipeline. So, uh,
it's very helpful if I can get more
developers, but if I can get people just
opening issues, that would help improve
it as well. Um, and like adding new
features as well. Um,
yeah.
>> Yeah. No, I think it's a problem that
all of us like pipeline developer like
have and I think a couple of only a
couple of pipeline are lucky to get
developer in multiple sites so that like
they no longer rely just on the original
developer and yeah I think it's a it's a
life cycle like in the pipeline
development and maybe you'll get there
at some point like we never know. So
>> thank you. I'm hopeful for the future
because I do think you have a pipeline
that is important and that will get like
traction. So yes,
>> fingers crossed.
>> Finger crossed.
>> Thank you.
>> Okay. Do we have any question from the
audience or uh nothing? I don't see
anything in the chat. Uh nothing from
the participant. Okay.
>> You're welcome to message me as well.
Yay.
>> Yes, that's okay.
>> You're welcome. Like if you have any
question, please don't say to ask them
on Slack or definitely like there's
Slack channel for this is and I'm
guessing you can probably also answer
personal private message as well.
>> Yes. Um LinkedIn or Slack welcome to
message me or either.
>> Okay, wonderful. Uh then I think we can
we we are done for today. So thank you
very much. I think that was a very good
bite size.
>> Thank you so much for giving me the
opportunity to present it and thank you
for joining this call, Maxim.
You're
>> welcome. Goodbye. See you soon.
>> See you. Bye.