X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fmsa%2FMsaMethods.java;h=ac6cb1f3c566f9b5b47f18b74fec91f5b2160cdf;hb=6479c35c4734850f517a6ef8de0fce500fdd6693;hp=ee9338b3965c07b3c9509a74565d2d5d7d0fd551;hpb=0f62196182c853236023fce71ca24db42b591a36;p=jalview.git diff --git a/forester/java/src/org/forester/msa/MsaMethods.java b/forester/java/src/org/forester/msa/MsaMethods.java index ee9338b..ac6cb1f 100644 --- a/forester/java/src/org/forester/msa/MsaMethods.java +++ b/forester/java/src/org/forester/msa/MsaMethods.java @@ -21,7 +21,7 @@ // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA // // Contact: phylosoft @ gmail . com -// WWW: www.phylosoft.org/forester +// WWW: https://sites.google.com/site/cmzmasek/home/software/forester package org.forester.msa; @@ -65,13 +65,26 @@ public final class MsaMethods { public static int calcGapSumPerColumn( final Msa msa, final int col ) { int gap_rows = 0; for( int j = 0; j < msa.getNumberOfSequences(); ++j ) { - if ( msa.getResidueAt( j, col ) == Sequence.GAP ) { + if ( msa.isGapAt( j, col ) ) { gap_rows++; } } return gap_rows; } + final public static Msa removeSequence( final Msa msa, final String to_remove_id ) { + final List seqs = new ArrayList(); + for( int row = 0; row < msa.getNumberOfSequences(); ++row ) { + if ( !to_remove_id.equals( msa.getIdentifier( row ) ) ) { + seqs.add( BasicSequence.copySequence( msa.getSequence( row ) ) ); + } + } + if ( seqs.size() < 1 ) { + return null; + } + return BasicMsa.createInstance( seqs ); + } + final public static Msa removeSequences( final Msa msa, final List to_remove_ids ) { final List seqs = new ArrayList(); for( int row = 0; row < msa.getNumberOfSequences(); ++row ) { @@ -162,11 +175,13 @@ public final class MsaMethods { public static SortedMap calculateResidueDestributionPerColumn( final Msa msa, final int column ) { final SortedMap map = new TreeMap(); for( final Character r : msa.getColumnAt( column ) ) { - if ( !map.containsKey( r ) ) { - map.put( r, 1 ); - } - else { - map.put( r, map.get( r ) + 1 ); + if ( r != Sequence.GAP ) { + if ( !map.containsKey( r ) ) { + map.put( r, 1 ); + } + else { + map.put( r, map.get( r ) + 1 ); + } } } return map;