adicionando PATHs para vários programas

1

Eu tenho uma grande lista de programas (samtools, annovar, bra, bedtools etc) em uma pasta "Programas".

Eu tenho lido muitos posts sobre como exportar o caminho, para que eu não precise identificar o caminho completo para o programa da minha pasta de trabalho. No entanto, ainda não funciona, acho que porque estou misturando tudo.

Existe um script perl na pasta variant_effect_predictor que eu quero avaliar de outras pastas sem digitar o caminho completo para este script.

Estou trabalhando no OS X. Adicionei meu ~/.profile a seguir:

export PATH=/Users/pics/Desktop/MyDocuments/Programms/ensembl-tools-release-78/scripts/variant_effect_predictor:$PATH

de alguma forma isso me diz:

pik:Annotation pic$ perl variant_effect_predictor.pl -custom C0066PH1.H3K4me1.ppqt_macs2_broad_v2.20130819.bed.gz,BED_annotation,BED,overlap,1 -i SNPs_vep_input.txt --cache --force_overwrite --symbol 
Can't open perl script "variant_effect_predictor.pl": No such file or directory

Portanto, o caminho não foi exportado ou adicionado. Como posso consertar isso?

    
por Anni 04.03.2015 / 12:58

3 respostas

2

Quando você executa como perl variant_effect_predictor.pl , está dizendo ao executável perl que um script chamado variant_effect_predictor.pl está localizado no diretório atual e para executá-lo.

Se for executável ( chmod +x /Users/pics/Desktop/MyDocuments/Programms/ensembl-tools-release-78/scripts/variant_effect_predictor/variant_effect_predictor.pl ) e o interior do script começar com um shebang (" #!/usr/bin/perl " ou similar na primeira linha), você poderá deixar a parte perl fora do início do script. comando que fará com que bash pesquise $PATH , o que você está querendo.

    
por 04.03.2015 / 13:02
1

Como Bratchley já escreveu, você pode deixar de fora a parte "perl" do seu comando se o seu script perl for executável e tiver a linha de shebang correta.

Como alternativa, você pode usar a opção de linha de comando -S para o perl para permitir que ele procure o variant_effect_predictor.pl em seu PATH:

-S

makes Perl use the PATH environment variable to search for the program unless the name of the program contains path separators.

Assim, sua linha de comando começaria assim:

perl -S variant_effect_predictor.pl -custom C0066PH1.H3...  
    
por 04.03.2015 / 13:13
0

Para configurar adequadamente seu ambiente, você deve usar .bashrc não .profile

Se você tiver um arquivo .bashrc (a maioria das distribuições modernas está usando .bashrc por padrão agora) muito provavelmente há uma instrução IF no arquivo .profile que verificará a existência do arquivo .bashrc e não processará o arquivo .bashrc. arquivo .profile ainda mais quando um arquivo .bashrc é encontrado.

Conteúdo de um arquivo .profile típico com a instrução IF "check for .bashrc"

recorte de um arquivo .profile ...

# if running bash
if [ -n "$BASH_VERSION" ]; then
  # include .bashrc if it exists
  if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
  fi
fi 

No arquivo .bashrc, adicione esta linha para adicionar entradas adicionais à sua variável PATH

$ PATH="$PATH:user_path_1:user_path_2:user_path_3"

$ PATH manterá a variável de caminho existente e para adicionar outros caminhos apenas use os dois pontos [:] antes de cada caminho adicional.

Como alternativa, você pode usar vários arquivos .bashrc para ajustar-se a qualquer configuração de ambiente necessária. Basta criar um arquivo e nomeá-lo com outro nome .bash_other_rc e, em seguida, chamá-lo da linha de comando como assim ...

$ bash -f .bash_other_rc

Isso iniciará uma sessão bash com as variáveis, aliases, etc. que você precisa para aquela sessão.

Espero que isso ajude ...

    
por 05.03.2015 / 02:13

Tags