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-216256

Anna1364's questions

Martin Hope
Anna1364
Asked: 2023-09-21 07:17:11 +0800 CST

renomeando arquivos com base no padrão correspondente em outro arquivo

  • 5

Eu tenho uma lista de arquivos:

out_CCGCGGTT+CTAGCGCT_R1.fq.gz
out_TTATAACC+TCGATATC_R2.fq.gz
out_GGACTTGG+CGTCTGCG_R1.fq.gz
out_AAGTCCAA+TACTCATA_R2.fq.gz
...

os IDs do adaptador (entre os dois sublinhados, como AACGTTCC+AGTACTCC, AACGTTCC+AGTACTCC) correspondem à primeira coluna de ID.file.txt

head ID.file.txt:
CCGCGGTT+CTAGCGCT   NHL_332_N
TTATAACC+TCGATATC   NHL_333_T
GGACTTGG+CGTCTGCG   NHL_334_T
AAGTCCAA+TACTCATA   NHL_335_T
ATCCACTG+ACGCACCT   NHL_336_N
GCTTGTCA+GTATGTTC   NHL_337_N
CAAGCTAG+CGCTATGT   NHL_338_N
TGGATCGA+TATCGCAC   NHL_339_T
...

Quero renomear os arquivos e substituir os IDs do adaptador pelo ID real (segunda coluna do arquivo de ID) se eles corresponderem e também remover "out" desde o início.

Então, meus nomes finais de arquivos, exemplo:

NHL_332_N_R1.fq.gz
NHL_333_T_R2.fq.gz
NHL_334_T_R1.fq.gz
NHL_335_T_R2.fq.gz

existe alguma maneira de fazer isso no bash?

bash
  • 2 respostas
  • 31 Views
Martin Hope
Anna1364
Asked: 2023-05-19 01:21:24 +0800 CST

filtrar linhas com base em alguns critérios

  • 5

