Hi David,
Not to worry it's quite confusing at first. ChromatogramGraphic.Option
is a pre Java 1.5 enum (where a restricted vocab is specified by class
type rather than accepting plain Strings or ints which can be abused).
Your code should look something like:
Chromatogram c = getChromatogram();
Alignment baseCalls = c.getBaseCalls();
//Of course you've got to check if you've got an alignment, base pairs
//and that these values are going to make sense when rendering (nothing
//beats attempting to render a chromatogram from & to the same position)
int start = getIndex(0, baseCalls);
int end = getIndex(baseCalls.length);
ChromatogramGraphic cg = new ChromatogramGraphic(c);
cg.setOption(ChromatogramGraphic.Option.FROM_TRACE_SAMPLE, start);
cg.setOption(ChromatogramGraphic.Option.TO_TRACE_SAMPLE, end);
private int getIndex(int pos, Alignment baseCalls) {
Symbol sym = baseCalls.symbolAt(Chromatogram.OFFSETS, pos);
return ((IntegerAlphabet.IntegerSymbol)sym).intValue();
}
It's been a long time since I've used this library in anger (and to be
honest I wrote a wrapper around it for my particular usage) but
hopefully it should give you a point in the right direction (also the
above code is in Java 5 so that will probably have an impact on it
working for you).
Hope that helps
Andy
David Bourgais wrote:
Hello Andy
Thank you very much for your answer.
But, even if I have a ABIFChromatogram object and a ChromatogramGraphic
object, I do not understand what you said about setting options. I see a
class Chromatogramgraphic.Option, but I do not know what can I do with this.
Thank you very much for your help.
Best regards.
Yup Russ is on the ball with that one 100% :)
A chromatogram is really a graph of 4 tracks where each scan index
refers to an intensity of the 4 dyes used in Sanger Sequencing. There
is no direct relation to the size of a chromatogram and the number of
base pairs it will represent. If you require any changes to the
rendering the options are controlled by ChromatogramGraphic.Option
instances in conjunction with the setOption() method in
ChromatogramGraphic.
If you are rendering a processed ABI file and just want to see the
base called sequences then the best option is to use the
Chromatogram's getBaseCalls() method & look up the start & finish of
the base calls. Use this to set where you want rendering to start &
stop (again another ChromatogramGraphic.Option).
Hope this helps,
Andy
--
David Bourgais
Bioinformatician
BioXpr SA/NV
http://www.bioxpr.com
Rue du Seminaire, 22
5000, Namur, Belgium
Phone: +32(0)81 72 51 58
_______________________________________________
Biojava-l mailing list - [email protected]
http://lists.open-bio.org/mailman/listinfo/biojava-l