Dear Vincent,

Maybe we can move the discussion retrospectively? At the moment it seems we are 
tweaking a few things of which the for last obstacle good be tackled thanks to 
you. The only remaining issue is that I cant get results for my genes of 
interest. In stead I keep getting the same results over and over again. Would 
it be possible to help me a bit further until it works?In addition, I think 
incoporating the solution and later on posting it would be very interesting too.


Kind regards,


Rene

________________________________
Van: Vincent Carey <st...@channing.harvard.edu>
Verzonden: zondag 8 maart 2020 12:00:41
Aan: Mulder, R
CC: Tim Triche, Jr.; bioc-devel@r-project.org
Onderwerp: Re: [Bioc-devel] MRD measurements in Leukemic patients using NGS 
data in r

This has been a very interesting and illuminating dialogue but it really should 
be moved to
support.bioconductor.org<https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fsupport.bioconductor.org%2F&data=02%7C01%7Cr.mulder01%40umcg.nl%7Ca31511f1d00b42bc40bd08d7c34ff8a3%7C335122f9d4f44d67a2fccd6dc20dde70%7C0%7C0%7C637192620564238716&sdata=uRk3R%2Bs38f52BZQoZWYQokcv%2BOfyksDOwJf9vXwRCDM%3D&reserved=0>
 so that a record is available to the general user community.

The solution here
> library(Homo.sapiens)
Error in library(Homo.sapiens) :
  there is no package called ‘Homo.sapiens’

is BiocManager::install("Homo.sapiens")

On Sun, Mar 8, 2020 at 6:22 AM Mulder, R 
<r.mulde...@umcg.nl<mailto:r.mulde...@umcg.nl>> wrote:
Dear Tim,


Thanks again for your (quick) reply.


I just ran it on my computer and it gave me some results but also several 
errors.


The first part went perfect


> BamFiles <- BamFileList(lapply(list.files(pattern=".bam$"), BamFile))
> names(BamFiles) <- sapply(strsplit(list.files(pattern=".bam$"), "\\."), `[`, 
> 1)
> show(BamFiles)
BamFileList of length 2
names(2): here were my 2 files named without bam extension

However the second part did give results but also several errors

> library(Homo.sapiens)
Error in library(Homo.sapiens) :
  there is no package called ‘Homo.sapiens’
> gxs <- genes(Homo.sapiens)
Error in genes(Homo.sapiens) : could not find function "genes"
> names(gxs)  <- mapIds(Homo.sapiens, names(gxs), "SYMBOL", "ENTREZID")
Error in mapIds(Homo.sapiens, names(gxs), "SYMBOL", "ENTREZID") :
  could not find function "mapIds"
> SomeGenes <- gxs[ c("HRAS", "WT1", "IGF2") ]
Error: object 'gxs' not found
>
> sbparam <- ScanBamParam(which=SomeGenes)
Error in ScanBamParam(which = SomeGenes) : object 'SomeGenes' not found
> puparam <- PileupParam(max_depth=1e3, min_nucleotide_depth=5,
+                        include_insertions=TRUE, min_minor_allele_depth=1)
> piles <- lapply(BamFiles, pileup, ScanBamParam=sbparam, PileupParam=puparam)
>
> filterInvariant <- function(x) {
+     positions <- subset(x, duplicated(pos))$pos
+     subset(x, pos %in% positions)
+ }
> show(do.call(rbind, lapply(lapply(piles, filterInvariant), head, 2)))
              seqnames      pos strand nucleotide count
myfile1        1 36931671      +          A   251
myfile1         1 36931671      +          G     2
myfile2       1 36931673      +          -     1
myfile2               1 36931673      +          A   253


Error in library(Homo.sapiens) :
  there is no package called ‘Homo.sapiens’

For this error I installed the package BSgenome.Hsapiens.UCSC.hg19 and ran it 
again, but the errors at the next operations remained.

> gxs <- genes(Homo.sapiens)
Error in genes(Homo.sapiens) : could not find function "genes"

Renaming Homo.sapiens as BSgenome.Hsapiens.UCSC.hg19 did not work. Should I 
look up how this genome is called?


> names(gxs)  <- mapIds(Homo.sapiens, names(gxs), "SYMBOL", "ENTREZID")
Error in mapIds(Homo.sapiens, names(gxs), "SYMBOL", "ENTREZID") :
  could not find function "mapIds"

Where can I find this function?

> SomeGenes <- gxs[ c("HRAS", "WT1", "IGF2") ]
Error: object 'gxs' not found

Does this have to do with the fact that IGF2 is not included in my panel?

> sbparam <- ScanBamParam(which=SomeGenes)
Error in ScanBamParam(which = SomeGenes) : object 'SomeGenes' not found

As a result of the previous error, right?

Interestingly enough, I did get results. Why?



________________________________
Van: Tim Triche, Jr. <tim.tri...@gmail.com<mailto:tim.tri...@gmail.com>>
Verzonden: zaterdag 7 maart 2020 22:28
Aan: Mulder, R
CC: bioc-devel@r-project.org<mailto:bioc-devel@r-project.org>
Onderwerp: Re: [Bioc-devel] MRD measurements in Leukemic patients using NGS 
data in r

something like this perhaps?

library(Rsamtools)
BamFiles <- BamFileList(lapply(list.files(pattern=".bam$"), BamFile))
names(BamFiles) <- sapply(strsplit(list.files(pattern=".bam$"), "\\."), `[`, 1)
show(BamFiles)
#BamFileList of length 14
#names(14): Normal_0813_S19_R1_001 Normal_2013_S18_R1_001 ... REMC_CD19 REMC_CD3

library(Homo.sapiens)
gxs <- genes(Homo.sapiens)
names(gxs)  <- mapIds(Homo.sapiens, names(gxs), "SYMBOL", "ENTREZID")
SomeGenes <- gxs[ c("HRAS", "WT1", "IGF2") ]

sbparam <- ScanBamParam(which=SomeGenes)
puparam <- PileupParam(max_depth=1e3, min_nucleotide_depth=5,
                       include_insertions=TRUE, min_minor_allele_depth=1)
piles <- lapply(BamFiles, pileup, ScanBamParam=sbparam, PileupParam=puparam)

filterInvariant <- function(x) {
  positions <- subset(x, duplicated(pos))$pos
  subset(x, pos %in% positions)
}
show(do.call(rbind, lapply(lapply(piles, filterInvariant), head, 2)))
#                           seqnames     pos strand nucleotide count
# Normal_0813_S19_R1_001.43    chr11 1979973      -          C     1
# Normal_0813_S19_R1_001.44    chr11 1979973      +          T     1
# Normal_2013_S18_R1_001.16    chr11 1979889      +          T     3
# Normal_2013_S18_R1_001.17    chr11 1979889      -          T     1
# Normal_2714_S20_R1_001.4     chr11 1979933      +          A     1
# Normal_2714_S20_R1_001.5     chr11 1979933      -          A     1
# P01-00020-T06-P-cfDNA.21     chr11 1980045      +          G     1
# P01-00020-T06-P-cfDNA.22     chr11 1980045      -          G     1
# P01-00020-T06-P-cfDNA2.11    chr11 1979884      +          T     1
# P01-00020-T06-P-cfDNA2.12    chr11 1979884      -          T     1
# P01-00021-T06-P-cfDNA.5      chr11 1979879      +          C     1
# P01-00021-T06-P-cfDNA.6      chr11 1979879      -          C     1
# P01-00024-T06-P-cfDNA.9      chr11 1979990      +          C     1
# P01-00024-T06-P-cfDNA.10     chr11 1979990      +          T     2
# P01-00028-T06-N-P01.3        chr11 1979851      +          A     1
# P01-00028-T06-N-P01.4        chr11 1979851      +          G     1
# P01-00028-T06-P-cfDNA.10     chr11 1979948      +          A     1
# P01-00028-T06-P-cfDNA.11     chr11 1979948      +          G     1
# P01-00028-T06-T-P01.2        chr11 1979850      +          C     3
# P01-00028-T06-T-P01.3        chr11 1979850      -          C     2
# P01-00028-T06-T-P02.3        chr11 1979851      +          A     1
# P01-00028-T06-T-P02.4        chr11 1979851      +          C     1


Or whatever you like (GAlignments would get you the reads, GAlignmentPairs the 
read pairs, and so on)



--t


On Sat, Mar 7, 2020 at 3:51 PM Mulder, R 
<r.mulde...@umcg.nl<mailto:r.mulde...@umcg.nl><mailto:r.mulde...@umcg.nl<mailto:r.mulde...@umcg.nl>>>
 wrote:

Dear Tim,


I installed Rsamtools and ran it on a bamfile using the following command to 
get nucleotide count for 2 hotspot regions.


library(Rsamtools)
bamfile <- "test.bam"
bf <- BamFile(bamfile)
param <- ScanBamParam(which=GRanges(c("4", "9"), IRanges(start=c(55599321, 
5073770), end=c(55599321, 5073770))))

Now, I want to perform this on more than 1 bam file at once and on more region.

Do you perhaps have ideas on how I could do this?

Best,

Rene

________________________________
Van: Tim Triche, Jr. 
<tim.tri...@gmail.com<mailto:tim.tri...@gmail.com><mailto:tim.tri...@gmail.com<mailto:tim.tri...@gmail.com>>>
Verzonden: vrijdag 6 maart 2020 13:57:10
Aan: Mulder, R
CC: 
bioc-devel@r-project.org<mailto:bioc-devel@r-project.org><mailto:bioc-devel@r-project.org<mailto:bioc-devel@r-project.org>>
Onderwerp: Re: [Bioc-devel] MRD measurements in Leukemic patients using NGS 
data in r

Oh hey, one last thing — if all you want is to get nucleotide counts per region 
of interest, just use pileup() in Rsamtools, with bamWhich(GRanges) holding a 
GRanges (Genomic Ranges) of your regions added to scanBamParams for each BAM. 
It sounds awkward but in practice it is super fast and will give you all the 
nucleotide and read level information you could want. One of my interns 
implemented this for mitochondrial variant calling in MTseeker when we got sick 
of using gmapR and being flagged for errors on not-Linux. (We gutted the entire 
package recently and have new, insanely deep examples from Oxford Nanopore 
direct RNA sequencing and from large single cell datasets; I need to add those 
and get the package back out of purgatory).

That said, in the end you will want a LOT of validation material so this is 
very much just a starting point. But still, it’s your starting point, in R at 
least. And truthfully I much prefer R/Bioconductor idioms to (say) pysam or the 
like. htsnim is nice but then you’ll be implementing the ML bits from scratch, 
so I think your instincts to try R first are sensible.

Good luck! Even if you use this for something else besides MRD, I think it will 
become a useful exercise.

--t

On Mar 5, 2020, at 4:36 PM, Tim Triche, Jr. 
<tim.tri...@gmail.com<mailto:tim.tri...@gmail.com><mailto:tim.tri...@gmail.com<mailto:tim.tri...@gmail.com>>>
 wrote:


a few thoughts:

1) look into Shearwater 
(https://bioconductor.org/packages/release/bioc/html/deepSNV.html<https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbioconductor.org%2Fpackages%2Frelease%2Fbioc%2Fhtml%2FdeepSNV.html&data=02%7C01%7Cr.mulder01%40umcg.nl%7Ca31511f1d00b42bc40bd08d7c34ff8a3%7C335122f9d4f44d67a2fccd6dc20dde70%7C0%7C0%7C637192620564238716&sdata=c8b%2FREMotc72%2BZt9XENI7nxiP1Ww0xQymAqX524XJoY%3D&reserved=0><https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbioconductor.org%2Fpackages%2Frelease%2Fbioc%2Fhtml%2FdeepSNV.html&data=02%7C01%7Cr.mulder01%40umcg.nl%7C5dfaa267d461487c892408d7c2de972a%7C335122f9d4f44d67a2fccd6dc20dde70%7C0%7C0%7C637192133587503301&sdata=3yQeLWUNk%2FLjDAOquRQf6wgbGvn06KZGUUzhIw%2BBUMk%3D&reserved=0<https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbioconductor.org%2Fpackages%2Frelease%2Fbioc%2Fhtml%2FdeepSNV.html&data=02%7C01%7Cr.mulder01%40umcg.nl%7Ca31511f1d00b42bc40bd08d7c34ff8a3%7C335122f9d4f44d67a2fccd6dc20dde70%7C0%7C0%7C637192620564248707&sdata=y%2BxXbPrxep4RNyrHK9IJ6bnxMNKS9HqPufIAu3bkl7I%3D&reserved=0>>),
 then

2) talk to Todd Druley @ WashU, Elli Pappaemanuil @ MSKCC, Ruud & Bob @ 
Erasmus, the usual suspects

