AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-589662

Matteo's questions

Martin Hope
Matteo
Asked: 2025-04-13 20:51:02 +0800 CST

como passar variáveis ​​de ambiente para singularity exec

  • 7

Tenho um BASHpipeline que em determinado momento executa um Singularitycontêiner com singularity exec da seguinte maneira:

singularity exec --bind `pwd`:/folder --bind $d:/results <image>.sif <tool_command> -i /folder/<file>.fastq -v /results/<output>/<file>.vcf -r /folder/<reference>.fna -s <vcf_sample_name> -j 24 -t 24 -o /results/<output_file_suffix>

Como estou executando vários experimentos ao mesmo tempo com uma matriz, estou redefinindo os experimentos com uma variável de ambiente que desejo adicionar ao <output_file_suffix>; funciona para todas as etapas do pipeline, mas Singularityparece que não consegue ver a(s) variável(is) que estou definindo no meu script...

Alguém tem alguma dica de como fazer isso? Pesquisei um pouco, mas --envparece que não está funcionando. Agradeço desde já!

bash
  • 1 respostas
  • 290 Views
Martin Hope
Matteo
Asked: 2025-02-11 00:25:41 +0800 CST

canalizar para uniq de uma variável que não mostra a saída desejada

  • 5

Tenho um pipeline usando array jobs e preciso alterar o número de entradas para algumas etapas. Pensei em testar, uniqjá que a única parte que muda nas minhas pastas são os últimos quatro caracteres (a parte hap no exemplo). Então, todos os meus caminhos parecem algo como:

/mnt/nvme/user/something1/hap1
/mnt/nvme/user/something1/hap2
/mnt/nvme/user/something2/hap1
/mnt/nvme/user/something2/hap2

e o que estou fazendo é o seguinte:

DIR=( "/mnt/nvme/ungaro/something1/hap1" "/mnt/nvme/ungaro/something1/hap2" "/mnt/nvme/ungaro/something2/hap1" "/mnt/nvme/ungaro/something2/hap2" )

for dir in "${DIR[@]}"; do echo $dir | sed 's#/hap[0-9]##' | uniq; done

Mas a saída resultante sempre exibe todos os elementos na variável sem recolher as linhas duplicadas após remover a parte hap de cada uma delas.

Provavelmente estou esquecendo de algo, poderia ser que as forforças imprimam todas as linhas de qualquer maneira. Se sim, há uma maneira de atingir o resultado desejado em um comando de linha única?

bash
  • 2 respostas
  • 33 Views
Martin Hope
Matteo
Asked: 2024-11-25 21:34:48 +0800 CST

duplicar colunas com AWK e separá-las por tabulação

  • 7

Tenho um arquivo grande com o seguinte formato tab-separado:

#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  recombination
chr1    586001  >63041388>63041391      G       A       60      .       AC=80;AF=0.3125;AN=256;AT=>63041388>63041390>63041391,>63041388>63041389>63041391;NS=3;LV=0     GT    1|2|3|

Agora, a última coluna, a décima, aparece como muitos números divididos por uma barra vertical |; no entanto, o que desejo alcançar é o seguinte:

#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT  recombination
chr1    586001  >63041388>63041391      G       A       60      .       AC=80;AF=0.3125;AN=256;AT=>63041388>63041390>63041391,>63041388>63041389>63041391;NS=3;LV=0     GT    1|1    2|2    3|3

Consegui separar as colunas tabsubstituindo o |símbolo, o que me deixa com a forma de duplicá-las e adicionar novamente os |números entre elas. Tentei algumas vezes com forloops, mas o melhor que consegui fazer foi imprimir apenas duas colunas como tal:

1    1
2    2
3    3
...

caso contrário, printfobtenho uma saída de uma linha, mas não consigo manter o contador com o mesmo valor da coluna inicial... Qualquer ajuda é muito apreciada, obrigado antecipadamente!

text-processing
  • 2 respostas
  • 163 Views
Martin Hope
Matteo
Asked: 2024-08-10 16:13:42 +0800 CST

a execução de comandos com base no tamanho do arquivo falha sem problemas aparentes

  • 7

Eu estava trabalhando em um trabalho de array para um pipeline pequeno e precisava de uma maneira de executar um comando específico com base no tamanho do arquivo. Encontrei este post e similares que descrevem como fazer isso. No momento estou usando o seguinte:

find $d/*.fasta -size +100M -exec sh -c '
     chromap -i -r $1 -o $1.index

     chromap --preset hic -x $1.index -r $1 -1 $d/hi-c/${ID}_1.fq.gz -2 $d/hi-c/${ID}_2.fq.gz --SAM -o /dev/stdout -t 48 | \
         samtools view -bS -@ 48 | samtools sort -n -@ 48 | samtools view -h | sed -e "s/\/.//" | samtools view -bS -o ${ID}.bam -@ 48
     ' sh {} \;

que, além da bioinfo e das ferramentas utilizadas que funcionam, parece executar apenas a primeira linha de comando - chromap -i -r $1 -o $1.index. Então, por algum motivo, ao entrar no segundo conjunto de instruções, o script retorna o seguinte:

Não é possível encontrar o arquivo de sequência /hi-c/_1.fq.gz

indicando que não tem conhecimento das variáveis ​​de ambiente que usei com sucesso até agora ou não pode calcular mais de duas operações ao mesmo tempo? Não tenho pistas ... tentei também algo mais simples, por exemplo

mkdir $d/scaffolding
find $d/*.fasta -size +100M -exec sh -c '
     chromap -i -r $1 -o $1.index && mv $1 $1.index $d/scaffolding
' sh {} \;

mas Bash reclama de: mv: the destination '/scaffolding' is not a directory.

O que devo fazer para que um (ou ambos) funcione? Estou faltando alguma coisa, por favor, se alguém tiver alguma ideia sobre esse assunto, me avise! Desde já, obrigado.

bash
  • 2 respostas
  • 315 Views
Martin Hope
Matteo
Asked: 2023-10-23 19:48:52 +0800 CST

wget — baixa vários arquivos em vários nós em um cluster

  • 6

Olá, estou tentando baixar um grande número de arquivos de uma vez; 279 para ser mais preciso. Estes são BAM grandes (~ 90 GB) cada. O cluster onde estou trabalhando possui vários nós e felizmente posso alocar várias instâncias de uma vez.

Dada esta situação, gostaria de saber se posso usar wgetum arquivo em lote ( veja o exemplo abaixo) para atribuir cada download a um nó separado para realizar de forma independente.

arquivo_batch.txt

<https_link_1> -O DNK07.bam
<https_link_2> -O mixe0007.bam
<https_link_3> -O IHW9118.bam
.
.

Em princípio, isso não só irá acelerar as coisas, mas também evitar que a execução falhe, já que o tempo de espera para esta execução é de 24h, e não será suficiente baixar todos esses arquivos em uma única máquina consecutivamente.

Esta é a aparência do meu script BASH:

#!/bin/bash
#
#SBATCH --nodes=279 --ntasks=1 --cpus-per-task=1
#SBATCH --time=24:00:00
#SBATCH --mem=10gb
#
#SBATCH --job-name=download
#SBATCH --output=sgdp.out
##SBATCH --array=[1-279]%279
#
#SBATCH --partition=<partition_name>
#SBATCH --qos=<qos_type>
#
#SBATCH --account=<user_account>

#NAMES=$1
#d=$(sed -n "$SLURM_ARRAY_TASK_ID"p $NAMES)

wget -i sgdp-download-list.txt

Como você pode ver, eu estava pensando em usar um array job(não tenho certeza se funcionará); alternativamente, pensei em alocar 279 nós esperando que o SLURM fosse inteligente o suficiente para enviar cada download para um nó separado (não tenho certeza...). Se você conhece uma maneira de fazer isso de forma eficiente, qualquer sugestão é bem-vinda. Desde já, obrigado!

bash
  • 3 respostas
  • 73 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve