Произвольно выбрать подмножество строк в файле fasta

1

У меня есть файл fasta размером около 18 миллионов. Я привел его в Python и построил построенный словарь, где key = readID и value = sequence, используя инструкции forloop w/if/else.

Я хотел бы теперь случайным образом выбрать подмножество из 10 000 чтений из моего исходного файла. Я думаю, что нужен еще один цикл, но я не уверен, с чего начать.

заранее спасибо

  • 0
    У вас есть файл fastta или fastq? Можете ли вы показать пример данных и код, который вы уже разработали?
Теги:
bioinformatics

1 ответ

2

Когда вы работаете с файлами FASTQ, вы действительно должны использовать BioPython. Он поддерживает чтение файлов FASTQ и превращает их в словарь, а не для цикла. Для получения случайных выборок используйте random модуль из стандартной библиотеки.

from Bio import SeqIO
import random

record_dict = SeqIO.to_dict(SeqIO.parse("example.fastq", "fastq"))
random_reads = random.sample(record_dict.items(), 10000)
for readID, sequence in random_reads:
    print(readID, sequence)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню