一次又一次地编辑 Python 脚本文件



嗨,我想检查氨基酸序列的分数值,为此我编写了以下代码,该代码绝对可以正常工作。但问题是每次我都必须编辑文件时。有什么方法可以从命令界面给出氨基酸序列。

AA_seq='AVTLSPQRS' # this is the input variable
sum=0
value={"V": 3.1,"Y":3.5,"W":4.7,"T" :5.3,"S":5.1,"P":3.7,
"F":4.7,"M":1.5,"K":8.9,"L":6,"I":4.3,"H":3.3,"G":7.1,
"E":7,"Q":5.4,"C":0.6,"D":7.6,"N":6,"R":8.7,"A":3.4}
print("Total length of sequence is:", len(AA_seq))
for i in AA_seq:

sum+=value[i]

print("Total Score is :", sum)

如果我很好地理解了你的问题,你可以通过使用python的"input"函数来完成它。 这将使您能够从 CLI 提供输入。下面是修改代码。

希望这对你有帮助。 此外,如果你想避免输入的小/大写hedache,你可以使用.upper()。

虽然这个问题不需要。

AA_seq=input("write Amino Acid Sequence:" )
AA_seq=AA_seq.upper()
sum=0
value={"V": 3.1,"Y":3.5,"W":4.7,"T" :5.3,"S":5.1,"P":3.7,
"F":4.7,"M":1.5,"K":8.9,"L":6,"I":4.3,"H":3.3,"G":7.1,
"E":7,"Q":5.4,"C":0.6,"D":7.6,"N":6,"R":8.7,"A":3.4}
print("Total length of sequence is:", len(AA_seq))
for i in AA_seq:

sum+=value[i]

print("Total Score is :", sum)

您可以在sys.argv中从命令行轻松访问字符串参数。(由于历史原因,sys.argv[0]包含脚本本身的名称,因此请忽略它。

import sys
value={"V": 3.1, "Y": 3.5, "W": 4.7, "T": 5.3, "S": 5.1,
"P": 3.7, "F": 4.7, "M": 1.5, "K": 8.9, "L": 6, "I": 4.3, 
"H": 3.3, "G": 7.1, "E": 7, "Q": 5.4, "C": 0.6, "D": 7.6,
"N": 6, "R": 8.7, "A": 3.4}
for AA_seq in sys.argv[1:]:
print("Total length of sequence", AA_seq, "is:", len(AA_seq))
total = 0
for i in AA_seq:
total += value[i]
print(AA_seq, "Total Score is :", total)

您会注意到我添加了一个循环,因此您可以根据需要在一次运行中处理多个序列。

用法:

python3 script.py 'AVTLSPQRS' 'KIIGAPEAR'

(或者只是python,如果这是您平台上 Python 3 可执行文件的名称)。

接受来自命令行的输入使您能够使用 shell 的各种功能(选项卡完成、历史记录、变量扩展等),以及从其他脚本以编程方式使用此脚本。

一个合适的工具可能也应该包括一些错误处理(基本上检查是否有参数,如果没有,则显示错误),但这应该已经让你开始了。此外,也许会捕获KeyError这样,如果输入字符串包含不在value哈希中的符号,则不会获得回溯。

最新更新