字母组合如何用python实现_如何将特定字母组合成两个或两个以上?
我是python的新手,在過(guò)去的一周里我一直在努力解決這個(gè)問(wèn)題,有人能幫我解決這個(gè)問(wèn)題,這對(duì)完成我的項(xiàng)目很有幫助。在
我試著根據(jù)給定序列的用戶輸入進(jìn)行單一突變及其2,3組合:
輸入順序:>;PEACCEL
用戶突變輸入文件:
E2R
C4W
E6G型#!/usr/bin/python
import getopt
import sys
import itertools as it
from itertools import groupby
def main(argv):
try:
opts,operands = getopt.getopt(sys.argv[1:],'i:m:o:'["INPUT_FILE:=","MUTATIONFILE:=","OUTPUT_FILE:=","help"])
if len(opts) == 0:
print "Please use the correct arguments, for usage type --help "
else:
for option,value in opts:
if option == "-i" or option == "--INPUT_FILE:":
seq=inputFile(value)
if option == "-m" or option == "--MUTATION_FILE:":
conA=MutationFile(value)
if option == "-o" or option == "--OUTPUT_FILE:":
out=outputName(value)
return seq,conA
except getopt.GetoptError,err:
print str(err)
print "Please use the correct arguments, for usage type --help"
def inputFile(value):
try:
fh = open(value,'r')
except IOError:
print "The file %s does not exist \n" % value
else:
ToSeperate= (x[1] for x in groupby(fh, lambda line: line[0] == ">"))
for header in ToSeperate:
header = header.next()[1:].strip()
Sequence = "".join(s.strip() for s in ToSeperate.next())
return Sequence
def MutationFile(value):
try:
fh=open(value,'r')
content=fh.read()
Rmcontent=str(content.rstrip())
except IOError:
print "The file %s does not exist \n" % MutFile
else:
con=list(Rmcontent)
return con
def Mutation(SEQUENCES,conA):
R=len(conA)
if R>1:
out=[]
SecondNum=1
ThirdChar=2
for index in range(len(conA)):
MR=conA[index]
if index==SecondNum:
SN=MR
SecondNum=SecondNum+4
if index==ThirdChar:
TC=MR
ThirdChar=ThirdChar+4
SecNum=int(SN.rstrip())
MutateResidue=str(TC.rstrip())
for index in range(len(SEQUENCES)):
if index==SecNum-1:
NonMutate=SEQUENCES[index]
AfterMutate=NonMutate.replace(NonMutate,MutateResidue)
new=SEQUENCES[ :index]+AfterMutate+SEQUENCES[index+1: ]
MutatedInformation= ['>',NonMutate,index+1,MutateResidue,'\n',new]
values2 = ''.join(str(i)for i in MutatedInformation)
if __name__ == "__main__":
seq,conA=main(sys.argv[1:])
Mutation(seq,conA)
這是我程序的一部分,我把(2,4,6)的R,W,G替換為E,C,E,然后將這些替換的字母存儲(chǔ)到名為R的變量中,這個(gè)變量包含三行這:在
^{pr2}$
現(xiàn)在,我想把這三個(gè)單一突變組合成2和3。
這就像一個(gè)系有兩個(gè)突變,一個(gè)系有三個(gè)突變。在
示例和預(yù)期輸出如下:2C
PrAwCEL
PrACCgL
PEAwCgL
3C
PrAwCgL
算法
他是我代碼的一部分,所以我將解釋我的算法
1.我讀了突變文件,其中(E)是氨基酸字母,它是(2)輸入序列PEACCEL的位置,第三個(gè)字母(R)是E2將成為R
2.因此,首先我從用戶突變文件中提取位置和第三個(gè)變量,并將它們存儲(chǔ)到變量SecNum和MutateResidue(thirdchar)。在
3.然后,我用循環(huán)按索引讀取一個(gè)序列(PEACCEL),然后無(wú)論哪個(gè)索引與SecNUm(E2,4,6)相匹配,我將這些序列替換為突變文件(2R,4W,6G)中第三個(gè)字符的突變殘基
4.最后,我用這條線將變異殘基索引與其他殘基連接起來(lái):(new=SEQUENCES[:index]+AfterMutate+SEQUENCES[index+1:]
提前謝謝
總結(jié)
以上是生活随笔為你收集整理的字母组合如何用python实现_如何将特定字母组合成两个或两个以上?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 传承——用双手打工创造的未来依旧可行
- 下一篇: break 和 continue 的区别