X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fdatamodel%2FCigarArray.java;h=6fef9a41527181cce7fe7bd239d34a3c469aff8d;hb=9e9b624ed84ec54b959e05a0ab8554416525f4e2;hp=9b60e566929ade7150328476a74cacf45f8557dd;hpb=174230b4233d9ce80f94527768d2cd2f76da11ab;p=jalview.git diff --git a/src/jalview/datamodel/CigarArray.java b/src/jalview/datamodel/CigarArray.java index 9b60e56..6fef9a4 100644 --- a/src/jalview/datamodel/CigarArray.java +++ b/src/jalview/datamodel/CigarArray.java @@ -1,53 +1,60 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5) + * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with Jalview. If not, see . */ package jalview.datamodel; public class CigarArray extends CigarBase { - /** - * Do CIGAR operations on a set of sequences from many other cigars - * BAD THINGS WILL HAPPEN IF A CIGARARRAY IS PASSED TO A CIGARARRAY - * or a CIGARCIGAR is given a CIGARARRAY to insert gaps into. - */ - /** - * array of subject cigars - */ - public CigarSimple refCigars[]=null; - private boolean seqcigararray=false; - private CigarArray() { + /** + * Do CIGAR operations on a set of sequences from many other cigars BAD THINGS + * WILL HAPPEN IF A CIGARARRAY IS PASSED TO A CIGARARRAY or a CIGARCIGAR is + * given a CIGARARRAY to insert gaps into. + */ + /** + * array of subject cigars + */ + public CigarSimple refCigars[] = null; + + private boolean seqcigararray = false; + + private CigarArray() + { super(); } /** * isSeqCigarArray() + * * @return boolean true if all refCigars resolve to a SeqCigar or a CigarCigar */ public boolean isSeqCigarArray() { return seqcigararray; } + /** - * Apply CIGAR operations to several cigars in parallel - * will throw an error if any of cigar are actually CigarArrays. - * @param cigar Cigar[] + * Apply CIGAR operations to several cigars in parallel will throw an error if + * any of cigar are actually CigarArrays. + * + * @param cigar + * Cigar[] */ - public CigarArray(CigarSimple[] cigars) { + public CigarArray(CigarSimple[] cigars) + { super(); seqcigararray = true; if (cigars != null && cigars.length > 0) @@ -56,151 +63,190 @@ public class CigarArray extends CigarBase for (int c = 0; c < cigars.length; c++) { refCigars[c] = cigars[c]; - if (! ( (cigars[c] instanceof SeqCigar) - || cigars[c] instanceof CigarCigar)) + if (!((cigars[c] instanceof SeqCigar) || cigars[c] instanceof CigarCigar)) { seqcigararray = false; } } } } + /** * @see Cigar.getSequenceAndDeletions - * @param GapChar char + * @param GapChar + * char * @return Object[][] */ - protected Object[][] getArrayofSequenceAndDeletions(char GapChar) { - if (refCigars == null || refCigars.length == 0 || length == 0) { - return null; + protected Object[][] getArrayofSequenceAndDeletions(char GapChar) + { + if (refCigars == null || refCigars.length == 0 || length == 0) + { + return null; + } + Object[][] sqanddels = new Object[refCigars.length][]; + for (int c = 0; c < refCigars.length; c++) + { + String refString = refCigars[c].getSequenceString(GapChar); + if (refString != null) + { + sqanddels[c] = getSequenceAndDeletions(refString, GapChar); } - Object[][] sqanddels = new Object[refCigars.length][]; - for (int c=0; c