0

だから私はこの用語のリストを持っています

[('GO:0090141', 1), ('GO:0030308', 1), ('GO:0000266', 1), ('GO:0016881', 1), ('GO:0031307', 1)]
[('GO:0050681', 1), ('GO:0031491', 1), ('GO:0008270', 1), ('GO:0003677', 1), ('GO:0070936', 1)]
[('GO:0050681', 1), ('GO:0031491', 1), ('GO:0008270', 1), ('GO:0003677', 1), ('GO:0070936', 1)]
[('GO:0050681', 1), ('GO:0031491', 1), ('GO:0008270', 1), ('GO:0003677', 1), ('GO:0070936', 1)]
[('GO:0016055', 1), ('GO:0016363', 1), ('GO:0008270', 1), ('GO:0003676', 1), ('GO:0003677', 1)]
[('GO:0016607', 1), ('GO:0016605', 1), ('GO:0006351', 1), ('GO:0005515', 1), ('GO:0016925', 1)]
[('GO:0045842', 1), ('GO:0000781', 1), ('GO:0019789', 1), ('GO:0007067', 1), ('GO:0007049', 1)]
[('GO:0016607', 1), ('GO:0016605', 1), ('GO:0006351', 1), ('GO:0005515', 1), ('GO:0016925', 1)]
[('GO:0006457', 1), ('GO:0019221', 1), ('GO:0000087', 1), ('GO:0010827', 1), ('GO:0042405', 1)]
[('GO:0003676', 1), ('GO:0008270', 1), ('GO:0019789', 1)]
[('GO:0019221', 1), ('GO:0050681', 1), ('GO:0019899', 1), ('GO:0008270', 1), ('GO:0003676', 1)]
[('GO:0008022', 1), ('GO:0019048', 1), ('GO:0019899', 1), ('GO:0016881', 1), ('GO:0045202', 1)]
[('GO:0008022', 1), ('GO:0019048', 1), ('GO:0019899', 1), ('GO:0016881', 1), ('GO:0045202', 1)]
[('GO:0016881', 1), ('GO:0016874', 1), ('GO:0019789', 1)]

「1」を取得せずに「GO」情報だけのリストを取得するにはどうすればよいですか....だから、GO:000221、GO:000241などだけが必要です...また、GO用語の頻度を取得するのを手伝ってもらえますか. ...など...GO:0008270のように...リストに7回表示されます

4

3 に答える 3

2

タプルのリストがいくつかあるので、リスト内包表記を使用して各タプルの 2 番目の要素を抽出できます (リストが と呼ばれるとしますl)。

 g = [e[0] for e in l]

用語だけのリストをGO取得したら、たとえば ( https://stackoverflow.com/a/893499を参照)、

 from collections import Counter
 freqs = Counter(g)
于 2013-03-18T01:03:12.407 に答える
1

list_of_GO = [item[0] for item in old_list]

あなたが持っているのlistは 2-tuples (GO:XXX, 1)です。上記のリスト内包表記はGO:XXX、old_list 内のすべてのタプルの最初の item( ) のみを使用して新しいリストを作成します。

単一のリストだけでなく、たくさんのリストがあるようです。あなたのコードをもっと見ることができますか?

コードの頻度を数えるには、使用するcollections.Counterか、自分で数えることができます。list.count(item)

于 2013-03-18T01:01:32.680 に答える
0

データが「行」で設定されていると仮定すると、いわば、モジュールのCounterオブジェクトを使用できます。collections

>>> from collections import Counter
>>> counter = Counter()
>>> data = [
        # Each row of data listed above
        [('GO:0090141', 1), ('GO:0030308', 1), ('GO:0000266', 1), ('GO:0016881', 1), ('GO:0031307', 1)],
        # Etc...
>>> for row in data:
...     counter.update(x[0] for x in row)
...
>>> print counter
Counter({'GO:0008270': 6, 'GO:0050681': 4, 'GO:0003677': 4, 'GO:0016881': 4, 'GO
:0019899': 3, 'GO:0031491': 3, 'GO:0003676': 3, 'GO:0070936': 3, 'GO:0019789': 3
, 'GO:0008022': 2, 'GO:0019221': 2, 'GO:0045202': 2, 'GO:0016607': 2, 'GO:001660
5': 2, 'GO:0019048': 2, 'GO:0016925': 2, 'GO:0006351': 2, 'GO:0005515': 2, 'GO:0
045842': 1, 'GO:0006457': 1, 'GO:0030308': 1, 'GO:0000266': 1, 'GO:0000087': 1,
'GO:0031307': 1, 'GO:0007067': 1, 'GO:0007049': 1, 'GO:0090141': 1, 'GO:0016363'
: 1, 'GO:0000781': 1, 'GO:0016874': 1, 'GO:0016055': 1, 'GO:0010827': 1, 'GO:004
2405': 1})
于 2013-03-18T01:06:01.243 に答える