Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Type: Package
Title: Annotation of Genetic Variants
Description: Annotate variants, compute amino acid coding changes,
predict coding outcomes.
Version: 1.59.0
Version: 1.59.1
Authors@R: c(
person("Valerie", "Oberchain", role="aut"),
person("Martin", "Morgan", role="aut"),
Expand Down
15 changes: 15 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
CHANGES IN VERSION 1.59.1
-------------------------

BUG FIXES

o readVcf() now preserves '*' (spanning deletion) alleles instead of
converting them to empty strings. VCFs containing '*' alleles are
returned with a CharacterList ALT column (same as structural variant
VCFs), allowing faithful round-trip through writeVcf(). Previously,
'*' was erased at read time making it impossible to write valid VCF
output for files containing spanning deletions — IGV/htsjdk would
reject the output with "empty alleles are not permitted". VCFs
without '*' alleles continue to use DNAStringSetList as before.
(GitHub issue #65)

CHANGES IN VERSION 1.36.0
-------------------------

Expand Down
6 changes: 4 additions & 2 deletions R/AllUtilities.R
Original file line number Diff line number Diff line change
Expand Up @@ -110,20 +110,22 @@
CharacterList(x)
} else {
flat[grepl("I", flat, fixed=TRUE)] <- "."
flat[grepl("*", flat, fixed=TRUE)] <- ""
relist(DNAStringSet(flat), x)
}
}

## The grep for '.' here is looking for '.' as *part* of the ALT field.
## If the ALT were '.' only, with no other characters, it would have been
## converted to an empty string in the C code before it reached this point.
## '*' is the VCF spanning deletion allele — not valid DNA, treated as
## structural so it's preserved in a CharacterList (GitHub issue #65).
.isStructural <- function(x)
{
grepl("<", x, fixed=TRUE) |
grepl("[", x, fixed=TRUE) |
grepl("]", x, fixed=TRUE) |
grepl(".", x, fixed=TRUE)
grepl(".", x, fixed=TRUE) |
grepl("*", x, fixed=TRUE)
}

.formatInfo <- function(x, hdr, nrecords)
Expand Down