3) plan to validate w/ddPCR (at the absolute very least) and be aware that most 
MRD in leukemia is done by a combination of BCR/TCR + breakpoint PCR 
(lymphoid/fusion-driven) or DFN flow (myeloid + normal cyto)

not saying that ML-based methods might not help, but if you've got a 30x-100x 
genome (or even 1000x FM1) and are trying to compete with existing standard 
approaches that can detect molecules at 1e-6, it'll be rough.  An alternative 
approach (that has been used repeatedly) is to throw caution to the wind, 
generate primers for numerous subject-specific somatic variants, and use the 
ensemble to try and model MRD (speaking of ML). On the one hand, that could 
give the clinic a "customer for life"; on the other hand, it's not conducive to 
large-scale automation & deployment. As far as I know, it never got much 
traction, in leukemia or anywhere else.  (Consider that flow cytometry is 
capable of detecting 1-in-10K to 1-in-a-million cells in most clinical flow 
labs.)

Best of luck! (and if you're not already working with UMI-tagged reads, please 
talk to the people in #2 above; the reason most people won't go below 5% VAF is 
that you get thwacked by error rates at that level, and the reason most 
NGS-based MRD is based on UMIs is that existing PCR-based methods have 6 logs 
sensitivity.)

--t


On Thu, Mar 5, 2020 at 4:08 PM Mulder, R 
<r.mulde...@umcg.nl<mailto:r.mulde...@umcg.nl><mailto:r.mulde...@umcg.nl<mailto:r.mulde...@umcg.nl>>>
 wrote:
Hi,


I was wondering if anyone could help me with a script and support for the above 
mentioned goal.

For this I have several BAM files for which I want to determine de nucleotide 
count per region of interest. The latter could be several hotspot mutation 
sites. I would like to get an overall overview of all the BAM files. Next I 
want to use these counts to determine for any new BAM file if the count for a 
particular genomic position is higher than the allowable range, hence could 
indicate if a mutation is present. For this I would like to use the modified 
Thompson Tau test. I think machine learning could be used for this. So, why do 
I want to do all this? Well, normal NGS pipelines only deal with variants at a 
frequency of 5%. Mutatios below this frequency are often missed. To know if a 
mutation is present below this level, you showed dive into the alignment and 
most often manually investigate the base calls. I know that this races some 
questions regarding call qualities, but then again our conventional assays have 
actually confirmed some of these low mutations. In addition, NGS can
 be used to determine the presence of low frequent mutation which is of great 
importance for determining the measurable residual disease after treatment.


I am new to r and bioconductor so I would be very thankful if someone could 
help me in my mission to setting up a script for this purpose.


Thanks,


Rene Mulder

Laboratory Medicine

University Medical Center Groningen

The Netherlands

________________________________
De inhoud van dit bericht is vertrouwelijk en alleen bes...{{dropped:15}}

_______________________________________________
Bioc-devel@r-project.org<mailto:Bioc-devel@r-project.org><mailto:Bioc-devel@r-project.org<mailto:Bioc-devel@r-project.org>>
 mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel<https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fbioc-devel&data=02%7C01%7Cr.mulder01%40umcg.nl%7Ca31511f1d00b42bc40bd08d7c34ff8a3%7C335122f9d4f44d67a2fccd6dc20dde70%7C0%7C0%7C637192620564248707&sdata=QdAVedMFqBqJP%2FZPcDR6Vuicw%2BDvqHC87BKsswUeERA%3D&reserved=0><https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fbioc-devel&data=02%7C01%7Cr.mulder01%40umcg.nl%7C5dfaa267d461487c892408d7c2de972a%7C335122f9d4f44d67a2fccd6dc20dde70%7C0%7C0%7C637192133587503301&sdata=jDiihphF1FySPCdvLtXHMsmlkQ7ta6Fo0AjBvMa5VIA%3D&reserved=0<https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fbioc-devel&data=02%7C01%7Cr.mulder01%40umcg.nl%7Ca31511f1d00b42bc40bd08d7c34ff8a3%7C335122f9d4f44d67a2fccd6dc20dde70%7C0%7C0%7C637192620564258701&sdata=hHNQn2AMqEkr2LtrD2G3lEmEQKc%2BfHSlb5ydAa%2FdWuo%3D&reserved=0>>
