Entering edit mode
tmolosh
•
0
@tmolosh-14015
Last seen 6.9 years ago
Hi,
I am playing around with manipulation of ab1 file data imported into R with sangerseqR.
sangerseqR can read.abif() and do nice things with the data within R, but i cannot figure out any way to export the modified data into a new ab1 file for other tools to use.
Has anyone else figured this out, or can anyone make suggestions?
Thanks,
Tom
Fragman and seqinr have their own (identical?, different from sangerseqR) read.abif fxns. Trying to use this as a model for the reverse process I don't get anywhere ... any suggestions? Here is some of what i have done:
##### read binary as in Fragman's read.abif function #####
fh <- file("input.ab1", open="rb")
fh
description class
"input.ab1" "file"
mode text
"rb" "binary"
opened can read
"opened" "yes"
can write
"no"
rd <- readBin(fh, what="raw", n=1.2 *file.info("pGem-CP1-1768794_H12.ab1")$size), endian="little")
# rd is hexadecimal
##### check what was imported #####
summary(rd)
Length Class Mode
291025 raw raw
##### import the data as it would be worked on #####
library(Fragman)
abif <- read.abif("input.ab1")
summary(abif)
Length Class Mode
Header 10 -none- list
Directory 7 data.frame list
Data 130 -none- list
##### try to write binary with the imported data #####
newfh <- file("new.ab1", "wb")
newfh
description class mode text opened can read
"new.ab1" "file" "wb" "binary" "opened" "no"
can write
"yes"
writeBin(abif, newfh, endian="little")
Error in writeBin(abif, newfh, endian = "little") :
can only write vector objects
writeBin(as.vector(abif), newfh, endian="little")
Error in writeBin(as.vector(abif), newfh, endian = "little") :
can only write vector objects
writeBin(as.vector(unlist(abif)), newfh, endian="little")
close(newfh)
# ab1 file is written but cannot be read as ab1
input.ab1 ~ 291kb newer.ab1 ~ 503kb