def test_from_index_and_length(self, glucagon_peptides, glucagon_seq): # simple tests index = self.protein_seq.index(self.pep_seq) p = SequenceRange.from_index(index, length=len(self.pep_seq)) self._assert(p, self.pep_seq, self.protein_seq) # all peptides for (start, stop, seq) in glucagon_peptides: p = SequenceRange.from_index(glucagon_seq.index(seq), length=len(seq)) self._assert(p, seq, glucagon_seq) with pytest.raises(ValueError): SequenceRange.from_index(SequenceRange(10), length=20)
def get_clusters(cls, h_cluster): clusters = {} for n_clust in range(1, h_cluster.max() + 1): cluster_indexes = np.where(h_cluster == n_clust)[0] clusters[n_clust] = SequenceRange.from_index( cluster_indexes[0], cluster_indexes[-1]) return clusters
def test___repr__(self): assert repr(SequenceRange(10, 20)) == "SequenceRange(10, 20, seq=None)" seq = "A" * 11 assert repr(SequenceRange(10, 20, seq=seq)) == \ 'SequenceRange(10, 20, seq="{}")'.format(seq) assert repr(SequenceRange(10, 20).pos) == "(10, 20)" assert repr(SequenceRange.from_index(10, 20).index) == "(10, 20)"
def test_from_index(self, glucagon_peptides, glucagon_seq): pep_start_index = 5 pep_stop_index = 8 p_index = SequenceRange.from_index(pep_start_index, pep_stop_index) p_index2 = SequenceRange.from_index((pep_start_index, pep_stop_index)) assert p_index == p_index2 p = SequenceRange(self.pep_start, self.pep_stop) assert p == p_index assert self.pep_seq[0] == self.protein_seq[p_index.start.index] assert self.pep_seq[-1] == self.protein_seq[p_index.stop.index] with pytest.raises(ValueError): SequenceRange.from_index(SequenceRange(10), 10) with pytest.raises(ValueError): SequenceRange.from_index(10, SequenceRange(10)) with pytest.raises(ValueError): SequenceRange.from_index(SequenceRange(10), SequenceRange(10))