|
bpp-seq
2.1.0
|
00001 // 00002 // File: SequenceWithQualityTools.h 00003 // Authors: Vincent Cahais 00004 // Sylvain Gaillard 00005 // Created on: 16 Apr 2010 00006 // 00007 00008 /* 00009 Copyright or © or Copr. Bio++ Development Team, (Apr 16, 2010) 00010 00011 This software is a computer program whose purpose is to provide classes 00012 for sequences analysis. 00013 00014 This software is governed by the CeCILL license under French law and 00015 abiding by the rules of distribution of free software. You can use, 00016 modify and/ or redistribute the software under the terms of the CeCILL 00017 license as circulated by CEA, CNRS and INRIA at the following URL 00018 "http://www.cecill.info". 00019 00020 As a counterpart to the access to the source code and rights to copy, 00021 modify and redistribute granted by the license, users are provided only 00022 with a limited warranty and the software's author, the holder of the 00023 economic rights, and the successive licensors have only limited 00024 liability. 00025 00026 In this respect, the user's attention is drawn to the risks associated 00027 with loading, using, modifying and/or developing or reproducing the 00028 software by the user in light of its specific status of free software, 00029 that may mean that it is complicated to manipulate, and that also 00030 therefore means that it is reserved for developers and experienced 00031 professionals having in-depth computer knowledge. Users are therefore 00032 encouraged to load and test the software's suitability as regards their 00033 requirements in conditions enabling the security of their systems and/or 00034 data to be ensured and, more generally, to use and operate it in the 00035 same conditions as regards security. 00036 00037 The fact that you are presently reading this means that you have had 00038 knowledge of the CeCILL license and that you accept its terms. 00039 */ 00040 00041 #ifndef SEQUENCEWITHQUALITYTOOLS_H_ 00042 #define SEQUENCEWITHQUALITYTOOLS_H_ 00043 00044 #include "SequenceTools.h" 00045 #include "SequenceWithQuality.h" 00046 00047 namespace bpp { 00060 class SequenceWithQualityTools { 00061 private: 00062 static DNA _DNA; 00063 static RNA _RNA; 00064 static NucleicAcidsReplication _DNARep; 00065 static NucleicAcidsReplication _RNARep; 00066 static NucleicAcidsReplication _transc; 00067 00068 public: 00069 00079 static SequenceWithQuality* subseq( 00080 const SequenceWithQuality& sequence, 00081 unsigned int begin, 00082 unsigned int end 00083 ) throw (IndexOutOfBoundsException, Exception) ; 00084 00098 static SequenceWithQuality* concatenate( 00099 const SequenceWithQuality& seqwq1, 00100 const SequenceWithQuality& seqwq2 00101 ) throw (AlphabetMismatchException, Exception) ; 00102 00112 static SequenceWithQuality* complement( 00113 const SequenceWithQuality& sequence 00114 ) throw (AlphabetException); 00115 00125 static SequenceWithQuality* transcript( 00126 const SequenceWithQuality& sequence 00127 ) throw (AlphabetException); 00128 00139 static SequenceWithQuality* reverseTranscript( 00140 const SequenceWithQuality& sequence 00141 ) throw (AlphabetException); 00152 static SequenceWithQuality* invert( 00153 const SequenceWithQuality& sequence 00154 ); 00155 00162 static SequenceWithQuality* removeGaps(const SequenceWithQuality& seq); 00163 00170 static SequenceWithQuality& trimLeft(SequenceWithQuality& seq); 00171 00172 }; 00173 } 00174 00175 #endif /* SEQUENCEWITHQUALITYTOOLS_H_ */