私はこのrev_comp()
機能を持っています
>>> def rev_comp(sequence):
... def reverse(s):
... letters = list(s)
... letters.reverse()
... return ''.join(letters)
... def complement(s):
... basecomplement = {'A': 'T', 'C': 'G', 'T': 'A', 'G': 'C', 'a': 't', 'c': 'g', 't': 'a', 'g': 'c'}
... letters = list(s)
... letters = [basecomplement[base] for base in letters]
... return ''.join(letters)
... reverse(sequence)
... complement(sequence)
... return sequence
...
exon は、反転して補完したい文字列です。
基本的に、エクソンを ' gtacgtgtacgt
' に反転し、次のすべてのインスタンスを置換する必要があります。
g -> c, t -> a, c -> g, and a ->t
rev_comp(exon)
'<code>catgcacatgca'</p> を返す必要があります
>>> exon = "tgcatgtgcatg"
>>> rev_comp(exon)
'tgcatgtgcatg'
pdbで実行したところ、次のすべてが吐き出されました。
>>> pdb.run(rev_comp(exon))
> <string>(1)<module>()->None
(Pdb) n
NameError: "name 'tgcatgtgcatg' is not defined"
> <string>(1)<module>()->None
(Pdb) n
--Return--
> <string>(1)<module>()->None
(Pdb) >>> def rev_comp(sequence):
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) ... def reverse(s):
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) ... letters = list(s)
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) ... letters.reverse()
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) ... return ''.join(letters)
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) ... def complement(s):
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) ... basecomplement = {'A': 'T', 'C': 'G', 'T': 'A', 'G': 'C', 'a': 't', 'c': 'g', 't': 'a', 'g': 'c'}
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) ... letters = list(s)
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) ... letters = [basecomplement[base] for base in letters]
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) ... return ''.join(letters)
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) ... reverse(sequence)
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) ... complement(sequence)
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) ... return sequence
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) ...
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) >>> exon = "tgcatgtgcatg"
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) >>> rev_comp(exon)
*** SyntaxError: invalid syntax (<stdin>, line 1)
(Pdb) 'tgcatgtgcatg'
'tgcatgtgcatg'
(Pdb) n
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/pdb.py", line 1238, in run
Pdb().run(statement, globals, locals)
File "/usr/lib/python2.7/bdb.py", line 387, in run
exec cmd in globals, locals
File "<string>", line 1, in <module>
NameError: name 'tgcatgtgcatg' is not defined
それは私にとってほとんど意味がありません。
私が渡しているシーケンスが定義されていないと思う理由を誰かが理解するのを手伝ってくれますか?