Как сравнить 2 файла и извлечь определенную последовательность с использованием ID в первом файле и распечатать out put

Вы выполняете следующую команду:

vlc --reset-config --reset-plugins-cache

Запустите это из окна терминала, и это приведет к сбросу vlc к его установкам по умолчанию ...

1
задан 3 October 2016 в 11:55

1 ответ

Как насчет этого?

$ awk -F'[ .]' 'NR==FNR{a[$0]; next}/^>/{p=$2 in a}p' file1 file2
> AAX50250.1 cds:annotated chromosome:ASM1212v1:Chromosome:1:1770:1 gene:CTA_0001.1 gene_biotype:protein_coding transcript_biotype:protein_coding description:hypothetical protein
ATGAGCATCAGGGGAGTAGGAGGCAACGGGAATAGTCGAATCCCTTCTCATAATGGGGAT
GGATCGAATCGCAGAAGTCAAAATACGAAGAATAAAGTTGAAGATCGAGTTCGTTCTCTA
TATTCATCTCGTAGTAACGAAAATAGAGAATCTCCTTATGCAGTAGTAGACGTCAGCTCT
> AAX50251.1 cds:annotated chromosome:ASM1212v1:Chromosome:1915:2187:-1 gene:CTA_0002.1 gene_biotype:protein_coding transcript_biotype:protein_coding description:hypothetical membrane associated protein
ATGCTTTGTAAAGTTTGTAGAGGATTATCTTCTCTTATTGTTGTTCTCGGAGCTATAAAC
ACTGGAATTTTAGGAGTAACAGGGTATAAGGTAAACCTACTTACTCACCTGCTTGGTGAA
GGAACCATGTGGACACAAGCAGCTTATGTAGTAACGGGAATCGCTGGGGTTATGGTCTGC
> AAX50252.1 cds:annotated chromosome:ASM1212v1:Chromosome:2388:2690:1 gene:CTA_0003.1 gene_biotype:protein_coding transcript_biotype:protein_coding gene_symbol:gatC description:glutamyl-tRNA(Gln) amidotransferase subunit C
ATGACAGAGTCATATGTAAACAAAGAAGAAATCATCTCTTTAGCAAAGAATGCTGCATTG
GAGTTGGAAGATGCCCACGTGGAAGAGTTCGTAACATCTATGAATGACGTCATTGCTTTA
ATGCAGGAAGTAATCGCGATAGATATTTCGGATATCATTCTTGAAGCTACAGTGCATCAT
TTCGTTGGTCCAGAGGATCTTAGAGAAGACATGGTGACTTCGGATTTTACTCAAGAAGAA
TAG

Сценарий выше можно развернуть до:

awk -F'[ .]' '       # set the field separator to space or dot
        NR == FNR {  # for the lines of the first file
            a[$0]    # Store the line in an array
            next     # And skip to the next record
        }
        /^>/{        # For lines of the second file starting with `>`
            p = $2 in a # Set flag to true if index is present in array
        }
        p            # print line if flag is set
      ' file1 file2
3
ответ дан 23 May 2018 в 05:33
  • 1
    @terdon и @ user000001, так ли эта одна строка разрешает мою проблему awk -F'[ .]' 'NR==FNR{a[$0]; next}/^>/{p=$2 in a}p' file1 file2 Я пробовал это, но я не мог понять, – Nitha 3 October 2016 в 12:28
  • 2
    @Nitha да, этот должен работать над вашими примерами файлов, но он может выйти из строя, если ваш ввод не совсем так, как вы показываете. Например, он будет сбой, если вы включите версию присоединения (.N) в свой список идентификаторов. – terdon♦ 3 October 2016 в 13:26
  • 3
    @terdon, я пробовал эту команду, но, к сожалению, я не получаю выход. & Quot; awk -F '[.]' 'NR == FNR {a [$ 0]; next} / ^ & gt; / {p = $ 2 в a} p 'CAI_Filtered_ID-A.txt (file1) CHT_A.fa (file2) & gt; test.txt " но в выходном файле test.txt я не получаю никакого результата. не могли бы вы рассказать мне, где я ошибаюсь. Я дал файлы, как показано в примере. Файл 1 - список идентификаторов и файл 2 - последовательность последовательностей fasta – Nitha 3 October 2016 в 13:48
  • 4
    @Nitha мы не можем обсуждать это в комментариях. Или отредактируйте свой вопрос и добавьте эту информацию, или напишите мне в чате . – terdon♦ 3 October 2016 в 13:51
  • 5
    @Nitha 1), пожалуйста, прекратите задавать вопросы в комментариях! Задайте новый вопрос. 2) Конечно, для этого нет команды grep. grep является инструментом tat, который ищет шаблоны, он не может выполнять какие-либо вещи, о которых вы просите. 3) вам нужен сценарий. Начните с моей команды FastaToTbl: FastaToTbl file.fa | awk _F"\t" '{print length($2)}' и попробуйте написать ее самостоятельно. Затем задайте вопрос либо здесь, либо в Unix & Linux о любой конкретной проблеме, которая у вас есть. – terdon♦ 28 October 2016 в 13:21

Другие вопросы по тегам:

Похожие вопросы: