Skip to content

Commit b481623

Browse files
authored
Merge pull request #102 from Goosang-Yu/dev_goosang
✨ TwinPE design
2 parents 4c30b93 + 76fabc0 commit b481623

File tree

3 files changed

+42
-1
lines changed

3 files changed

+42
-1
lines changed

genet/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
# How to release with 2FA accounts
88

99
# [주의!] 먼저 아래의 version을 변경한다!!
10-
__version__ = '0.17.0'
10+
__version__ = '0.17.1'
1111

1212
# hatch build
1313
# twine upload --username __token__ dist/*

genet/design/TwinPE.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
from Bio.Seq import reverse_complement
2+
3+
4+
5+
def twinPE(spacer_f:str, spacer_r:str, replace_seq:str, overlap:int=25, pbs_f:int=12, pbs_r:int=12) -> str:
6+
"""TwinPE에 필요한 pegRNA 2개의 RT-PBS를 디자인해주는 함수
7+
8+
Args:
9+
spacer_f (str): pegRNA upper strand의 spacer
10+
spacer_r (str): pegRNA bottom strand의 spacer
11+
replace_seq (str): TwinPE로 replacement 하고 싶은 sequence
12+
overlap (int, optional): TwinPE로 만들어지는 cDNA들의 overlap 길이. Defaults to 25.
13+
pbs_f (int, optional): _description_. Defaults to 12.
14+
pbs_r (int, optional): _description_. Defaults to 12.
15+
16+
Returns:
17+
str: RT-PBS 2개 세트를 만들어 줌
18+
"""
19+
20+
if len(replace_seq) < overlap:
21+
raise ValueError('The length of replace sequence must be longer than overlap length.')
22+
23+
spacer_f = spacer_f.upper()
24+
spacer_r = spacer_r.upper()
25+
replace_seq = replace_seq.upper()
26+
27+
pbs_f = reverse_complement(spacer_f[17-pbs_f:17])
28+
pbs_r = reverse_complement(spacer_r[17-pbs_r:17])
29+
30+
RepSeq_center = int(len(replace_seq)/2)
31+
half_overlap = int(overlap/2)
32+
33+
cdna_f = reverse_complement(replace_seq[:RepSeq_center+half_overlap])
34+
cdna_r = replace_seq[RepSeq_center-(overlap-half_overlap):]
35+
36+
rtpbs_1 = cdna_f + pbs_f
37+
rtpbs_2 = cdna_r + pbs_r
38+
39+
return rtpbs_1, rtpbs_2
40+

genet/design/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
from .modules import *
22
from genet.design.functional import *
3+
from genet.design.TwinPE import *
34
from genet.design.DesignUtils import *

0 commit comments

Comments
 (0)