Eu tenho alguns arquivos vcf e quero filtrar algumas variantes. Esta é apenas uma pequena parte do meu vcf: existem algumas linhas de cabeçalho no início do arquivo (começando com ##) e depois variantes (uma linha por variante).

##fileformat=VCFv4.2
##source=combiSV-v2.2
##fileDate=Mon May  8 11:32:53 2023
##contig=<ID=chrM,length=16571>
##contig=<ID=chr1,length=249250621>    
##INFO=<ID=END,Number=1,Type=Integer,Description="End position of the variant described in this record">
##INFO=<ID=SVCALLERS,Number=.,Type=String,Description="SV callers that support this SV">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=DR,Number=1,Type=Integer,Description="# High-quality reference reads">
##FORMAT=<ID=DV,Number=1,Type=Integer,Description="# High-quality variant reads">
#CHROM  POS ID  REF ALT QUAL    FILTER  INFO    FORMAT  Sample
1   10862   id.1    N   <INS>   .   PASS    SVTYPE=INS;SVLEN=101;END=10862;SVCALLERS=cutesv,SVIM    GT:DR:DV    1/1:0:26
1   90258   id.2    N   <INS>   .   PASS    SVTYPE=INS;SVLEN=118;END=90258;SVCALLERS=SVIM,NanoSV    GT:DR:DV    1/1:0:9
1   90259   id.3    N   <INS>   .   PASS    SVTYPE=INS;SVLEN=36;END=90259;SVCALLERS=Sniffles    GT:DR:DV    0/1:44:7
1   185824  id.4    N   <DEL>   .   PASS    SVTYPE=DEL;SVLEN=80;END=186660;SVCALLERS=Sniffles,cutesv    GT:DR:DV    1/1:0:15
1   186241  id.5    N   <DEL>   .   PASS    SVTYPE=DEL;SVLEN=418;END=186662;SVCALLERS=SVIM,NanoSV   GT:DR:DV    1/1:2:12
1   526111  id.6    N   <DEL>   .   PASS    SVTYPE=DEL;SVLEN=624;END=526735;SVCALLERS=Sniffles,cutesv   GT:DR:DV    0/1:8
2   91926078    id.3958 N   <BND>   .   PASS    SVTYPE=BND;SVLEN=.;END=;SVCALLERS=Sniffles,NanoSV   GT:DR:DV    0/1:60:15

Mantendo as linhas de cabeçalho, quero remover as linhas com SVLEN < 100 e aquelas com apenas um SVCALLERS incluído (são dois critérios que ambos devem atender, em outras palavras, quero manter apenas as linhas com SVLEN > 100 e pelo menos dois SVCALLERS ). Além disso, existem algumas linhas que ALT é BND e vcf não fornece nenhum SVLEN para esse tipo de variante, se a linha contiver BND, quero apenas mantê-la se for suportada por dois chamadores. Exemplos: desejo descartar esta variante porque o SVLEN é menor que 100 e apenas um SVCALLERS o detectou

SVTYPE=INS;SVLEN=36;END=90259;SVCALLERS=Sniffles    GT:DR:DV    0/1:44:7
    1   185824  id.4    N   <DEL>   .   PASS

Ou esta linha também, embora haja dois chamadores, mas SVLEN é menor que 100:

SVTYPE=DEL;SVLEN=80;END=186660;SVCALLERS=Sniffles,cutesv    GT:DR:DV    1/1:0:15
    1   186241  id.5    N   <DEL>   .   PASS    

Existe uma maneira fácil de fazer isso? Obrigado

Meu arquivo final deve ficar assim:

##fileformat=VCFv4.2
##source=combiSV-v2.2
##fileDate=Mon May  8 11:32:53 2023
##contig=<ID=chrM,length=16571>
##contig=<ID=chr1,length=249250621>    
##INFO=<ID=END,Number=1,Type=Integer,Description="End position of the variant described in this record">
##INFO=<ID=SVCALLERS,Number=.,Type=String,Description="SV callers that support this SV">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=DR,Number=1,Type=Integer,Description="# High-quality reference reads">
##FORMAT=<ID=DV,Number=1,Type=Integer,Description="# High-quality variant reads">
#CHROM  POS ID  REF ALT QUAL    FILTER  INFO    FORMAT  Sample
1   10862   id.1    N   <INS>   .   PASS    SVTYPE=INS;SVLEN=101;END=10862;SVCALLERS=cutesv,SVIM    GT:DR:DV    1/1:0:26
1   90258   id.2    N   <INS>   .   PASS    SVTYPE=INS;SVLEN=118;END=90258;SVCALLERS=SVIM,NanoSV    GT:DR:DV    1/1:0:9
1   186241  id.5    N   <DEL>   .   PASS    SVTYPE=DEL;SVLEN=418;END=186662;SVCALLERS=SVIM,NanoSV   GT:DR:DV    1/1:2:12
1   526111  id.6    N   <DEL>   .   PASS    SVTYPE=DEL;SVLEN=624;END=526735;SVCALLERS=Sniffles,cutesv   GT:DR:DV    0/1:8
2   91926078    id.3958 N   <BND>   .   PASS    SVTYPE=BND;SVLEN=.;END=;SVCALLERS=Sniffles,NanoSV   GT:DR:DV    0/1:60:15
text-processing
  • 2 respostas
  • 49 Views
Martin Hope
Anna1364
Asked: 2020-02-01 16:13:48 +0800 CST

classificar um arquivo de texto com base em outro arquivo, exceto o cabeçalho

  • 1

Eu tenho um arquivo no qual a primeira e a segunda coluna são ids de indivíduos e o restante são informações de genótipo (devo mencionar que existem DUAS linhas por indivíduo). este arquivo tem uma linha de cabeçalho, mas apenas para as colunas de genótipo, não a primeira e a segunda colunas para os ids dos indivíduos).

        SNP_1 SNP_2 SNP_3 SNP_4 SNP_5
2014TOR010  1   3 1 4 4 3 3 2 3 1
2014TOR010  1   1 1 2 4 3 3 2 4 1 
06SELI0115  1   3 1 4 4 3 3 2 3 1  
06SELI0115  1   3 1 2 4 3 2 2 3 2
2014TOR011  1   3 1 4 4 3 3 2 3 1 
2014TOR011  1   1 1 2 4 1 3 2 4 2 
....

Eu quero classificar este arquivo com base em outro outro arquivo:

head sorted.snps.txt
2014TOR011
06SELI0115
2014TOR010

mas quero manter o cabeçalho. Esta é a minha saída desejada: head out.desired

      SNP_1 SNP_2 SNP_3 SNP_4 SNP_5
2014TOR011  1   3 1 4 4 3 3 2 3 1 
2014TOR011  1   1 1 2 4 1 3 2 4 2
06SELI0115  1   3 1 4 4 3 3 2 3 1  
06SELI0115  1   3 1 2 4 3 2 2 3 2
2014TOR010  1   3 1 4 4 3 3 2 3 1
2014TOR010  1   1 1 2 4 3 3 2 4 1 
....
awk text-processing
  • 1 respostas
  • 111 Views
Martin Hope
Anna1364
Asked: 2019-11-18 16:19:50 +0800 CST

como imprimir apenas as linhas quando os valores das colunas não são idênticos?

  • -1

Eu tenho um grande arquivo de entrada de genótipo de contagem de arquivo. Aqui estão as primeiras linhas:

LocusID f nAlleles x y
2L:8347 1 2 44.3166 -12.2373
2L:8347 1 2 39.2667 -6.8333
2L:31184 1 2 39.2667 -6.8333
2L:31184 1 2 39.2667 -6.8333
2L:42788 1 2 39.2667 -6.8333
2L:42788 1 2 39.2667 -6.8333
2L:42887 1 2 39.2667 -6.8333
2L:42887 1 2 39.2667 -6.8333

A primeira coluna é o ID do locus e para cada locus tenho duas linhas com IDs de locus idênticos. Eu quero manter apenas aqueles cuja coluna x e coluna y não são qualificadas para cada locus.

aqui está minha saída desejada do exemplo acima

out
2L:8347 1 2 44.3166 -12.2373
2L:8347 1 2 39.2667 -6.8333

Alguma ideia de como posso fazer?

text-processing
  • 4 respostas
  • 173 Views
Martin Hope
Anna1364
Asked: 2019-06-19 10:37:35 +0800 CST

como adicionar colchetes em torno de números e operador de atribuição após números

  • 1

Eu tenho um arquivo com ~ 1000 linhas aqui estão as primeiras linhas:

head file.regions.txt
cregions1
cregions2
cregions3
cregions4
cregions5
cregions6
cregions7
cregions8
cregions9
cregions10
...

Eu quero adicionar colchetes ao redor dos números e também "<-" para cada linha após os números! Esta é a minha saída desejada

head file.regions.output.txt
    cregions[1] <-
    cregions[2] <-
    cregions[3] <-
    cregions[4] <-
    cregions[5] <-
    cregions[6] <-
    cregions[7] <-
    cregions[8] <-
    cregions[9] <-
    cregions[10] <-
    ...
text-processing sed
  • 2 respostas
  • 307 Views
Martin Hope
Anna1364
Asked: 2019-06-13 11:08:55 +0800 CST

como gerar uma coluna para um arquivo combina com caracteres exclusivos no nome do arquivo?

  • 1

eu tenho um monte de arquivos

an_ar_chrom10_pos1_sun_td.txt
an_ar_chrom11_pos1_sun_td.txt
an_ar_chrom13_pos1_sun_td.txt
an_ar_chrom17_pos1_sun_td.txt
an_ar_chrom17_pos2_sun_td.txt
...

e cada arquivo tem formato semelhante parece com isso

head an_ar_chrom10_pos1_sun_td.txt
    "region" "start" "stop" "mid" "G1_TD" "G2_TD" "G3_TD" "G4_TD"
    "45000002 - 45010001 " 45000002 45010001 90.010003 NA NA NA NA
    "45010002 - 45020001 " 45010002 45020001 90.030003 -1.19087678772119 -0.947895467698369 -0.724767209958411 -0.957244005901499
    "45020002 - 45030001 " 45020002 45030001 90.050003 NA NA NA NA
    "45030002 - 45040001 " 45030002 45040001 90.070003 NA NA NA NA

