001    package org.biojava3.core.util;
002    
003    import org.biojava3.core.sequence.DNASequence;
004    import org.biojava3.core.sequence.ProteinSequence;
005    import org.biojava3.core.sequence.template.Sequence;
006    
007    public class SequenceTools {
008    
009            protected static final String NUCLEOTIDE_LETTERS = "GCTAUXN";
010    
011        public static int percentNucleotideSequence(String sequence)
012        {
013                if (sequence == null || sequence.length() == 0) return 0;
014    
015                int l = sequence.length();
016                int n =0;
017    
018                for (int i = 0; i < l; i++)
019                {
020                        if (NUCLEOTIDE_LETTERS.indexOf(sequence.charAt(i)) < 0)
021                        {
022                                continue;
023                        }
024                        n++;
025                }
026                return (100 * n) / l;
027        }
028    
029        public static boolean isNucleotideSequence(String sequence)
030        {
031                if (sequence == null || sequence.length() == 0) return false;
032    
033                int l = sequence.length();
034                for (int i = 0; i < l; i++)
035                {
036                        if (NUCLEOTIDE_LETTERS.indexOf(sequence.charAt(i)) < 0)
037                        {
038                                return false;
039                        }
040                }
041                return true;
042        }
043        
044        public Sequence<?> getSeqeunceFromString(String sequence){
045            
046      
047            if( isNucleotideSequence(sequence)) {
048                    return  new DNASequence(sequence);
049            } else {
050                    return new ProteinSequence(sequence);
051            }
052            
053        }
054            
055    }