Hi Thomas, Michael,
makeVRangesFromGRanges has been added to 1.13.34. The
methods-VRanges-class.R file was already large so I added
makeVRangesFromGRanges.R.
A few notes:
- '...' was replaced with 'keep.extra.columns'
- row names are propagated automatically so I removed the explicit
row.names(vr)
- Errors are thrown in 2 cases: when arguments are not a single string
and if 'ref' can't be found. You may want to consider a warning if one
of the 'field' args can't be found in the GRanges metadata.
- I have not added unit tests. If you have some I'll put them in.
- The function is documented in VRanges-class.Rd. If you want to make a
stand alone man page similar to makeGRangesFromDataFrame I'll add that too.
Thanks for the contribution Thomas. Nice addition.
Valerie
On 02/20/2015 04:17 PM, Michael Lawrence wrote:
On Thu, Feb 19, 2015 at 12:46 PM, Thomas Sandmann
<sandmann.tho...@gene.com <mailto:sandmann.tho...@gene.com>> wrote:
Hi Valerie, hi Michael,
I find myself frequently moving back and forth between data.frames,
GRanges and VRanges objects.
The makeGRangesFromDataFrame function from the GenomicRanges makes
the coercion between the former straightforward, but I couldn't find
anything similar for the second step, coercsion from GRanges to VRanges.
There is a coercion method defined in the GenomicRanges package:
getMethod(coerce, c("GRanges", "VRanges"))
Method Definition:
function (from, to = "VRanges", strict = TRUE)
{
obj <- new("VRanges")
as(obj, "GRanges") <- from
obj
}
<environment: namespace:GenomicRanges>
Signatures:
from to
target "GRanges" "VRanges"
defined "GRanges" "VRanges"
but I haven't been able to get it to work (or find where it is
documented). The source code shown above doesn't indicate how the
coercion method would check for the presence of required / optional
VRanges columns, e.g. 'ref', 'alt', 'altDepth', etc.
This is just the default coercion method added by the methods package
for a conversion of a class to its parent class. It obviously will not
do the right thing, in general.
Would it be useful to add an explicit makeVRangesFromGRanges
function to the VariantAnnotation package ( and / or the
corresponding coercion method) ?
Then it would be easy to go from a data.frame to a VRanges object,
e.g. as in this pseudocode:
makeVRangesFromGRanges(
makeGRangesFromDataFrame( data.frame )
)
You can find a first attempt at implementing the
makeVRangesFromGRanges function here
<https://gist.github.com/tomsing1/bf917b1b48afb952e1c5>, which you
are welcome to use / modify if you find it useful.
If this functionality should already be available, I'd be happy to
learn about that, too !
Val, do you think you could review and incorporate Thomas's code? It
seems like a good addition to me.
Thanks,
Michael
Thank you,
Thomas
SessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats4 parallel stats graphics grDevices utils
datasets methods base
other attached packages:
[1] VariantAnnotation_1.12.9 Rsamtools_1.18.2
Biostrings_2.34.1 XVector_0.6.0 GenomicRanges_1.18.4
[6] GenomeInfoDb_1.2.4 IRanges_2.0.1
S4Vectors_0.4.0 BiocGenerics_0.12.1
BiocInstaller_1.16.1
[11] roxygen2_4.1.0 devtools_1.7.0
loaded via a namespace (and not attached):
[1] AnnotationDbi_1.28.1 base64enc_0.1-2 BatchJobs_1.5
BBmisc_1.9 Biobase_2.26.0
[6] BiocParallel_1.0.3 biomaRt_2.22.0 bitops_1.0-6
brew_1.0-6 BSgenome_1.34.1
[11] checkmate_1.5.1 codetools_0.2-10 DBI_0.3.1
digest_0.6.8 fail_1.2
[16] foreach_1.4.2 GenomicAlignments_1.2.1
GenomicFeatures_1.18.3 iterators_1.0.7 Rcpp_0.11.4
[21] RCurl_1.95-4.5 RSQLite_1.0.0
rtracklayer_1.26.2 sendmailR_1.2-1 stringr_0.6.2
[26] tools_3.1.2 XML_3.98-1.1 zlibbioc_1.12.0
_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel