abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 15:22 | Nová verze

    Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.

    Ladislav Hagara | Komentářů: 0
    dnes 12:55 | Nová verze

    Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).

    Ladislav Hagara | Komentářů: 1
    dnes 02:55 | Nová verze

    Google Chrome 142 byl prohlášen za stabilní. Nejnovější stabilní verze 142.0.7444.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 20 bezpečnostních chyb. Za nejvážnější z nich bylo vyplaceno 50 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    dnes 01:22 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 17:00 | Upozornění

    Národní identitní autorita, tedy NIA ID, MeG a eOP jsou nedostupné. Na nápravě se pracuje [𝕏].

    Ladislav Hagara | Komentářů: 9
    včera 16:44 | IT novinky

    Americký výrobce čipů Nvidia se stal první firmou na světě, jejíž tržní hodnota dosáhla pěti bilionů USD (104,5 bilionu Kč). Nvidia stojí v čele světového trhu s čipy pro umělou inteligenci (AI) a výrazně těží z prudkého růstu zájmu o tuto technologii. Nvidia již byla první firmou, která překonala hranici čtyř bilionů USD, a to letos v červenci.

    Ladislav Hagara | Komentářů: 6
    včera 14:11 | Komunita

    Po Canonicalu a SUSE oznámil také Red Hat, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie).

    Ladislav Hagara | Komentářů: 2
    včera 13:55 | Nová verze

    TrueNAS (Wikipedie), tj. open source storage platforma postavená na Linuxu, byl vydán ve verzi 25.10 Goldeye. Přináší NVMe over Fabric (NVMe-oF) nebo OpenZFS 2.3.4.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | Nová verze

    Byla vydána OpenIndiana 2025.10. Unixový operační systém OpenIndiana (Wikipedie) vychází z OpenSolarisu (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Zajímavý článek

    České základní a střední školy čelí alarmujícímu stavu kybernetické bezpečnosti. Až 89 % identifikovaných zranitelností v IT infrastruktuře vzdělávacích institucí dosahuje kritické úrovně, což znamená, že útočníci mohou vzdáleně převzít kontrolu nad klíčovými systémy. Školy navíc často provozují zastaralé technologie, i roky nechávají zařízení bez potřebných aktualizací softwaru a používají k nim pouze výchozí, všeobecně známá

    … více »
    Ladislav Hagara | Komentářů: 16
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (48%)
     (19%)
     (19%)
     (22%)
     (17%)
     (21%)
     (16%)
     (17%)
    Celkem 285 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: výběr řádků textu

    15.7.2019 11:33 Honza
    výběr řádků textu
    Přečteno: 382×
    Potřeboval bych pomoct se zpravováním textových souborů. Mám dva textové soubory, kdy v jednom (CP002667.1.txt) je seznam kontigů (kusů DNA), které patří konkrétnímu bakteriálnímu druhu. Čísla kontigů jsou oddělena řádky.

    Ve druhém souboru (G7_ml200contigs.fa) jsou vlastní kontigy, které ovšem patří více bakteriálním druhům. Potřebuji z něho tedy vyextrahovat jen některé kontigy, jejichž seznam je v prvním souboru.

    Struktura souboru s kontigy, tedy kusy DNA patřící různým druhům je následující: první řádek je popis s číslem kontigu, následuje RÚZNÝ počet řádků s vlastní sekvencí DNA:

    >contig00001 lenght=194432

    ATTTAATGCCTCCACCACTAACGTTGAATCGTGCTGTTTCTGCAATCGCCAACCAACCAC TTGACGCCGCGCCAGGTTCATCACGATTGCTAAATAATGCCATTCCCCCTGTACCTTCAA

    .

    .

    .

    >contig00002 lenght=187674

    TGTTCGTTATTACAATGAGGAAAGAATACAATTAAAATTAAATGGACTGAGCCCTGTTCA ATACAGAATTCAGTCCTTAAAATAACAGTCTAACTTTTCGGGGTCAGATCACAGTAATAG

    .

    .

    .

    Kdyby byl počet řádků sekvence DNA stejný, šlo by to grepem (tady dostanu první řádky sekvence):

    grep -F -f CP002667.1.txt -A 2 G7_ml200contigs.fa > CP002667.1first2seqlines.txt

    Jak mám ale dostat celou sekvenci kontigu, když má proměnlivý počet řádků (i několik tisíc)? Potřeboval bych nějak říct grepu, aby pokračoval s výběrem řádků za vyhledaným patternem (-A) až do dalšího hlavičkového řádku uvozeného >contig0000X.

    Díky, Honza

    Odpovědi

    15.7.2019 12:22 nn
    Rozbalit Rozbalit vše Re: výběr řádků textu
    Vstup foo.txt:
    >contig00001 lenght=194432
    ATTTAATGCCTCCACCACTAACGTTGAATCGTGCTGTTTCTGCAATCGCCAACCAACCAc
    BBGACGCCGCGCCAGGTTCATCACGATTGCTAAATAATGCCATTCCCCCTGTACCTTCAA
    CTGACGCCGCGCCAGGTTCATCACGATTGCTAAATAATGCCATTCCCCCTGTACCTTCAA
    DTGACGCCGCGCCAGGTTCATCACGATTGCTAAATAATGCCATTCCCCCTGTACCTTCAA
    >contig00002 lenght=187674
    ETGACGCCGCGCCAGGTTCATCACGATTGCTAAATAATGCCATTCCCCCTGTACCTTCAA
    FTGACGCCGCGCCAGGTTCATCACGATTGCTAAATAATGCCATTCCCCCTGTACCTTCAA
    GGTTCGTTATTACAATGAGGAAAGAATACAATTAAAATTAAATGGACTGAGCCCTGTTCB
    >contig00003 lenght=187674
    HTGACGCCGCGCCAGGTTCATCACGATTGCTAAATAATGCCATTCCCCCTGTACCTTCAA
    IGTTCGTTATTACAATGAGGAAAGAATACAATTAAAATTAAATGGACTGAGCCCTGTTCB
    
    Regexp:
    sed -n -e '0,/>contig00002/d;/>contig00003/q;p' foo.txt
    Vystup:
    ETGACGCCGCGCCAGGTTCATCACGATTGCTAAATAATGCCATTCCCCCTGTACCTTCAA
    FTGACGCCGCGCCAGGTTCATCACGATTGCTAAATAATGCCATTCCCCCTGTACCTTCAA
    GGTTCGTTATTACAATGAGGAAAGAATACAATTAAAATTAAATGGACTGAGCCCTGTTCB
    
    15.7.2019 12:23 V.
    Rozbalit Rozbalit vše Re: výběr řádků textu
    Jestli jsem to dobře pochopil ...
    pokud mam čísla řádků, kde se co nachází (=klíč), tak sed by mi měl to, co je mezi tim, dokázat vyexportovat - aneb sed '2,4!d' somefile.txt. jen musim ověřit aktuální meze.
    15.7.2019 13:07 Honza
    Rozbalit Rozbalit vše Re: výběr řádků textu
    Příklad

    Mám soubor s kontigy:

    >contig00001 len=194432

    ATTTAATGCCTCCACCACTAACGTTGAATCGTGCTGTTTCTGCAATCGCCAACCAACCAC

    TTGACGCCGCGCCAGGTTCATCACGATTGCTAAATAATGCCATTCCCCCTGTACCTTCAA

    >contig00002 len=187674

    TGTTCGTTATTACAATGAGGAAAGAATACAATTAAAATTAAATGGACTGAGCCCTGTTCA

    ATACAGAATTCAGTCCTTAAAATAACAGTCTAACTTTTCGGGGTCAGATCACAGTAATAG

    >contig00003 len=113760

    AATTATTTAATTTGCCATGTTTCTTTATTTCTGCACTTTGGCAAAATGGGCAGTTTTTTA

    TTCATATTTCAAAAAGAGGGCTTAAAGCCTTGTACTATAAGGCTTTAAGCCACTTTTTAG

    a potřebuji z toho dostat kontig 2, včetně hlavičkového řádku.

    >contig00002 len=187674

    TGTTCGTTATTACAATGAGGAAAGAATACAATTAAAATTAAATGGACTGAGCCCTGTTCA

    ATACAGAATTCAGTCCTTAAAATAACAGTCTAACTTTTCGGGGTCAGATCACAGTAATAG

    Problém je, že v reálu je v souboru kontigů několik set a seznam kontigů pro výběr několik desítek. Neznám rozsah řádků pro výběr.
    15.7.2019 14:18 V.
    Rozbalit Rozbalit vše Re: výběr řádků textu
    Takže máte ale v jednom souboru formát 1) "klíč podle kterého mohu hledat", 2) data (x řádků), 3) další klíč, podle kterého mohu hledat?
    Takže "grep -n klíč zdroj" a pak extrahuju sedem od indexu k indexu.
    Nebo tohle fakt nejde?
    15.7.2019 14:32 Honza
    Rozbalit Rozbalit vše Re: výběr řádků textu
    "grep -n klíč zdroj" funguje:

    grep -F -f CP002667.1.txt -A 2 G7_ml200contigs.fa > CP002667.1first2seqlines.txt

    To vypíše první dva řádky sekvence kontigů podle seznamu v souboru CP002667.1.txt. Jak ale zapojit do toho sed, aby mě vypsal všechy řádky (proměnlivý počet) sekvence za klíčovým slovem (názvem kontigu) až do hlavičkového řádku dalšího kontigu?
    15.7.2019 14:39 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: výběr řádků textu

    Doporučuji vybodnout se na sed a použít awk.

    Josef Kufner avatar 15.7.2019 13:46 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: výběr řádků textu
    Vybodni se na Bash a Grep. Načti si to do polí objektů v Pythonu a udělej, co potřebuješ. Ušetří ti to spoustu času až budeš chtít další trochu komplikovanější chování. Shell na tohle není stavěný. Navíc ti to otevře další možnosti vizualizace a pokročilého zpracování.
    Hello world ! Segmentation fault (core dumped)
    15.7.2019 14:26 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: výběr řádků textu

    Šel bych na to tak, že bych napsal awk skript:

    • contig.awk:
      #!/usr/bin/awk -f
      BEGIN { output = 0
              while (getline key < key_file) ++keys[key] }
      $0 in keys { print $0; output = 1; next }
      /^>contig/ { output = 0; next }
      output { print $0 }
      

    Skript by měl být spustitelný:

    chmod +x contig.awk
    

    Skript bere soubor se seznamem hlaviček jako argument (proměnnou) key_file, zatímco velký soubor, ze kterého má vyfiltrovat sekvence, bere jako standardní vstup a píše pak na standardní výstup.

    Když budu mít následující dva soubory, …

    • contigs.txt:
      >contig00001 len=194432
      ATTTAATGCCTCCACCACTAACGTTGAATCGTGCTGTTTCTGCAATCGCCAACCAACCAC
      TTGACGCCGCGCCAGGTTCATCACGATTGCTAAATAATGCCATTCCCCCTGTACCTTCAA
      >contig00002 len=187674
      TGTTCGTTATTACAATGAGGAAAGAATACAATTAAAATTAAATGGACTGAGCCCTGTTCA
      ATACAGAATTCAGTCCTTAAAATAACAGTCTAACTTTTCGGGGTCAGATCACAGTAATAG
      >contig00003 len=113760
      AATTATTTAATTTGCCATGTTTCTTTATTTCTGCACTTTGGCAAAATGGGCAGTTTTTTA
      TTCATATTTCAAAAAGAGGGCTTAAAGCCTTGTACTATAAGGCTTTAAGCCACTTTTTAG
      
    • keys.txt:
      >contig00001 len=194432
      >contig00003 len=113760
      

    …spustím to celé takto:

    ./contig.awk -v key_file=keys.txt < contigs.txt
    

    To^^^ mi vypíše (celé) dvě sekvence z contigs.txt podle klíčů v keys.txt, včetně těch klíčů a bez ohledu na délku sekvencí. Pokud jsem zadání správně pochopil, tohle by mělo být ono.

    Samozřejmě by sis to musel trochu upravit v případě, že formát souborů umožňuje prázdné řádky a/nebo komentáře.

    15.7.2019 14:52 Honza
    Rozbalit Rozbalit vše Re: výběr řádků textu
    Super, tohle dělá přesně to co potřebuju. Díky moc za pomoc. I všem ostatním.
    15.7.2019 15:08 PetebLazar
    Rozbalit Rozbalit vše Re: výběr řádků textu
    A pokud by to snad nekoho z mistnich zajimalo, v prikladu patrne slo mj. o bakterii "Gallibacterium anatis UMN179". ;-)
    15.7.2019 17:25 Honza
    Rozbalit Rozbalit vše Re: výběr řádků textu
    Bingo! Blast rulezzzz (https://blast.ncbi.nlm.nih.gov/Blast.cgi)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.