Question: write ab1 files
0
gravatar for tmolosh
19 months ago by
tmolosh0
tmolosh0 wrote:

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

sequencing sangerseqr abi • 336 views
ADD COMMENTlink written 19 months ago by tmolosh0

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

ADD REPLYlink written 19 months ago by tmolosh0
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 112 users visited in the last hour