________________________________
De inhoud van dit bericht is vertrouwelijk en alleen bestemd voor de 
geadresseerde(n). Anderen dan de geadresseerde(n) mogen geen gebruik maken van 
dit bericht, het niet openbaar maken of op enige wijze verspreiden of 
vermenigvuldigen. Het UMCG kan niet aansprakelijk gesteld worden voor een 
incomplete aankomst of vertraging van dit verzonden bericht.

The contents of this message are confidential and only intended for the eyes of 
the addressee(s). Others than the addressee(s) are not allowed to use this 
message, to make it public or to distribute or multiply this message in any 
way. The UMCG cannot be held responsible for incomplete reception or delay of 
this transferred message.
________________________________
De inhoud van dit bericht is vertrouwelijk en alleen bestemd voor de 
geadresseerde(n). Anderen dan de geadresseerde(n) mogen geen gebruik maken van 
dit bericht, het niet openbaar maken of op enige wijze verspreiden of 
vermenigvuldigen. Het UMCG kan niet aansprakelijk gesteld worden voor een 
incomplete aankomst of vertraging van dit verzonden bericht.

The contents of this message are confidential and only intended for the eyes of 
the addressee(s). Others than the addressee(s) are not allowed to use this 
message, to make it public or to distribute or multiply this message in any 
way. The UMCG cannot be held responsible for incomplete reception or delay of 
this transferred message.

        [[alternative HTML version deleted]]

_______________________________________________
Bioc-devel@r-project.org<mailto:Bioc-devel@r-project.org> mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel<https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fbioc-devel&data=02%7C01%7Cr.mulder01%40umcg.nl%7Ca31511f1d00b42bc40bd08d7c34ff8a3%7C335122f9d4f44d67a2fccd6dc20dde70%7C0%7C0%7C637192620564258701&sdata=hHNQn2AMqEkr2LtrD2G3lEmEQKc%2BfHSlb5ydAa%2FdWuo%3D&reserved=0>

The information in this e-mail is intended only for the person to whom it is
addressed. If you believe this e-mail was sent to you in error and the e-mail
contains patient information, please contact the Partners Compliance HelpLine at
http://www.partners.org/complianceline<https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.partners.org%2Fcomplianceline&data=02%7C01%7Cr.mulder01%40umcg.nl%7Ca31511f1d00b42bc40bd08d7c34ff8a3%7C335122f9d4f44d67a2fccd6dc20dde70%7C0%7C0%7C637192620564268692&sdata=IBbiS%2Bc2PiRWUHVRCbFgGgC41T729Pi2HOw5Sn3guPQ%3D&reserved=0>
 . If the e-mail was sent to you in error
but does not contain patient information, please contact the sender and properly
dispose of the e-mail.
________________________________
De inhoud van dit bericht is vertrouwelijk en alleen bestemd voor de 
geadresseerde(n). Anderen dan de geadresseerde(n) mogen geen gebruik maken van 
dit bericht, het niet openbaar maken of op enige wijze verspreiden of 
vermenigvuldigen. Het UMCG kan niet aansprakelijk gesteld worden voor een 
incomplete aankomst of vertraging van dit verzonden bericht.

The contents of this message are confidential and only intended for the eyes of 
the addressee(s). Others than the addressee(s) are not allowed to use this 
message, to make it public or to distribute or multiply this message in any 
way. The UMCG cannot be held responsible for incomplete reception or delay of 
this transferred message.

        [[alternative HTML version deleted]]

_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to