If A is already a GRanges object, it will be returned untouched.
If A is a file name or connection to a file in any of the formats supported by rtracklayer's import function (BED, GFF...)
it will be imported using rtracklayer.
If A is a data frame, the function will assume the first three columns are chromosome, start and end and create a GRanges object. Any additional
column will be considered metadata and stored as such in the GRanges object.