The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Правка header в fasta"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Правка header в fasta"  +/
Сообщение от labradorka2112 (ok), 12-Авг-23, 12:22 
Добрый день! Вероятно, совсем простая задачка, решается многими способами, но я что-то пока не нашел подходящего.

Входные данные:
есть файл txt, в нем, в том числе, есть строки вида >NC00001 (прочее из этих строк удалено sed -r 's/xxxxx.+//' ) файл.ext
Таких строк 5572 штуки (всего строк в файле существенно больше), т.е. имеем диапазон строк указанного вида >NC00001 - >NC05572, между которыми другие строки. Количество других строк между целевыми строками вида >NC00001 рандомное, но уменьшается к концу файла.

Задача:
получить уникальные числа после константного тэга >NC, так чтобы строка вида >NC****** встечались только один раз в файле )

Условия: 1) нужно чтобы в числовой части строки присутствовало не более одной цифры 0
         2) В подстановке допустимы только цифры, не более 5-6 знаков(цифр) после >NC.
         3) Могут быть в порядке возрастания
         3) нужна проверка вхождения, т.е. что каждый из полученных идентификаторов уникален.
         4) решить на bash, можно и python

Что нашел: если вместо 0000 тупо клеить какие-нибудь числа, с учетом количества строк,очевидно, возникают повторы.
Рассматриваю sed, rev, tac, seq, grep, uniq
Из любопытного, но пока не разобрался : cut -d'' -f1|sort|uniq-c|grep -Ev'^[[:space:]]+1[[:space:]]'

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Правка header в fasta"  +/
Сообщение от labradorka2112 (ok), 12-Авг-23, 15:13 
>[оверквотинг удален]
>          3) Могут быть
> в порядке возрастания
>          3) нужна проверка
> вхождения, т.е. что каждый из полученных идентификаторов уникален.
>          4) решить на
> bash, можно и python
> Что нашел: если вместо 0000 тупо клеить какие-нибудь числа, с учетом количества
> строк,очевидно, возникают повторы.
> Рассматриваю sed, rev, tac, seq, grep, uniq
> Из любопытного, но пока не разобрался : cut -d'' -f1|sort|uniq-c|grep -Ev'^[[:space:]]+1[[:space:]]'

Написал говнокод генератора для подстановки в строки, но мне нужны 6-ти значные числа, а тут цифры только 1-9 судя по первой странице.

import random

f = open('randlist.txt', "w")
S = ""
D = (random.sample(range(321456, 879456), k=5675))
for i in D:
    S = S + str(i)
f.write('\n'. join(S))
f.close()

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру