У меня есть файл, показанный ниже:
CDS join(36..56,37..67)
CDS 36..183
CDS 457..565
CDS join(505..519,521..596)
CDS join(577..591,725..770)
CDS join(516..591,725..899)
CDS 508..556
CDS 571..841
CDS complement(619..788)
CDS 843..863
Я хочу напечатать конкретное число нуклеотидных диапазонов, как в файле ( последовательность читается из другого файла "sequence.fasta"). Например, для файла sequence.fasta:
>gi1234 HIVgenome|NC_909999.1
AACTGCGTGTGTGTCCACACAACACTGGGGGACACACAACAACAACACTGGGGGACACACTGGGACAACACTGGGGGACAGGACACTGTACAACACTGGGTGTGTCGGGACAGTACACATGTTGGGGGGGTGTGTCGGACAACACTGGGGGACATGTGTGTACAACACTGGGGGACAGTGACGACGACAACACTGGGGGACACGAGCGTTGTGAGCAGGTGACAACACTGGGGGACAGTGTTTTTACAACACTGGGGGACATTTTTGAGCAGCGACGCAGCGTTGTGGGGTGTGTCGGAAGGTGTGTCGTGTGTCGTGTGTC
Outputp должен быть
36 - 56 ACAACAACAACACTGGGGGAC
37 - 67 CAACAACAACACTGGGGGACAACACTGGGAC
и так далее ... от
до
843 - 863 GTGT....
Каким будет самый простой способ сделать это с помощью сценариев оболочки?
Я решал аналогичную проблему, но раньше у меня возникали проблемы при попытке использовать сценарии, приведенные в одном из ответов (как WSL, так и Mac )...
Я продолжил поиски и нашел очень простое решение. :Это функция getfasta
из набора bedtools
!
https://bedtools.readthedocs.io/en/latest/content/tools/getfasta.html