Как получить строку между координатами в другой строке с координатами начала и конца, заданными столбцом в кадре данных - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь получить последовательности из генома, заданного координатами в кадре данных.

Мне нужно взять начальную координату и конечную координату, использовать координаты, чтобы получить последовательность в строке и добавить это последовательность в список.

Вот как выглядят мои df и строка

# Import pandas library 
import pandas as pd   
# initialize list of lists 
data = [['x', 3, 13], ['y', 5, 15], ['z', 7, 17]]   
# Create the pandas DataFrame 
df = pd.DataFrame(data, columns = ['Name', 'Start', 'Stop'])   
# print dataframe. 
df 
sequence = "ATGTCGCCGCTGCTGCTGTGTCGTAGTCAGC"

Я хочу l oop через координаты начала и остановки в кадре данных и использовать координаты для выделить секцию последовательности и добавить секцию в новый список

Я сделал это:

subseq = []

a = sequence[df.iloc[1,1]:df.iloc[1,2]]

subseq.append(a)

Как мне сделать это с l oop автоматически через фрейм данных ( idealsl однако я бы назвал столбец по имени столбца)

Я использую python

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Вы можете использовать понимание списка:

[sequence[a:b] for a,b in zip(df['Start'], df['Stop'])]

Вывод:

['TCGCCGCTGC', 'GCCGCTGCTG', 'CGCTGCTGCT']

Вы также можете добавить это в свой фрейм данных:

df['sub'] = [sequence[a:b] for a,b in zip(df['Start'], df['Stop'])]

Вывод:

  Name  Start  Stop         sub
0    x      3    13  TCGCCGCTGC
1    y      5    15  GCCGCTGCTG
2    z      7    17  CGCTGCTGCT
0 голосов
/ 07 мая 2020

Я не думаю, что вам нужен фрейм данных.

Я бы oop через ваши необработанные данные:

data = [['x', 3, 13], ['y', 5, 15], ['z', 7, 17]]   
sequence = "ATGTCGCCGCTGCTGCTGTGTCGTAGTCAGC"

output = []
for d in data:
    output.append(sequence[d[1]:d[2]])

для более лаконичности:

data = [['x', 3, 13], ['y', 5, 15], ['z', 7, 17]]   
sequence = "ATGTCGCCGCTGCTGCTGTGTCGTAGTCAGC"

output = [sequence[d[1]:d[2]] for d in data]

Оба этих вывода:

['TCGCCGCTGC', 'GCCGCTGCTG', 'CGCTGCTGCT']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...