У меня есть текстовый файл с genecodes разделенной табуляцией, подобной этой структуру:Выберите один случайный элемент из каждого списка вложен в списке, различного между ними, и создать список п раз (ReSampling)
ENSG00000111111 ENSG00000111111 ENSG00000111111 ENSG00000111555
ENSG00000111111 ENSG00000111111 ENSG00000111111 ENSG00000111222
ENSG00000111111 ENSG00000111111 ENSG00000111111 ENSG00000333555
и я хочу создать список с , выбрав из каждой строки один случай случайным образом и выбранные элементы должны быть РАЗЛИЧИЕ МЕЖДУ ИХ. В конце я хочу повторить процесс п раз, чтобы получить выходной файл с этой структурой:
ENSG00000111111 ENSG00000111222 ENSG00000333555
ENSG00000111555 ENSG00000111222 ENSG00000333555
ENSG00000111555 ENSG00000111222 ENSG00000111111
...
(каждую строку соответствует каждому генерируемому списку случайных элементов) . На данный момент у меня есть этот скрипт: где: all_cand является входной текстовый файл
#!/usr/bin/python
import sys
import os
import random
from itertools
import numpy as np
def rand_cand (all_cand):
cand_list= []
main_list = []
cand_file= open(all_cand, "r")
for _ in itertools.repeat(None, 10):
for line in cand_file:
cand_rows = line.split()
cand_list.append(cand_rows)
for item in cand_list:
aux_old = np.random.choice(item, replace=False)
if not aux_old in main_list:
main_list.append(aux_old)
else:
aux_new = np.random.choice(item, replace=False)
main_list.append(aux_new)
print(main_list)
, относящиеся к моему сценарию, каждый сгенерированный список содержит повторы, и я думаю, что это связано с Если петля. Я пытаюсь сравнить каждый элемент, который будет добавляться в список тем, которые уже сохранены, но он не ... так что один из моих неправильных выходов:
ENSG00000111111 ENSG00000111111 ENSG00000111111
ENSG00000111111 ENSG00000111111 ENSG00000111222
ENSG00000111111 ENSG00000111111 ENSG00000111111
ENSG00000111555 ENSG00000111111 ENSG00000111111
...
Спасибо заранее !, я надеюсь быть ясно, с объяснением моей проблемы
Спасибо за ваш ответ. Я уже использовал ваш скрипт, но он не дает никакого результата ... – Gaferolo
@ Gaferolo: там была крошечная ошибка. Теперь это исправлено. Проверьте это! – inspectorG4dget
Я уже изменил крошечную ошибку, но она все еще не работает. вы его протестировали? – Gaferolo