我在 GitHub 下创建了一个存储库。有些脚本需要在大学计算机实验室的计算机上运行,那里安装了所有必需的软件。因此,我想授予该计算机对此存储库的完全访问权限,以便我可以轻松地从该计算机拉取和推送到我的远程存储库。
到目前为止,对我所知道的计算机进行完全访问的方法是将计算机的 ssh 密钥添加到我的 GitHub 帐户,或者从我的 GitHub 帐户生成令牌并使用该令牌克隆(使用 HTTPS)该计算机上的存储库。但这两种方式都会让机器完全访问我的 GitHub 帐户下的所有存储库。但我只想让机器访问这个特定的存储库,而不是其他的。
这怎么能实现呢?
我的要求很简单,但我就是不知道如何达到它。
这是原始字符串ACCCTNGGATGTGGGGGGATGTCCCCCATGTGCTCG,我想找出所有仅由 组成[ACGT]、以 结尾ATGT且长度至少为 8 的子字符串。我期望的是:
GGATGTGGGGGGATGT
GGATGTGGGGGGATGTCCCCCATGT
Run Code Online (Sandbox Code Playgroud)
使用以下代码:
import re
seq = 'ACCCTNGGATGTGGGGGGATGTCCCCCATGTGCTCG'
matches = re.findall("[ACGT]{4,}ATGT", seq)
if matches:
for match in matches:
print(match)
Run Code Online (Sandbox Code Playgroud)
我只得到了
GGATGTGGGGGGATGTCCCCCATGT
Run Code Online (Sandbox Code Playgroud)
较短的那一个不见了。然后我意识到re.findall不允许重叠。我从如何使用正则表达式查找所有重叠匹配中找到了这个解决方案,然后我将代码修改为:
matches = re.findall("(?=([ACGT]{4,}ATGT))", seq)
Run Code Online (Sandbox Code Playgroud)
然后我得到:
GGATGTGGGGGGATGTCCCCCATGT
GATGTGGGGGGATGTCCCCCATGT
ATGTGGGGGGATGTCCCCCATGT
TGTGGGGGGATGTCCCCCATGT
GTGGGGGGATGTCCCCCATGT
TGGGGGGATGTCCCCCATGT
GGGGGGATGTCCCCCATGT
GGGGGATGTCCCCCATGT
GGGGATGTCCCCCATGT
GGGATGTCCCCCATGT
GGATGTCCCCCATGT
GATGTCCCCCATGT
ATGTCCCCCATGT
TGTCCCCCATGT
GTCCCCCATGT
TCCCCCATGT
CCCCCATGT
CCCCATGT
Run Code Online (Sandbox Code Playgroud)
然后我意识到这个搜索是从右到左开始的。那么我怎样才能要求re.findall从左到右搜索并允许重叠呢?