diff TEisotools-1.1.a/commons/core/seq/SequenceModifications.py @ 16:836ce3d9d47a draft default tip

Uploaded
author urgi-team
date Thu, 21 Jul 2016 07:42:47 -0400
parents 255c852351c5
children
line wrap: on
line diff
--- a/TEisotools-1.1.a/commons/core/seq/SequenceModifications.py	Thu Jul 21 07:36:44 2016 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright INRA (Institut National de la Recherche Agronomique)
-# http://www.inra.fr
-# http://urgi.versailles.inra.fr
-#
-# This software is governed by the CeCILL license under French law and
-# abiding by the rules of distribution of free software.  You can  use, 
-# modify and/ or redistribute the software under the terms of the CeCILL
-# license as circulated by CEA, CNRS and INRIA at the following URL
-# "http://www.cecill.info". 
-#
-# As a counterpart to the access to the source code and  rights to copy,
-# modify and redistribute granted by the license, users are provided only
-# with a limited warranty  and the software's author,  the holder of the
-# economic rights,  and the successive licensors  have only  limited
-# liability. 
-#
-# In this respect, the user's attention is drawn to the risks associated
-# with loading,  using,  modifying and/or developing or reproducing the
-# software by the user in light of its specific status of free software,
-# that may mean  that it is complicated to manipulate,  and  that  also
-# therefore means  that it is reserved for developers  and  experienced
-# professionals having in-depth computer knowledge. Users are therefore
-# encouraged to load and test the software's suitability as regards their
-# requirements in conditions enabling the security of their systems and/or 
-# data to be ensured and,  more generally, to use and operate it in the 
-# same conditions as regards security. 
-#
-# The fact that you are presently reading this means that you have had
-# knowledge of the CeCILL license and that you accept its terms.
-
-from operator import itemgetter
-from commons.core.coord.Range import Range
-            
-class SequenceModifications(object):
-    
-    def __init__(self, originalHeader = "", mutatedHeader = ""):
-        self._originalHeader = originalHeader
-        self._mutatedHeader = mutatedHeader
-        self._lMutations = []
-        self._lDeletionsRanges = []
-        self._lInsertionsRanges = []
-        
-    def __str__(self):
-        result = "%s\t%s\n" % (self.getOriginalHeader(), self.getMutatedHeader())
-        result += "Insertions\n"
-        for insertion in self._lInsertionsRanges:
-            result += "%s\n" % insertion.toString()
-        result += "Deletions\n"
-        for insertion in self._lDeletionsRanges:
-            result += "%s\n" % insertion.toString()
-        result += "Mutations"
-        for mutation in self._lMutations:
-            result += "\n%i\t%s\t%s" % (mutation[0], mutation[1], mutation[2])
-        return result
-    
-    def __eq__(self, o):
-        if type(o) is type(self):
-            self.sort()
-            o.sort()
-            return self._originalHeader == o._originalHeader and self._mutatedHeader == o._mutatedHeader and self._lMutations == o._lMutations \
-                and self._lDeletionsRanges == o._lDeletionsRanges and self._lInsertionsRanges == o._lInsertionsRanges
-        return False
-            
-    def __ne__(self, o):
-        return not self.__eq__(o)
-                
-    def getOriginalHeader(self):
-        return self._originalHeader
-                
-    def getMutatedHeader(self):
-        return self._mutatedHeader
-        
-    def getMutations(self):
-        self.sort()
-        return self._lMutations
-    
-    def getInsertions(self):
-        self.sort()
-        return self._lInsertionsRanges
-    
-    def getDeletions(self):
-        self.sort()
-        return self._lDeletionsRanges
-        
-    def setOriginalHeader(self, originalHeader):
-        self._originalHeader = originalHeader
-        
-    def setMutatedHeader(self, mutatedHeader):
-        self._mutatedHeader = mutatedHeader
-        
-    def setMutations(self, lMutations):
-        self._lMutations = lMutations
-        
-    def addMutation(self, tupleMute):
-        #tuple: (position, oldNT, newNT)
-        self._lMutations.append(tupleMute)
-        
-    def addInsertion(self, start, end, insertedSeqName = "."):
-        self._lInsertionsRanges.append(Range(insertedSeqName, start, end))
-        
-    def addDeletion(self, start, end):
-        self._lDeletionsRanges.append(Range(self.getOriginalHeader(), start, end))
-        
-    def clear(self):
-        self._lMutations = []
-        self._lDeletionsRanges = []
-        self._lInsertionsRanges = []
-        
-    def sort(self):
-        self._lMutations.sort(key = itemgetter(0), reverse = False)
-        self._lDeletionsRanges.sort(key = lambda delRange: delRange.getStart(), reverse = False)
-        self._lInsertionsRanges.sort(key = lambda insRange: insRange.getStart(), reverse = False)
\ No newline at end of file