У меня есть файл вкладок, и я хочу разделить функции (восходящие, нисходящие, нисходящие, аннотировать или ...) гена на стандартные функции. последние два столбца - это столбцы результатов для cond_a и cond_b, которые я хочу получить. Я писал код, чтобы иметь возможность сохранять каждую строку в кортеже, а затем искать в кортежах и выполнять деления, но меня это сбивало с толку. Как я могу сделать это на Python?
for line in open(myfile,"r").readlines():
Fld = line.strip().split("\t")
gene,feature,cond_a,cond_b= Fld[0],Fld[1],int(Fld[2]),int(Fld[3])
gene feature cond_a cond_b
A upstream 2 5 2/5 5/8
A standard 5 8 5/5 8/8
C standard 4 23 4/4 23/23
D downstrs 3 1 3/9 1/5
D standard 9 5 9/9 5/5
H standard 2 9 2/2 9/9
H downupst 1 2 1/2 2/9
H annotate 4 8 4/2 8/9
2 ответа
Трудно точно сказать, что вы хотите (для справки в будущем лучше опускать технические детали, относящиеся к полевым работам, а не к программированию - это облегчит задачу тем из нас, кто ничего не знает о генах, чтобы помочь), и я не могу расскажите, как вы точно рассчитываете эти два столбца. Однако это похоже на работу для Pandas. Вы бы сделали такой простой пример:
import pandas as pd
data = {'gene':['A', 'C', 'D'], 'cond_a':[2,3,4], 'cond_b':[5,6,7]}
df = pd.DataFrame(data)
df['new_col'] = df['cond_a'] / df['cond_b']
Для ваших данных вы должны загрузить его с помощью:
df = pd.read_csv(myfile, delimiter='/t')
Как бы вы ни рассчитывали свои другие столбцы, вы можете сделать это довольно легко с помощью Pandas. Кроме того, вы можете группировать по различным категориям для работы с подмножествами и так далее.
Спасибо, но это не то, что я хочу вычислить, давайте проясним вопрос, первые 2/5 делят первую строку (2) на вторую строку (5) (стандарт гена A). 5/5 - это деление на себя, потому что стандартно 1. последняя строка (4/2) делит последнюю строку на строку с номером 6
А _____ вверх по течению _____ 2 _____ 2/5
А _____ стандарт _____ 5 _____ 5/5
C _____ стандарт _____ 4 _____ 4/4
D _____ downstrs ____ 3 _____ 3/9
Д _____ стандарт _____ 9 _____ 9/9
H _____ стандарт _____ 2 _____ 2/2
H _____ downupst ____ 1 _____ 1/2
H _____ аннотировать _____ 4 _____ 4/2
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.