-1

私はこのコードを書きました

import sys
file = open(sys.argv[1], 'r')
string = ''
for line in file:
    if line.startswith(">"):
        pass
    else:
        string = string + line.strip()
#print (list(string))
w = input("Please enter window size:")
test = [string[i:i+w] for i in range (0,len(string),w)]
seq = input("Please enter the number of sequences you wish to read:")
#print (test[0:seq])

次のようなリストを生成します-

['TAAAACACCC', 'TCAATTCAAG', 'GGTTTTTGAG', 'CGAGCTTTTT', 'ACTCAAAGAA', 'TCCAAGATAG', 'CGTTTAAAAA', 'TTTAGGGGTG', 'TTAGGCTCAG', 'CATAGAGTTT']

次のステップは、リストの各要素での文字GC(または可能性があります)の出現を読み取ることです。CG出力ファイルが次のようになるようにリストをループする方法はありますか:

Segment 1- The %GC is <the calculated number>
Segment 2- The %GC is <the calculated number>
Segment 3- The %GC is <the calculated number>

ファイルが非常に大きく、セグメントの数(のようなリストの個々の要素'TAAGATATA')が膨大になるため、セグメントの数(1、2、3 ...)を取得する方法がわかりません出力ファイルで。また、私はPython(およびプログラミング)が初めてなので、関数をうまく使用するのがあまり得意ではありません。

4

2 に答える 2

1

何を尋ねているのかわかりません。

inp = ['TAAAACACCC', 'TCAATTCAAG', 'GGTTTTTGAG', 'CGAGCTTTTT', 'ACTCAAAGAA', 'TCCAAGATAG', 'CGTTTAAAAA', 'TTTAGGGGTG', 'TTAGGCTCAG', 'CATAGAGTTT']

for i, segment in enumerate(inp):
    print "Segment {} - The %GC is {}".format(i, segment.count("GC"))

与える

Segment 0 - The %GC is 0
Segment 1 - The %GC is 0
Segment 2 - The %GC is 0
Segment 3 - The %GC is 1
Segment 4 - The %GC is 0
Segment 5 - The %GC is 0
Segment 6 - The %GC is 0
Segment 7 - The %GC is 0
Segment 8 - The %GC is 1
Segment 9 - The %GC is 0
于 2013-01-22T17:32:32.867 に答える
0

mapPythonで関数を試すことができます。http://docs.python.org/3.1/library/functions.html#mapはその一般的な使用方法を提供しますが、ここでは Python3 を使用した例を示します。

def func1(myObject):
    '''Trivial example function'''
    return myObject * 2
myList = [1,2,3]
myMap = map(func1,myList)
print(list(myMap))

Map は iterable (リスト、文字列など) 内の各項目に対してメソッドを実行し、各メソッド実行の結果をマップに配置します。マップはリストとして出力したり、リストのように反復したりできます。

myObject をリスト自体にしたい場合は、それに応じてそのように使用する限り、問題にはなりません。

これはあなたの質問に答えていますか?

于 2013-01-22T17:44:00.143 に答える