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 }