У меня был этот класс и подкласс:
Диапазон класса:
def __init__(self, start, end):
self.setStart(start)
self.setEnd(end)
def getStart(self):
return self.start
def setStart(self, s):
self.start = s
def getEnd(self):
return self.end
def setEnd(self, e):
self.end = e
def getLength(self):
return len(range(self.start, self.end))
def overlaps(self, r):
if (r.getStart() < self.getEnd() and r.getEnd() >= self.getEnd()) or \
(self.getStart() < r.getEnd() and self.getEnd() >= r.getEnd()) or \
(self.getStart() >= r.getStart() and self.getEnd() <= r.getEnd()) or \
(r.getStart() >= self.getStart() and r.getEnd() <= self.getEnd()):
return True
else:
return False
Класс DNAFeature (Range):
def __init__(self, start, end):
self.setStart(start)
self.setEnd(end)
self.strand = none
self.sequencename = none
def getSeqName(self, s):
return self.SeqName
def setSeqName(self, s):
self.sequencename = s
def getStrand(self):
if self.SeqName == 'plus':
return 1
elif self.SeqName == 'minus':
return -1
else:
return 0
def setStrand(self, s):
self.strand = s
И вот что я должен сделать: создать новый класс - GeneModel, который содержит группу объектов DNAFeature, представляющих экзоны, и является дочерним классом DNAFeature.Должны быть реализованы следующие методы: getFeats () - возвращает список объектов DNAFeature, отсортированный по начальной позиции addFeat (feat) - принимает навык DNAFeature и добавляет его в свою внутреннюю группу объектов DNAFeature setTranslStart (i) - принимает неотрицательное значение int устанавливает начальную позицию инициирующего кодона ATG getTranslStart () - возвращает int, начальная позиция инициирующего кодона ATG setTranslStop (i) - принимает положительное значение int, устанавливает конечную позицию стоп-кодона getTranslStop () -возвращает int, конечная позиция для стоп-кодона setDisplayId (s) - устанавливает имя модели гена;s - это строка getDisplayId () - возвращает имя модели гена, возвращает строку, например, AT1G10555.1. GeneModel должна вызывать соответствующие исключения ValueError и TypeError, когда пользователи передают неправильные типы и значения конструкторам и методам «set».
Я пытался написать все, что придет мне в голову, и читать книги, а также искать способы объединения кодов, но я настолько новичок в программировании и едва могу понять, как правильно писать коды.Если честно, это первый раз, когда я делаю урок программирования.Так что, если я сделаю какую-нибудь забавную ошибку в моих кодах, пожалуйста, прости меня.Я еще не закончил свои коды и все еще читаю книги, чтобы увидеть, где я делаю неправильно и правильно с моими кодами.Однако мне очень нужна ваша помощь, чтобы направить меня на правильный путь.Большое спасибо, ребята.Ниже приведены мои коды:
Класс GeneModel (DNAFeature):
def __init__(self, translstart, translend, displayid):
self.setTranslStart(translstart)
self.setTranslStop(translend)
setDisplayId(displayid)
def getFeats():
result = []
sort.self.getStart()
return result
def addFeat(feat):
self.addFeat = feat
return self.getStart+self.getEnd
def setTranslStart(i):
self.translstart = self.setStart
self.translstart = non-negative int
def getTranslStart():
return self.translstart
def setTranslStop(i):
self.translend = self.setEnd
self.translend = "+" int
def getTranslStop():
return self.translend
def setDisplayId(s):
self.displayid = re.compile('r'\AT1G[0-9]{5,5}\.[0-9]{,1}, IGNORECASE')
def getDisplayId():
return self.displayid