Hi Vince, Robert, Kasper,
I've done some work on this. Starting with GenomeInfoDb_1.25.7 the
seqlevelsStyle() setter has 2 major improvements:
1. It knows how to rename contigs and scaffolds, not just the chromosomes:
library(TxDb.Mmusculus.UCSC.mm10.knownGene)
seqinfo(txdb)
# Seqinfo object with 66 sequences (1 circular) from mm10 genome:
# seqnames seqlengths isCircular genome
# chr1 195471971 <NA> mm10
# chr2 182113224 <NA> mm10
# chr3 160039680 <NA> mm10
# chr4 156508116 <NA> mm10
# chr5 151834684 <NA> mm10
# ... ... ... ...
# chrUn_GL456392 23629 <NA> mm10
# chrUn_GL456393 55711 <NA> mm10
# chrUn_GL456394 24323 <NA> mm10
# chrUn_GL456396 21240 <NA> mm10
# chrUn_JH584304 114452 <NA> mm10
seqlevelsStyle(txdb) <- "NCBI"
seqinfo(txdb)
# Seqinfo object with 66 sequences (1 circular) from GRCm38 genome:
# seqnames seqlengths isCircular genome
# 1 195471971 <NA> GRCm38
# 2 182113224 <NA> GRCm38
# 3 160039680 <NA> GRCm38
# 4 156508116 <NA> GRCm38
# 5 151834684 <NA> GRCm38
# ... ... ... ...
# MSCHRUN_CTG10 23629 <NA> GRCm38
# MSCHRUN_CTG11 55711 <NA> GRCm38
# MSCHRUN_CTG12 24323 <NA> GRCm38
# MSCHRUN_CTG15 21240 <NA> GRCm38
# MSCHRUN_CTG23 114452 <NA> GRCm38
2. It supports new style RefSeq for renaming to/from RefSeq accessions:
seqlevelsStyle(txdb) <- "RefSeq"
seqinfo(txdb)
# Seqinfo object with 66 sequences (1 circular) from GRCm38 genome:
# seqnames seqlengths isCircular genome
# NC_000067.6 195471971 <NA> GRCm38
# NC_000068.7 182113224 <NA> GRCm38
# NC_000069.6 160039680 <NA> GRCm38
# NC_000070.6 156508116 <NA> GRCm38
# NC_000071.6 151834684 <NA> GRCm38
# ... ... ... ...
# NT_166476.1 23629 <NA> GRCm38
# NT_166477.1 55711 <NA> GRCm38
# NT_166478.1 24323 <NA> GRCm38
# NT_166480.1 21240 <NA> GRCm38
# NT_187064.1 114452 <NA> GRCm38
These new features only work on objects for which the genome is set to
an NCBI assembly (e.g. WBcel235) or UCSC genome (e.g. ce11). This is the
case with TxDb, BSgenome, and SNPlocs objects.
The workhorses behind them are new low-level utilities
getChromInfoFromNCBI() and getChromInfoFromUCSC(). These support 141
NCBI assemblies and 74 UCSC genomes at the moment, respectively. It's
easy to add new organisms. The gotcha is that they require internet
access and so does the seqlevelsStyle() setter. This could be mitigated
by caching the data via BiocFileCache.
Next thing on the list is to support the GenBank style (Vince's original
request) to rename to/from GenBank accessions.
Cheers,
H.
On 12/13/19 10:51, Kasper Daniel Hansen wrote:
If the chromosome name depends on the assembly, that makes GenomeInfoDb
even more useful and necessary. Provided it is supported of course.
On Fri, Dec 13, 2019 at 11:45 AM Vincent Carey <st...@channing.harvard.edu>
wrote:
I tried an inline png but I think it was rejected by bioc-devel. Here's
another try.
On Fri, Dec 13, 2019 at 11:40 AM Vincent Carey <st...@channing.harvard.edu
wrote:
Thanks -- It is good to know more about the complications of adding
seqlevelsStyle elements.
I am not sure how pervasive this will be in SNP annotation in the future.
The "new API" for dbSNP
references SPDI annotation conventions.
https://urldefense.proofpoint.com/v2/url?u=https-3A__api.ncbi.nlm.nih.gov_variation_v0_&d=DwIFaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=q-r9L4kC5cjCxRXc33m9n1hKs7WLWiYhNB2t6B_b7nU&s=1jolcMxvVlDvdU0u8LZeWnWHJFt-R6ZweevICNvw2oo&e=
at least one dbsnp build 152 resource uses this nomenclature. The one
referenced below is the "go-to" resource for current rsid-coordinate
correspondence, as far as I know.
library(VariantAnnotation)
*0/0 packages newly attached/loaded, see sessionInfo() for details.*
mypar = GRanges("NC_000001.11", IRanges(100000,120000)) # note seqnames
nn = readVcf("
https://urldefense.proofpoint.com/v2/url?u=ftp-3A__ftp.ncbi.nih.gov_snp_redesign_latest-5Frelease_VCF_GCF-5F000001405.38.gz&d=DwIFaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=q-r9L4kC5cjCxRXc33m9n1hKs7WLWiYhNB2t6B_b7nU&s=SXqRWrv1IK1WpNOf3cjMC82-fvChoJ6za48WzlRGeAU&e=
",
+ genome="GRCh38", param=mypar)
head(rowRanges(nn), 3)
GRanges object with 3 ranges and 5 metadata columns:
seqnames ranges strand | paramRangeID
REF
<Rle> <IRanges> <Rle> | <factor>
<DNAStringSet>
rs1331956057 NC_000001.11 100000 * | <NA>
C
rs1252351580 NC_000001.11 100036 * | <NA>
T
rs1238523913 NC_000001.11 100051 * | <NA>
T
ALT QUAL FILTER
<DNAStringSetList> <numeric> <character>
rs1331956057 T <NA> .
rs1252351580 G <NA> .
rs1238523913 C <NA> .
-------
seqinfo: 1 sequence from GRCh38 genome; no seqlengths
On Fri, Dec 13, 2019 at 11:01 AM Robert Castelo <robert.cast...@upf.edu>
wrote:
hi Hervé,
i didn't know about this new sequence style until Vince posted his
message and we briefly talked about it at the European BioC meeting this
week in Brussels. however, i didn't know that the style was specific to
a particular assembly. i have no use case of this at the mome moment,
i.e., i have not encountered myself any annotation or BAM file with
chromosome names written that way, so i don't know how pressing this
issue is, maybe Vince can tell us how spread such chromosome naming
style may become in the near future.
naively, i'd think that it would be matter of adding a
reference-specific column, i.e., 'GRCh38.p13', 'GRCh37.p13', etc., but i
can imagine that maybe the "reference style" concept might not be the
appropriate placeholder to map all different chromosome names of all
different individual human genomes uploaded to NCBI. maybe we should
wait until we have a specific use case .. Vince?
robert.
On 12/11/19 10:06 PM, Pages, Herve wrote:
Hi Vince, Robert,
Looks like Vince wants the RefSeq accession e.g. NC_000017.11 for
chrom
17 in the GRCh38.
@Robert: Is this what you're also interested in?
The problem is that the RefSeq accessions are specific to a particular
assembly (e.g. NC_000017.11 for chrom 17 in GRCh38 but NC_000017.10
for
the same chrom in GRCh37).
Currently seqlevelsStyle() doesn't know how to distinguish between
different assemblies of the same organism. Not saying it couldn't but
it
would require some thinking and some significant refactoring. It
wouldn't be just a matter of adding a column to
genomeStyles()$Homo_sapiens.
H.
On 12/10/19 14:19, Robert Castelo wrote:
I second this, and would suggest to name the style as 'GRC' for
"Genome
Reference Consortium".
thanks Vince for bringing this up, being able to easily switch
between
genome styles is great.
if 'paste0()' in R is one of the most influential contributions to
statistical computing
https://urldefense.proofpoint.com/v2/url?u=https-3A__simplystatistics.org_2013_01_31_paste0-2Dis-2Dstatistical-2Dcomputings-2Dmost-2Dinfluential-2Dcontribution-2Dof-2Dthe-2D21st-2Dcentury&d=DwICAg&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=LCcYSINIz3XXhf8i-26IegXRLkTO1NgVbvzgvnPA3dc&s=b0_SIu8orJ7ZcCS3TIodFvGTPibt9R8vFL5Y40YSx3Q&e=
i think that 'seqlevelsStyle()' from the GenomeInfoDb package is one
of
the most influential contributions to human genetics, if you think
about
the time invested by researchers in parsing and changing between
different styles of chromosome names :)
robert.
On 06/12/2019 15:03, Vincent Carey wrote:
I raised this issue previously with little response.
I'd propose that we add a column or two to
genomeStyles()$Homo_sapiens
head(genomeStyles()$Homo_sapiens, 2)
circular auto sex NCBI UCSC dbSNP Ensembl
1 FALSE TRUE FALSE 1 chr1 ch1 1
2 FALSE TRUE FALSE 2 chr2 ch2 2
that includes the values for "NCBI reference sequence names"
See
https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ncbi.nlm.nih.gov_nuccore_568815581&d=DwICAg&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=LCcYSINIz3XXhf8i-26IegXRLkTO1NgVbvzgvnPA3dc&s=3Jy-MH7heIcrc_A4qm_izduLvBoPWHSeq4gdxf5nv24&e=
for one report on chr17,
and
https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ncbi.nlm.nih.gov_assembly_GCF-5F000001405.39&d=DwICAg&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=LCcYSINIz3XXhf8i-26IegXRLkTO1NgVbvzgvnPA3dc&s=y6ut_Xcc4rSbXanckiJhiwLsL0W8neJfKWQa6wnG3aM&e=
for a table that includes the Genbank labels.
Should I just file a PR at
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Bioconductor_GenomeInfoDb_&d=DwICAg&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=LCcYSINIz3XXhf8i-26IegXRLkTO1NgVbvzgvnPA3dc&s=KMzfo3_8kkJ-wdvRCNP5rUjTVMW87brj07yHaKL5Qb0&e=
after
testing?
_______________________________________________
Bioc-devel@r-project.org mailing list
https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mailman_listinfo_bioc-2Ddevel&d=DwICAg&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=LCcYSINIz3XXhf8i-26IegXRLkTO1NgVbvzgvnPA3dc&s=SvtNreKVOHnSGjsRwzWWpttpEF7wBXI5utI37-qgX1A&e=
--
Robert Castelo, PhD
Associate Professor
Dept. of Experimental and Health Sciences
Universitat Pompeu Fabra (UPF)
Barcelona Biomedical Research Park (PRBB)
Dr Aiguader 88
E-08003 Barcelona, Spain
telf: +34.933.160.514
fax: +34.933.160.550
--
The information in this e-mail is intended only for t...{{dropped:21}}
_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel