Como combinar uma coluna de File1 para obter suas sequências fasta correspondentes no Arquivo 2?

1

Posso perguntar como combinar todos os valores da primeira coluna em Arquivo com o texto da linha no Arquivo 2 para que eu possa copiar as sequências fasta de todos os IDs do objeto no Arquivo 1?

Arquivo 1.csv

Object_ID, Length, Assignment
NODE_142_length_92872_cov_11.2497,92872,2005469
NODE_405_length_50717_cov_10.7964,50717,82654
NODE_775_length_33402_cov_18.9306,33402,1147
NODE_1008_length_27630_cov_17.7829,27630,1184

Arquivo 2 fasta.file

>NODE_1_length_501653_cov_19.284
TGGTGTGAGAGGCGCACCTCGCTAACTTTTCAGTTAGCGAGGCCGTCTACTCGATTAGCT
GTTATGAGCCCGACGAGCTACCAACTGCTCCATCCCGCGATATTGTGATGCAAAGGTAAG
>NODE_142_length_92872_cov_11.2497
ATTAACTACTAAGTTACAAATTTTAGTAGCTGTCCAGTTTAAAGGAAGTATTTCATATTT
TCGCTTACGTTAAATAGGAAAAGCAAGTTCTTTTTTGAGGTACCCAGTGAGTCTGATTTT

ARQUIVO DE SAÍDA

>NODE_142_length_92872_cov_11.2497
ATTAACTACTAAGTTACAAATTTTAGTAGCTGTCCAGTTTAAAGGAAGTATTTCATATTT
TCGCTTACGTTAAATAGGAAAAGCAAGTTCTTTTTTGAGGTACCCAGTGAGTCTGATTTT

Obrigado

    
por beth 11.10.2018 / 08:46

2 respostas

0

Isso pode ser feito via:

for i in 'awk -F ',' '{print $1}' file1.csv '; do grep $i fasta.file ; done

Aqui estou primeiro extraindo Object_ID do arquivo1.csv usando, awk -F ',' '{print $1}' file1.csv

e, em seguida, executando um loop em torno dele para extrair de outro arquivo

    
por 11.10.2018 / 09:09
0

Supondo que o arquivo Fasta é chamado fasta.fa e que o arquivo CSV é chamado sequences.csv , e que você tenha SAMtools (um pacote de bioinformática razoavelmente padrão) instalado.

  1. Indexar o arquivo Fasta:

    samtools faidx fasta.fa
    
  2. Extraia os nomes que você deseja extrair em regions.txt :

    awk -F, 'NR > 1 { print $1 }' <sequences.csv >regions.txt
    

    Este arquivo tem o formato region:start-stop (um por linha), em que region é um nome de sequência e start e stop indicam a região dessa sequência que você gostaria de extrair. Eu estou supondo que você quer extrair a seqüência completa, então eu não coloco start ou stop lá.

    Se você quiser usar os números no arquivo CSV como start e stop :

    awk -F, 'NR > 1 { printf("%s:%d-%d\n", $1, $2, $3) }' <sequences.csv >regions.txt
    
  3. Extraia as seqüências para output.fa :

    samtools faidx -c fasta.fa -r regions.txt >output.fa
    

Os nomes das seqüências em regions.txt que não podem ser encontrados no arquivo Fasta seriam exibidos como sequências vazias em output.fa (e samtools também os alertaria sobre isso).

Veja também:

por 11.10.2018 / 09:35