Desejo adicionar uma coluna extra a cada arquivo com base em alguns caracteres exclusivos em cada nome de arquivo (por exemplo, chrom10_pos1 para o primeiro arquivo, chrom11_pos1 para o segundo arquivo, etc.

Esta é a minha saída desejada

head an_ar_chrom10_pos1_sun_td_with_id.txt
"region" "start" "stop" "mid" "G1_TD" "G2_TD" "G3_TD" "G4_TD" "ID_
"45000002 - 45010001 " 45000002 45010001 90.010003 NA NA NA NA chrom10_pos1
"45010002 - 45020001 " 45010002 45020001 90.030003 -1.19087678772119 chrom10_pos1-0.947895467698369 -0.724767209958411 -0.957244005901499 chrom10_pos1
"45020002 - 45030001 " 45020002 45030001 90.050003 NA NA NA NA chrom10_pos1
"45030002 - 45040001 " 45030002 45040001 90.070003 NA NA NA NA chrom10_pos1
text-processing
  • 1 respostas
  • 23 Views
Martin Hope
Anna1364
Asked: 2019-04-09 09:48:58 +0800 CST

extrair caracteres entre duas vírgulas?

  • 4

Eu tenho um arquivo com ~ 3 milhões de linhas, aqui estão as primeiras linhas do meu arquivo:

head out.txt
    NA
    NA
    NA
    NA
    NA
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753,gene85754
    gene85752,gene85753,gene85754
    gene85752,gene85753,gene85754
    gene85752,gene85753,gene85754
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752,gene85753
    gene85752
    gene85752

Para aquelas linhas que são separadas por ",", eu quero manter tudo depois da primeira vírgula e antes da segunda vírgula. Esta é a minha saída desejada:

outgood.txt
NA
NA
NA
NA
NA
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85753
gene85752
gene85752
awk text-processing
  • 4 respostas
  • 1769 Views
Martin Hope
Anna1364
Asked: 2019-04-04 08:58:23 +0800 CST

como atribuir valores a intervalos com regiões sobrepostas?

  • -1

Eu tenho dois arquivos grandes, o primeiro arquivo contém alguns intervalos com 85K linhas:

head data.intervals
id  id_uniq numberA numberB
1   g1  5   20
1   g2  6   29
1   g3  17  35
1   g4  37  46
1   g5  50  63
1   g6  70  95
1   g7  87  93
2   g8  3   15
2   g9  10  33
2   g10 60  77
2   g11 90  132

o segundo arquivo contém algumas posições com mais de 2 milhões de linhas:

head data.posiitons
id  number
1   4
1   19
1   36
1   49
1   90
2   1
2   20
2   89
2   93
2   120

O que eu quero fazer é o seguinte: Para cada valor na coluna "number" do arquivo de posição, pesquise se é igual ou entre QUALQUER dos valores do par "numberA" e "numberB" do arquivo data.intervals.

Além disso, para esses valores de par "numberA" e "numberB", seu respectivo "id" deve corresponder ao "id" em data.position. Se tudo isso for verdade, quero inserir o respectivo "id.uniq" na coluna data.intervals da respectiva linha no arquivo data.posiitons.

Há outro problema aqui também: alguns desses intervalos se sobrepõem e uma posição pode estar dentro do intervalo de 2 ou mais de 2 intervalos. Quero atribuí-los a cada intervalo separadamente.

aqui está a saída final que desejo obter (NA significa que a posição não está dentro do intervalo de nenhum intervalo):

   id   number  assigned1
1   4   NA
1   19  g1,g2,g3
1   36  NA
1   49  NA
1   90  g6,g7
2   1   NA
2   20  g9
2   89  NA
2   93  g11
2   120 g11

existe alguma solução para fazer essa tarefa com um script bash ou perl?

text-processing command-line
  • 3 respostas
  • 201 Views
Martin Hope
Anna1364
Asked: 2019-04-02 07:10:12 +0800 CST

remover linhas duplicadas

  • 0

Eu tenho um arquivo com várias linhas, aqui está como ele se parece (apenas um cabeçalho de arquivo):

    "chrom" "startA" "stopA" "genesA" "startB" "stopB" "genesB" "test"
    1 315121 317607 "gene2" 315521 317204 "gene3" 1684
    1 315521 317204 "gene3" 315121 317607 "gene2" 1684
    1 407644 408993 "gene4" 408421 409504 "gene5" 573
    1 407644 408993 "gene4" 408616 410013 "gene6" 378
    1 408421 409504 "gene5" 407644 408993 "gene4" 573
    1 408421 409504 "gene5" 408616 410013 "gene6" 889
    1 408616 410013 "gene6" 407644 408993 "gene4" 378
    1 408616 410013 "gene6" 408421 409504 "gene5" 889
    1 408616 410013 "gene6" 409682 411483 "gene7" 332
....

Existem algumas linhas idênticas (o mesmo par de genes, apenas a ordem das posições inicial e final diferem, mas são exatamente as mesmas) que preciso remover a linha repetida. Por exemplo:

1 315121 317607 "gene2" 315521 317204 "gene3" 1684
1 315521 317204 "gene3" 315121 317607 "gene2" 1684

são os mesmos, é a combinação dos genes 2 e 3 apenas em uma ordem diferente e quero remover um deles.

Aqui está minha saída desejada:

"chrom" "startA" "stopA" "genesA" "startB" "stopB" "genesB" "test"
    1 315121 317607 "gene2" 315521 317204 "gene3" 1684
    1 407644 408993 "gene4" 408421 409504 "gene5" 573
    1 407644 408993 "gene4" 408616 410013 "gene6" 378
    1 408421 409504 "gene5" 408616 410013 "gene6" 889
    1 408616 410013 "gene6" 409682 411483 "gene7" 332

Tem alguma ideia de como posso fazer essa tarefa? Obrigado

text-processing sed
  • 3 respostas
  • 104 Views
Martin Hope
Anna1364
Asked: 2018-11-12 08:28:11 +0800 CST

combinar arquivos que compartilham caracteres semelhantes

  • 0

Eu tenho uma pasta com centenas de arquivos. Esses arquivos são arquivos de pontuação para 26 variáveis ​​ambientais em 510 arquivos de genótipos. Por exemplo, nos exemplos abaixo, _s2. é a segunda variável de ambiente, _s3. é a terceira variável ambiental, etc. _9_ indica que isso é para o 9º arquivo de genótipo.

lfmm_run2_9_s2.3.zscore
lfmm_run2_9_s24.3.zscore
lfmm_run2_9_s25.3.zscore
lfmm_run2_9_s26.3.zscore
lfmm_run2_9_s3.3.zscore
lfmm_run2_9_s4.3.zscore
lfmm_run2_9_s5.3.zscore
lfmm_run2_9_s6.3.zscore
lfmm_run2_9_s7.3.zscore
lfmm_run2_9_s8.3.zscore
lfmm_run2_9_s9.3.zscore
...

Eu quero combinar os arquivos de genótipo para cada variável ambiental. o que estou fazendo é

cat lfmm_run2_{1..510}_s1.3.zscore > env1
cat lfmm_run2_{1..510}_s2.3.zscore > env2
cat lfmm_run2_{1..510}_s3.3.zscore > env3

Mas leva muito tempo para fazer isso para todas as 26 variáveis ​​ambientais, uma por uma. Existe alguma maneira mais rápida de fazer isso tudo junto por um único comando?

text-processing cat
  • 1 respostas
  • 30 Views
Martin Hope
Anna1364
Asked: 2018-10-17 08:02:42 +0800 CST

como copiar colunas do arquivo 2 para o arquivo 1 quando algumas colunas correspondem entre 2 arquivos

  • -1

eu tenho um arquivo

head top_candidates
    25 elevation_e gene1 20 9 0.0246022994932004 5 8 10.9217937824527
    30 elevation_e gene1 59 18 0.0246022994932004 7 12 15.653559774527
    31 elevation_e gene3 34 10 0.0246022994932004 6 9 9.47018201139585
    108 elevation_e gene3 18 6 0.0246022994932004 4 7 6.86419248099239

e outro arquivo

head genes.bed
Chr00c0001  52974   70567   gene1
Chr00c0003  32983   33237   gene2
Chr00c0003  36241   36792   gene3
Chr00c0003  100286  101468  gene4
Chr00c0004  80876   93710   gene5

Quero colar as colunas 1,2 e 3 do segundo arquivo para o primeiro arquivo, quando a coluna 4 do arquivo 2 (gene1,2,..) coincidir com a coluna 3 do arquivo 1.

Minha saída desejada:

head desired
25 elevation_e gene1 20 9 0.0246022994932004 5 8 10.9217937824527 Chr00c0001    52974   70567 
30 elevation_e gene1 59 18 0.0246022994932004 7 12 15.653559774527 Chr00c0001    52974   70567 
31 elevation_e gene3 34 10 0.0246022994932004 6 9 9.47018201139585 Chr00c0003    36241   36792
108 elevation_e gene3 18 6 0.0246022994932004 4 7 6.86419248099239 Chr00c0003    36241   36792
awk text-processing
  • 1 respostas
  • 34 Views
Martin Hope
Anna1364
Asked: 2018-08-14 09:10:37 +0800 CST

como imprimir apenas parte de cada linha que estrela com um caractere específico

  • -2

Eu tenho um arquivo com mais de 10.000 linhas:

head samples   
https://genomequebec.mcgill.ca/nanuqMPS/readSetMd5Download/id/192170/type/READ_SET_FASTQ/filename/HI.2613.007.Custom_0022.ED9_SD2A27-1_180_R1.fastq.gz.md5
https://genomequebec.mcgill.ca/nanuqMPS/readSetMd5Download/id/192170/type/READ_SET_FASTQ_PE/filename/HI.2613.007.Custom_0022.ED9_SD2A27-1_180_R2.fastq.gz.md5
https://genomequebec.mcgill.ca/nanuqMPS/readSetMd5Download/id/192171/type/READ_SET_FASTQ/filename/HI.2613.007.Custom_0021.ED4_KS1A29-7_338_R1.fastq.gz.md5
https://genomequebec.mcgill.ca/nanuqMPS/readSetMd5Download/id/192171/type/READ_SET_FASTQ_PE/filename/HI.2613.007.Custom_0021.ED4_KS1A29-7_338_R2.fastq.gz.md5
https://genomequebec.mcgill.ca/nanuqMPS/readSetMd5Download/id/192168/type/READ_SET_FASTQ/filename/HI.2613.007.Index_18.ED17_MO1A26-7_353_R1.fastq.gz.md5
https://genomequebec.mcgill.ca/nanuqMPS/readSetMd5Download/id/192168/type/READ_SET_FASTQ_PE/filename/HI.2613.007.Index_18.ED17_MO1A26-7_353_R2.fastq.gz.md5
https://genomequebec.mcgill.ca/nanuqMPS/readSetMd5Download/id/192169/type/READ_SET_FASTQ/filename/HI.2613.007.Index_14.ED14_IA2A35-2_310_R1.fastq.gz.md5

Desejo imprimir apenas parte de cada linha que começa com "HI.*"

Esta é a minha saída desejada:

HI.2613.007.Custom_0022.ED9_SD2A27-1_180_R1.fastq.gz
HI.2613.007.Custom_0022.ED9_SD2A27-1_180_R2.fastq.gz
HI.2613.007.Custom_0021.ED4_KS1A29-7_338_R1.fastq.gz
HI.2613.007.Custom_0021.ED4_KS1A29-7_338_R2.fastq.gz
HI.2613.007.Index_18.ED17_MO1A26-7_353_R1.fastq.gz
HI.2613.007.Index_18.ED17_MO1A26-7_353_R2.fastq.gz
awk text-processing
  • 3 respostas
  • 63 Views
Martin Hope
Anna1364
Asked: 2018-07-31 15:07:22 +0800 CST

Como remover os últimos n caracteres de uma coluna específica

  • 0

eu tenho um arquivo

had my.file
    Ha1_00044012__C 1 51035805 10.35639322
    Ha1_00045184__C 1 86676829 10.07929888
    Ha1_00045056__C 1 150178524 19.44076068
    Ha10_00000491__C 10 73473488 10.6038893
    Ha10_00000577__C 10 78976728 12.45451149
    Ha10_00002949__C 10 113658711 14.94370396
    Ha10_00001805__C 10 220068670 10.87452401

Eu quero remover os últimos 3 caracteres "__C" da primeira coluna. eu tentei

awk '{gsub(/[__c ]/,"",$1)}3'

mas remove todos os "_" na coluna um. minha saída desejada deve ser assim:

head desired
Ha1_00044012 1 51035805 10.35639322
Ha1_00045184 1 86676829 10.07929888
Ha1_00045056 1 150178524 19.44076068
Ha10_00000491 10 73473488 10.6038893
Ha10_00000577 10 78976728 12.45451149
Ha10_00002949 10 113658711 14.94370396
Ha10_00001805 10 220068670 10.87452401
awk text-processing
  • 4 respostas
  • 3036 Views
Martin Hope
Anna1364
Asked: 2018-07-14 14:04:22 +0800 CST

converter coluna em linha [duplicado]

  • 1
Essa pergunta já tem respostas aqui :
Conversão de linhas para coluna do arquivo (14 respostas)
Fechado há 4 anos .

eu tenho arquivo

head file1
12 0 
9 3 
12 0 
12 0 
12 0 
12 0 
7 5 

Eu quero converter a segunda coluna em linha

head desired

12
0
9
3
12
0
12
0
12
0
7
5

Obrigado

text-processing
  • 5 respostas
  • 9344 Views
Martin Hope
Anna1364
Asked: 2018-06-12 09:52:54 +0800 CST

encontrar as posições inicial e final de um identificador comum

  • 1

tenho um arquivo assim

chrom_pos   chrom    position        BF         window_id
"Chr01__69500112" 1 69500112 10.1214802 "window_1391"
"Chr01__69500129" 1 69500129 -7.59047205 "window_1391"
"Chr01__69500156" 1 69500156 8.475337 "window_1391"
"Chr01__69500197" 1 69500197 10.37964237 "window_1391"
"Chr01__69500233" 1 69500233 -8.59724917 "window_1391"
...
...
...
"Chr01__87300054" 1 87300054 -2.1058919 "window_1747"
"Chr01__87300107" 1 87300107 2.39553299 "window_1747"
"Chr01__87300686" 1 87300686 -11.03002514 "window_1747"
"Chr01__87300694" 1 87300694 -5.9689038 "window_1747"
"Chr01__87300709" 1 87300709 -5.52387942 "window_1747"
"Chr01__87300800" 1 87300800 -3.63119004 "window_1747"
...
...
...
"Chr17__200219189" 17 200219189 -2.30332074 "window_59705"
"Chr17__200219216" 17 200219216 15.04053029 "window_59705"
"Chr17__200219284" 17 200219284 -3.74266312 "window_59705"
"Chr17__200220333" 17 200220333 -1.91153668 "window_59705"
"Chr17__200241059" 17 200241059 -11.47407263 "window_59705"

para cada janela na coluna window_id , quero saber a posição inicial (a posição em que o window_id começa com ela) e a posição final (a posição em que o window_id termina com ela) e obter uma saída como esta:

window_id      chrom   starting_positon   ending_position
window_1391     1      69500112           69500233 
window_1747     1      87300054           87300800
window_59705    17     200219189          200241059

As entradas para cada janela são ordenadas e também em uma fita positiva.

awk text-processing
  • 1 respostas
  • 71 Views
Martin Hope
Anna1364
Asked: 2018-05-08 10:00:31 +0800 CST

como copiar uma coluna de outro arquivo quando os IDs correspondem (vários arquivos em cada pasta)

  • 0

Acabei de encontrar com uma pergunta. É muito parecido com o que já perguntei antes como copiar uma coluna de outro arquivo quando os ID's coincidem , com algumas diferenças.

Tenho uma pasta (folder1), com vários arquivos:

desired_pos142535974
desired_pos142540918
desired_pos142541687
desired_pos142541814
desired_pos142541910
desired_pos142542976

arquivo de cabeçalho se parece com isso

head desired_pos142535974
1   142535974   196 HG00100
1   142535974   64 HG00101
1   142535974   63 HG00103
1   142535974   26 HG00108
1   142535974   85 HG00110
1   142535974   83 HG00114
1   142535974   148 HG00115

Eu tenho outra pasta (folder2)

desired_output_pos142535974_g
desired_output_pos142540918_g
desired_output_pos142541687_g
desired_output_pos142541814_g
desired_output_pos142541910_g
desired_output_pos142542976_g

cada arquivo na pasta2 se parece com isso

head desired_output_pos142535974_g
    HG00096 0|1
    HG00097 1|0
    HG00099 0|1
    HG00100 1|0
    HG00101 0|1
    HG00102 0|1
    HG00103 1|1

cada arquivo na pasta 1 tem um arquivo idêntico na pasta 2 com o mesmo ID "pos...." (por exemplo, desejado_pos142535974 e desejado_saída_pos142535974_g ambos pertencem ao mesmo indivíduo).

Portanto, desta vez, quero verificar se a última coluna de um arquivo na pasta 1 corresponde à primeira coluna de um arquivo na pasta 2 com o ID "pos" idêntico, adicione a segunda coluna do arquivo 2 ao arquivo1, terminando com algo Curti

head desires_pos142535974
1   142535974   196 HG00100  1|0
1   142535974   64 HG00101   0|1
1   142535974   63 HG00103   1|1
awk text-processing
  • 1 respostas
  • 88 Views
Martin Hope
Anna1364
Asked: 2018-05-05 10:07:22 +0800 CST

extrair linhas de um arquivo que correspondem ao segundo arquivo e mesclá-las como um único arquivo

  • 0

Eu tenho um arquivo que contém algumas posições,

head positions
142541687
142541814
142541910
142542976
142544533
142546366
142548674
142560386

Eu tenho outra pasta contendo 1800 arquivos, cada arquivo pertence a um indivíduo (1800 indivíduos no total). A coluna 2 é a posição e a coluna 4 é o ID individual:

 head NA20507.mapped.ILLUMINA.bwa.TSI.low_coverage.20130415.bam_dp
1   142541687   78 NA20507
1   142535975   79 NA20507
1   142535976   79 NA20507
1   142535977   77 NA20507
1   142535978   78 NA20507
1   142535979   77 NA20507

ou exemplo de outro indivíduo,

head NA20901.mapped.ILLUMINA.bwa.GIH.low_coverage.20120522.bam_dp
1   142541687   135 NA20901
1   142535975   135 NA20901
1   142535976   137 NA20901
1   142535977   138 NA20901
1   142535978   138 NA20901
1   142535979   136 NA20901
1   142535980   135 NA20901

Para cada arquivo individual, quero manter apenas as linhas que contêm as posições do arquivo de posição (a segunda coluna do arquivo individual corresponde ao arquivo de posição), mas quero armazená-la para cada posição separadamente!

   cat NA20507.mapped.ILLUMINA.bwa.TSI.low_coverage.20130415.bam_dp_match142541687
        1   142541687   78 NA20507

No final, quero combinar esses arquivos para todos os indivíduos: Isso é, por exemplo, para a posição 142541687

head desired_pos142541687
1   142541687   78  NA20507
1   142541687   135 NA20901

ou para a posição 142542976;

desired_pos142542976

    1   142535976   79 NA20507
    1   142535976   137 NA20901
awk text-processing
  • 1 respostas
  • 116 Views
Martin Hope
Anna1364
Asked: 2018-05-04 11:11:28 +0800 CST

como copiar uma coluna de outro arquivo quando o ID corresponder

  • 0

Eu tenho 2 arquivos,

head file1

    1   115258827   12 HG00099
    1   115258827   5 HG00100
    1   115258827   8 HG00101
    1   115258827   6 HG00103
    1   115258827   4 HG00108
    1   115258827   3 HG00110
    1   115258827   4 HG00111
    1   115258827   2 HG00114
    1   115258827   8 HG00115
    1   115258827   5 HG00116

e outro arquivo

head file2
HG00096 0|0
HG00097 0|0
HG00099 0|0
HG00100 0|1
HG00101 0|0
HG00102 0|0
HG00103 0|0
HG00105 0|0
HG00106 0|0
HG00107 0|0

Quero verificar se a última coluna do arquivo1 corresponde à primeira coluna do arquivo2, adicione a segunda coluna do arquivo 2 ao arquivo1, terminando com algo como

head desired
1   115258827   12 HG00099 0|0
1   115258827   5 HG00100  0|1
1   115258827   8 HG00101  0|0
1   115258827   6 HG00103  0|0
awk text-processing
  • 2 respostas
  • 420 Views
Martin Hope
Anna1364
Asked: 2018-05-04 09:11:05 +0800 CST

Como selecionar linhas em um determinado intervalo?

  • 2

Eu tenho um arquivo com 2 colunas:

head positions_vcf
4 68264840
4 52784678
4 52788987
4 52795404
4 52800097
4 52801203
4 52804052
4 52804766
4 52804941
4 52805425
4 52807245
4 52809203
4 52809705
4 52810211
4 52810307
4 52811970
4 52812994
4 52814042
4 52814185
4 52815272

Preciso selecionar apenas as linhas em que a segunda coluna está dentro do intervalo de "52804760-52809700". meu output_put desejado

desired_output
4 52804766
4 52804941
4 52805425
4 52807245
4 52809203
grep text-processing
  • 1 respostas
  • 1071 Views
Martin Hope
Anna1364
Asked: 2018-05-03 10:55:56 +0800 CST

como colar parte do nome do arquivo no conteúdo do arquivo?

  • 5

Tenho uma pasta com 1000 arquivos; todos os caracteres antes mapped.ILLUMINA.bwa.GIH.low_coverage.20130415.bam_dpse referem ao ID do indivíduo (por exemplo NA21117,NA21119,NA21126,..)

NA21117.mapped.ILLUMINA.bwa.GIH.low_coverage.20130415.bam_dp
NA21119.mapped.ILLUMINA.bwa.GIH.low_coverage.20130415.bam_dp
NA21126.mapped.ILLUMINA.bwa.GIH.low_coverage.20121211.bam_dp
NA21127.mapped.ILLUMINA.bwa.GIH.low_coverage.20130415.bam_dp
NA21137.mapped.ILLUMINA.bwa.GIH.low_coverage.20120522.bam_dp
NA21142.mapped.ILLUMINA.bwa.GIH.low_coverage.20130415.bam_dp
NA21143.mapped.ILLUMINA.bwa.GIH.low_coverage.20130415.bam_dp

Cada arquivo tem apenas uma linha:

cat NA21143.mapped.ILLUMINA.bwa.GIH.low_coverage.20130415.bam_dp
1   115258827   10

para cada um desses arquivos, quero colar o ID individual no conteúdo do arquivo e obter uma saída como:

1   115258827   10 NA21143

Há alguma forma de fazer isso?

text-processing
  • 4 respostas
  • 1041 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