hpux: я хочу видеть задания очереди печати

В вашем вопросе говорится, что столбец 3 содержит имена генов. Я предполагаю, что на самом деле вы ввели следующие данные:

column1 column2 Rv0729,Rv0993,Rv1408  
column1 column2 Rv0162c,Rv0761c,Rv1862,Rv3086  
column1 column2 Rv2790c

Каждое имя гена в столбце 3 содержит ведущую подстроку Rv. Таким образом, мы можем посчитать их в python следующим образом:

$ python -c  "import sys;print map(lambda x: x.split()[2].count('Rv'),sys.stdin.readlines())"  < input.txt               
[3, 4, 1]

Полученный список показывает количество генов в каждой строке, в соответствующем порядке. Если мы хотим сделать список более подробным и учесть возможность того, что гены могут не содержать строку "Rv" (но сохранить предположение, что столбец 3 - это строка значений, разделенных запятыми), мы можем сделать следующее:

#!/usr/bin/env python
import sys
with open(sys.argv[1]) as fd:
    for index,line in enumerate(fd):
        columns = line.strip().split()
        num_genes=len(columns[2].split(","))
        print("Line "+str(index)+" contains "+str(num_genes))

Тестовый запуск:

$ ./count_genes.py input.txt                                                                                             
Line 0 contains 3
Line 1 contains 4
Line 2 contains 1
1
22.10.2016, 02:10
0 ответов

Теги

Похожие вопросы