Question: Is there a way to access the data stored in a .ab1 file ?
0
gravatar for anuragm
6.2 years ago by
anuragm130
India
anuragm130 wrote:

I wish to use information in a .ab1 file and find the ratio of the peak value of nucleotide with the strongest signal at one position to the peak value of the nucleotide with the second strongest signal, so as to identify the good sites that I can use for analysis. Is there a way to do this ?

 

sequence • 4.9k views
ADD COMMENTlink modified 6.2 years ago by m.koohi.m120 • written 6.2 years ago by anuragm130
7
gravatar for Malcolm.Cook
6.2 years ago by
Malcolm.Cook1.2k
kansas, usa
Malcolm.Cook1.2k wrote:

To understand what the data looks like in AB1 file, you will want to refer to http://www6.appliedbiosystems.com/support/software_community/ABIF_File_Format.pdf

If you are comfortable in R, you might reach for http://bioconductor.org/packages/release/bioc/html/sangerseqR.html and work with data from calling peakAmpMatrix (or traceMatrix)

Or, in perl, then, http://search.cpan.org/~vita/Bio-Trace-ABIF-1.05/lib/Bio/Trace/ABIF.pm

However, the specifics of what you want to compute are not entirely clear to me.  

Making reference to the vignette http://bioconductor.org/packages/release/bioc/vignettes/sangerseqR/inst/doc/sangerseq_walkthrough.pdf, given these definitions

P1AM.1 Amplitude of primary basecall peaks.
P2AM.1 (optional) Amplitude of the secondary basecall peaks.

Then "the ratio of the peak value of nucleotide with the strongest signal at one position to the peak value of the nucleotide with the second strongest signal" is simply P1AM.1 / P2AM.1, which can be computed for demo AB1 file as follows:

> x <- read.abif(system.file("extdata", "heterozygous.ab1", package = "sangerseqR"))
> x@data$P1AM.1 / x@data$P2AM.1

Note however that this is the value is ratio of peaks.  Not area under the peak.  It is usually greater than one but not always.  You may want to reconsider exactly what you are trying to determine.  Good luck.

 

ADD COMMENTlink modified 6.2 years ago • written 6.2 years ago by Malcolm.Cook1.2k

Could I get the values for the 4 different bases in form of some parameter at each position ?

ADD REPLYlink written 6.2 years ago by anuragm130

I modified my answer to more fully answer your original question.  This comment poses a new related but different question.  If you get to the point where you think my answer addresses your original question, you will probably have learned enough to answer this new one.  Give it a go!

ADD REPLYlink modified 6.2 years ago • written 6.2 years ago by Malcolm.Cook1.2k

x <- read.abif(system.file("extdata", "heterozygous.ab1", package = "sangerseqR"))

I need to import files from an external drive for which I modified it to

x <- read.abif(system.file("extdata", file.choose() , package = "sangerseqR"))

But I am getting an error message.

Error in readBin(fc, what = "raw", n = 1.2 * file.info(filename)$size) :
  can only read from a binary connection
In addition: Warning message:
In file(filename, open = "rb") :
  file("") only supports open = "w+" and open = "w+b": using the former

Any idea how to correct this ? What else do I need to modify in the code ?

 

 

 

ADD REPLYlink written 6.2 years ago by anuragm130

you are getting quite far afield from you original question now...... try:

> x <- read.abif(file.choose())

 

 

ADD REPLYlink modified 6.2 years ago • written 6.2 years ago by Malcolm.Cook1.2k

I managed to import the file using the command you suggested, but I am unable to access its contents (=different parameters of the ab1 file such as P1AM and P2AM like the ones given here www6.appliedbiosystems.com/support/software_community/… using the $ operator. I guess it doesnt work for this class.

ADD REPLYlink written 6.2 years ago by anuragm130

I managed importing different parameters using x@data$ but when I use x@data$P1AM.1 it gives output 'NULL'. Any reason behind this ? I am using the wrong code ?

x <- read.abif(file.choose())
x@data$P1AM.1
NULL

ADD REPLYlink written 6.2 years ago by anuragm130

I'm guessing: perhaps the basecaller was not run?  Where did you get the file?  Have you looked at it in a chromatgram viewer?  If not, you should, perhaps with the free FinchTV (http://www.geospiza.com/Products/finchtv.shtml).

ADD REPLYlink written 6.2 years ago by Malcolm.Cook1.2k

I am using the files that I got from 1stBase sequencing. I have looked at the chromatograms in Geneious and I see signals for nucleotides.

ADD REPLYlink written 6.2 years ago by anuragm130

I know this is a fairly old post, but I will try and ask it here anyways

I am looking to do some fairly specific QC by looking into the signal information of an abi file. I have the data read into R using sangerseqR and can access the S4 data just fine. My question is: What does it mean? Specifically, the traceMatrix and DATA.9-DATA.12. The trace matrix is much larger than my sequence, but is the same length as the DATA fields. Is there a standard window for interpreting these values?

ADD REPLYlink written 5.6 years ago by jnf376940
1
gravatar for Pierre Lindenbaum
6.2 years ago by
France/Nantes/Institut du Thorax - INSERM UMR1087
Pierre Lindenbaum134k wrote:

using the io_lib in the staden package

ADD COMMENTlink modified 16 months ago by Ram32k • written 6.2 years ago by Pierre Lindenbaum134k

I just downloaded Staden and I am a bit clueless about how to proceed. Could you provide a few pointers ? Thanks.

ADD REPLYlink written 6.2 years ago by anuragm130
1
gravatar for m.koohi.m
6.2 years ago by
m.koohi.m120
United States
m.koohi.m120 wrote:

You can use the org.biojava.bio.program.abi package to parse and access to the AB1 data. 

http://www.biojava.org/docs/api14/org/biojava/bio/program/abi/package-summary.html

I wrote a program in Java to modify the peaks and also eliminate some noise from the data, you can find some parts of the code bellow. With using this library you can play with AB1 data whenever you want!

public PeakTracer(File file) {
        try {
            abiTrace = new ABITrace(file);
            abifChromatogram = ABIFChromatogram.create(file);
            abifParser = new ABIFParser(file);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (UnsupportedChromatogramFormatException e) {
            e.printStackTrace();
        }

As you can see in the above codes, with abiTrace and abiParser Objects you can conduct different types of processing on your data.

ADD COMMENTlink written 6.2 years ago by m.koohi.m120
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 2.3.0
Traffic: 1891 users visited in the last hour
_