Parsing Fasta Headers Using Perl Language
4
0
Entering edit mode
12.2 years ago

I am kindly requesting for assistance in Parsing the FASTA headers in some sequences that are too long. My objective is to load them in a database and i want to reduce the size of headers some of which are as long as three lines. Below is an example of the sequence headers i would like to parse. I would like a perl script that can work on like 1000 sequences

>NCLIV_004380  | Neospora caninum | Cathepsin L, related | genomic | NCLIV_chrIb reverse | (geneStart+0 to geneEnd+0) | length=2793
ATGGACAACAGTGAGACGCACTACGTCTCCTTCCTCAACGGCGAGGGCGACGACGGATTG
GAGAACGGCGAGCTCCACCAGCGACGAGGCGTCCGAGCCGGCGGCGTGGCTGCAACTCCC
TACGTAGTAACGACTCGGACGTACTTTTGGAAGAAATTCCTGCGTCAGCGCAACTTTAAA
ACTCGGGCCTGGATCGCACTCGTAGCAGCGGCTGTGTCTCTCCTTGTCTTTGCCTCCTTC
CTCATTCAGTGGCAGGGAGATGACGATCGGGGTGTTTTCCCGCCGTCACCAGTCGAGGAC
CACAAAACCCCGGTGAACATCTGGGAGTGGAAAGAAGAACACTTCCAGAACGCCTTCGGC
AGCTTCCGAGCCACCTACGGCAAGAGCTACGCGACCGAGGAGGAGACACAAAAGCGATAT
GCCATCTTCAAAAACAACCTCGCTTACATCCACACGCACAACCAACAAGGTGAGCAGGCA
GCCCGTACGTGTGTGTGAAGACGTGCAAGAGAGTAAAAGACGTGAAGCGTCTCTTGAAGA
ATCACAGAGATGTGCCTTGCCGGCACGTGGCAGGCTTCTAGCCCACTTCATGGTACTGGG
AGAGCGAAACCGAGGCGTACGTACACCCGCCTCGCTGAACGGCACATGTCAACCGCTACG
TTTTTTTCCCGTACCACCCAGCAAACACTCTTTTCGGCGAGTCCTGGACTGCGCGTGAGG
TCAGCGCCTGTAAAAACTTGGGACTGTCTGCGTGGAGAGGATGCCCGGGTTTTCCTCGTT
GCTGCTGGGTCTTTGCTTTTTTTCTAATCGAAGCGCGCTGTTTGTCGGTGCAACGTCACT
TGCAGGGTATTCGTACTCGCTCAAGATGAACCATTTCGGGGACTTGTCTCGCGAAGAGTT
TCGCCGCAAGTACCTCGGCTACAACAAGTCTCGCAATCTCAAGTCCAACAACCTGGGGGT
ACGTGTTTCAACTCACTCTTTCGTGGCAGGACGCACGACGGAAAAAATGTGCGGTTCGGC
TTCACCATTTGGGGAAGGCATCAGCTGGCCTGACACGCGCGTCTCACGGGGGAGACACTT
GTCTTGGAACTGCCGATCACATTCCTCTTTCCACTGCGGATTCACATACACATGTCCCAA
CATCTAGATCTTCTTTGATCGTGGATATATGTCTATCCCTCTCGCTGTAAAACCGTGGAA
GCGTTGGTGCTCATGCGTGCGAGCGTGCGCATCTCCGCGTTTTTGTGTTTGCATGGTCGT
GTTGAGTTTTTAGCTCTTCTTCTCTCGCTCGCCGTTTCGTTCTCCCCGTGCACACACACT
TCCTTCTCTCTCTTTTCTCTCTCAGCATGCATGTGGAGAGTCAGTAGACGCGTCGATACC
TTCTCTTCCTTTTCCGTCACCAAAAAGCCACCAACACACGTGCACTCGCGTTCCGGGGCG
TCTTCGTGTCTGTCTCTCTCTGTGTCCCCTCTGAGCGTTTGCGTGTGTGTTCTCGTCCTC
TCTCTTCTTCTTGGTGGAAGCGTTTCTTTTCGGTTGCTTTCTTGTGTGTAAACGCGTTGC
TCTTTTGTGTCGCTCTCTCGCTCTTCGTTCCGACGCTTTGGCGTTTCCCAGGTGGCGACG
GAGCTGTTGAAGGTTTCGCCGAGCGACGTGCCGTCTGCGGTGGACTGGCGAGAGAAGGGG
TGTGTGACGCCTGTGAAGGATCAGCGCGATTGCGGCTCGTGCTGGGCGTTCTCCGCCACG
GGAGCGTTGGAGGGAGCGCACTGCGCGAAGACTGGCGAGTTGCTGAGTTTGAGCGAACAG
GAGTTGGTGGATTGCTCACTTGCAGAAGGCAACCAAGGCTGCAGCGGCGGAGAGATGAAC
GACGCGTTCCAGTACGTCGTGGACAGCGGCGGCCTGTGCTCGGAGGAGGGGTATCCGTAC
CTCGCTCGAGACGGAGAGTGCAAGAGGGCGTGCAAGAAAGTGGTGACCATCTCGGGGTTC
AAGGACGTGCCGAGGAAGAGCGAGACGGCGATGAAGGCCGCGCTGGCTCACAGCCCCGTG
AGCATCGCGATCGAGGCCGATCAGCTGCCTTTCCAGTTCTACCACGAAGGCGTTTTCGAC
GCGTCCTGCGGAACCGACCTCGACCACGGCGTCCTCCTCGTGGGCTACGGAACCGACAAA
GAGACAAAGAAAGACTTCTGGATCATGAAAAACTCCTGGGGATCAGGATGGGGCCGAGAC
GGGTACATGTACATGGCCATGCACAAGGGCGAAGAGGTAAGCCAGTCGAGAGGAGACGCG
CGCGACAGGAGGGGGGAAGAAGGGAGGGGGGCGGTATATAGAGGGGAGGGGAGATGGAGA
GGAGGGAAACGTAGAGAAACAAAGAGGCAGAGATTTGAGGCGGCACACAATCAGAGGAGG
GGCGCGTGACATCTGGAGAGAGCCGTTTGTGCGCTTGTGTTTTCAGGGACAGTGCGGCCT
TCTTTTGGATGCGTCTTTCCCCGTGGTGTAGAAGCGCCCAAGACGCGATCTCGAAAAAGG
GTTCGAGAAGCGAGACGCGGAGGACGTTGGTGCTCCGAGAAGAAAGAGGGACGTGGCCGG
GAATTGAAAGGGAGGAAAAAATGCAGGGGAGGCAAGAGAAGCGAGAGAGCGAAGTGGAGC
GGCCGGCTCACCCAGGAAGAGAGGAAAAAGGGAGAACCGATTTGAAAGGGAGAGAAAGGA
GAAAAATAGAGAGAGGCGTGCCACGCGATGTCCTCGTTTCGTGGTTTTTGTTCATGTTCT
GTCCCGCCGCAGACTGTGCCTTTGGACTTTTGA
>TGGT1_064570  | Toxoplasma gondii GT1 | cysteine protease, putative | genomic | TGGT1_chrIb reverse | (geneStart+0 to geneEnd+0) | length=3478
GAACATTGGCTTTTTTCATCCTTACCCCGGAACCTGGACGTTCTTTTTGGCCCTCCCCGG
CTCCCGAAAAAGAGCCTGCCCCCCAGCGGCGCGTCGGTTCGCGGGTTTCCCCCGTACTTT
TCTTATTTCGCAGAGTTTTGACCGTTTGTCCCTCTTACCCCGCGGCCTCGCTCTCGAACA
CCATGGACAGCAGCGAGACGCACTACGTCTCCTTCCTCAACGGCGAGGACGACGGGCTGG
AGAACGGCGAGCTTCACCAGCGACGAGGCGTCCGCGCTGGCCGGCCGAGTCCTCCGTTCG
TTGTTACGACCCGCACGTACTTCTGGAAGAAATTTCTCCGTCAACGCAACTTCACAGCGC
GGGCGTGGATCGCACTCGTGGCTGCGGCGGTGTCTCTCCTTGTCTTTGCCTCGTTCCTCA
TTCAGTGGCAGGGCGAAGACGACCGCGCGGTCTTCCCGCCGTCGCCAGTTGAGGACCACC
AACCCCCCGCCAACATCTGGGAATGGAAAGAGGCGCACTTTCAGGACGCCTTCAGCAGCT
TCCAAGCCATGTACGCCAAGAGCTACGCGACTGAGGAAGAAAAACAGAGGCGATACGCCA
TCTTCAAAAACAACCTCGTCTACATTCACACACACAACCAACAAGGTAGGCACTCGCGCA
GTGTGCGTGGTGGGAGGGGCCGCAAACTTTCTTCTTCTGCGCTCGTTAATGTGCCGACAG
AACTCTCAGTGAACAAAAGTATTCCATAGTTCGAGGACACACAAAACTCCTCGAAACTGC
GGGCTGGACGTCGTGTCTGGAGTCCATCTTTGCATCAAAAAGTTGAGGCTCGGTGCATCT
GAAGAGGCGTTCTCATGCAATGCGGAGCCTAGAACATATACTCGATGAGGAGAAACCGCG
GAGTCTCAACGTCAGCTCTGCAGTGCAGCGGATAATAAGTATCCATTTTCAATGCGATTT
CGTCCAAGACACGGTGTATGATCTACATGTTCCGAATGCCGGGGGGGGCACTGGAGGATA
CGGCAACTTCTTTAGACCAATCTGCGCTGGGGGTCGGAAGTCGGGCTCCCGAGAATCAAC
GCAGTCTCCTGTTTCCGACACCCTTGCAGTGAAGTCGCTTGGTCTGATCTGTGAACTTCG
ACAAACATGGCGTGGATTTTTTTTCCGCTGTCCCCCGACACGAACGGTGCTCCTTTCGCA
CTCTTCTGACTGAACGCGTCAACCGGCAGGTTGAAGACGAGCGCGGCTTCCGTTTTTCCG
CGCCTTTTCTCATTCGTTTCACTTCCTCCGAGGCATCTTTAGGTGAAGCGAACGCGTCTC
TTTCTGTTTCGAGGGAGACGTTTGGACGCGCGACTTTTTTCGTGAGTTCTGCCGGGTTGT
GTGTGGCTACTGAACACATTCCCTGCGTTGAGAGAAGGTGCTCGGTTTTCGTGGTTGTTA
GATCGGCCTTGCATCGAAAGACTCGGTTTCCCTCCGCCTGCATGCAGGATATTCCTACTC
CCTCAAGATGAATCACTTTGGAGACTTGTCGCGCGACGAGTTCCGCCGGAAGTACCTCGG
CTTCAAGAAGTCCCGCAACCTGAAGTCGCACCACCTTGGGGTAAGTGGCTTGGGTTTGTT
CTCGATCAGCCGTGCGACGGAAATGGTTTCTGCTCTGTACTTCTTGATCAGCAGTGCGAC
GGAAATGGTTTCTGCTCTGTACGGTCCGAAGCGGTCGAGGAAAGAGATGGTGGATTCAGT
GTCTGCAGGTGTCGTCGCGGGGAAGAGCTTCCCAGACATATCTGCGTTAGTGGAAGCGTG
GACTCGGCGACGAGAGGGAGATGTTGATTCACTGGAGAAGAAGATGGCAGTCAAACTTGG
GGTGTGACCTGCCGCTGAAGTGGCGACGGTCTCCAACTCGTGGAGTCCGACTTCGTACGA
CTGAGATGAGATCCACTTTGACAGCTTTTCTTTGGTGTCTTTGTCTTTGTTTTGGTCCGT
GGTTTTTGTTTCCAGCTGCGCGTCAAACACACTGAGTCGAGAGGGGTGTTTCTGTTCCCG
GCACACCTTGTTTTTGATCCACTTCACCTTTTGGTACCCTTTCGTCTTTTTTTTTCTGTC
TTGTTCTCTGCGTTCCTCTTTCTCCTTCTCTATTTCTTCTCTCCCCTCTACGTTTTTTTC
TCTCAGCCCCTCTCTGCCTTTCTCCCGCTTCCCCTGCGCACTTTCCATCCGCTCTGCTTC
CCAGTCTCGTTCCCCCGCGTTTCCTTCTTCTCCCGTTTTTTGTCCGTGTTCCGGTTCCGG
TTCCTGCTCCTGTTCCTGTTCCGGTTCGTTTTCTTCCTTCCGTCTCGCTCTCCTCTTACC
GGGCTCCTGCCGCGCGACGCGCTCCGCTGTCTCCCGCGCTGCTTCCTGTGTCAGGTGGCG
ACGGAGTTGCTGAATGTACTGCCAAGTGAACTGCCTGCTGGAGTGGACTGGCGCTCGCGC
GGATGCGTAACGCCGGTGAAGGACCAGCGAGACTGCGGCTCTTGCTGGGCGTTCTCGACC
ACAGGGGCTCTCGAGGGCGCGCACTGCGCAAAGACGGGCAAGCTGGTGAGTTTGAGTGAG
CAGGAGCTGATGGACTGCTCGCGAGCAGAGGGCAACCAGAGTTGCAGTGGCGGCGAGATG
AACGACGCGTTTCAGTACGTCTTGGACAGCGGCGGGATCTGCTCGGAGGATGCGTATCCG
TACCTTGCCCGAGACGAGGAGTGTCGAGCGCAGAGCTGTGAGAAAGTCGTGAAGATCTTG
GGCTTCAAGGACGTACCACGGAGAAGCGAGGCTGCGATGAAGGCCGCTCTCGCGAAGAGT
CCAGTGAGCATCGCCATCGAAGCCGACCAGATGCCTTTCCAGTTCTACCACGAGGGAGTC
TTTGACGCGTCTTGTGGCACAGACCTCGACCATGGCGTCCTCCTCGTCGGATACGGAACG
GACAAAGAGTCGAAGAAGGACTTCTGGATCATGAAAAACTCCTGGGGCACCGGCTGGGGC
AGAGACGGATACATGTACATGGCCATGCACAAAGGCGAAGAGGTGAGCTGAGAACGAATG
AAGGAGAACGAGGAGCGAAGGCGTGGAGAACTCAGGACAAGATCTCCAGGAGGCAAAAGA
GAGACGCAAACGAAGGAAGAGGAACGGGTGGGAGAAGACGAAGGGAAAAAAGTCAGGTGG
AAGAAAGAACGCATGCGGGAGAAGAAGGAGGGGACCAGGACGAGGGGAAGACATGTTTTG
AAAAATCCGAGGAAGAGCAGGGGAACAAGGAGAGAGGAGGGCGGAACTGCGGTCCGAGAG
GATGCGCGCGCGGGCGTGTGATGCGCGTGCTTGTGGTACGAAAAACGATTGGTCTGGAGA
GAAAGGAACACAGGTATCGGACTACATTTGTGTCTGGTATCAAACGCGTTCTCCTTTTTT
TGTGTGTCTGCAGGGGCAGTGCGGCCTTCTCTTAGATGCGTCTTTCCCCGTGATGTGA
>TGVEG_059000  | Toxoplasma gondii VEG | cysteine protease, putative | genomic | TGVEG_chrIb reverse | (geneStart+0 to geneEnd+0) | length=3434
GAACATTGGCTTTTTTCATCCTTACCCCGGAACCTGGACGTTCTTTTTGGCCCTCCCCGG
CTCCCGAAAAAGAGCCTGCCCCCCAGCGGCGCGTCGGTTCGCGGGTTTCCCCCGTACTTT
TCTTATTTCGCAGAGTTTTGACCGTTTGTCCCTCTTACCCCGCGGCCTCGCTCTCGAACA
CCATGGACAGCAGCGAGACGCACTACGTCTCCTTCCTCAACGGCGAGGACGACGGGCTAG
AGAACGGCGAGCTTCACCAGCGACGAGGCGTCCGCGCTGGCCGGCCGAGTCCTCCGTTCG
TTGTTACGACCCGCACGTACTTCTGGAAGAAATTTCTCCGTCAACGCAACTTCACAGCGC
GGGCGTGGATCGCACTCGTGGCTGCGGCGGTGTCTCTCCTTGTCTTTGCCTCGTTCCTCA
TTCAGTGGCAGGGCGAAGACGACCGCGCGGTCTTCCCGCCGTCGCCAGTTGAGGACCACC
AACCCCCCGCCAACATCTGGGAATGGAAAGAGGCGCACTTTCAGGACGCCTTCAGCAGCT
TCCAAGCCATGTACGCCAAGAGCTACGCGACTGAGGAAGAAAAACAGAGGCGATACGCCA
TCTTCAAAAACAACCTCGTCTACATTCACACACACAACCAACAAGGTAGGCACTCGCGCA
GTGTGCGTGGTGGGAGGGGCCGCAAACTTTCTTCTTCTGCGCTCGTTAATGCGCCGACAG
AACTCTCAGTGAACAAAAGTATTCCATAGTTCGAGGACACACAAAACTCCTCGAAACTGC
GGGCTGGACGTCGTGTCTGGAGTCCATCTTTGCATCAAAAAGTTGAAGCTCGGTGCATCT
GAAGAGGCGTTCTCATGCAATGCGGAGCCTAGAACATATACTCGATGAGGAGAAACCGCG
GAGTCTCAACGTCAGCTCTGCTGTGGAGCGGATAATAAGTATCCATTTTCAATGCGATTT
CGTCCAAGACACGGTGTATGATCTACATGTTCCGAATGCCGGGGGGGGGGGGGCACTGGA
GGATACGGCAACTTCTTTAGACCAATCTGCGCTGGGGGTCGGAAGTCGGGCTCCCGAGAA
TCAACGCAGTCTCCTGTTTCCGACACCCTTGCAGTGAAGTCGCTTGGTCTGATCTGTGAA
CTTCGACAAACATGGCGTGGATTTTTTTTCCGCTGTCCCCTGACACGAACGGTGCTCCTT
TCGCACTCTTCTGACTGAACGCGTCAACCGGCAGGTTGAAGACGAGCGCGGCTTCCGTTT
TTCCGCGCCTTTTCTCATTCGTTTCACTTCCTCCGAGGCATCTTTAGGTGAAGCGAACGC
GTCTCTTTCTGTTTCGAGGGAGACGTTTGGACGCGCGACTTTTTTCGTGAGTTCTTCCGG
GTTGTGTGTGGCTACTGAACACATTCCCTGCGTTGAGAGAAGGTGCTCGGTTTTCGTGGT
TGTTAGATCGGCCTTGCATCGAAATACTCGGTTGTCCTCCGCCTGCATGCAGGATATTCC
TACTCCCTCAAGATGAATCACTTTGGAGACTTGTCGCGCGACGAGTTCCGCCGGAAGTAC
CTCGGCTTCAAGAAGTCCCGCAACCTGAAGTCGCACCACCTTGGGGTAAGTGGCTTGGGT
TTGTTCTCGATCAGCCGTGCGACGGAAATGGTTTCTGCTCTGTACGGTCCGAAGCGGTCG
AGGAAAGAGATGGTGGATTCAGTGTCTGCAGGTGTCGTCGCGGGGAAGAGCTTCCCAGAC
ATATCTGCGTTAGTGGAAGCGTGGACTCGGCGACGAGAGGGAGATGTTGATTCACTGGAG
AAGAAGATGGCAGTCAAACTTGGGGTGTGACCTGCCGCTGAAGTGGCGACGGCCTCCAAC
TCGTGGAGTCCGACTTCGTACGACTGAGATGAGATCCACTTTGACAGCTTTTCTTTGGTG
TCTTTGTCTTTGTTTTGGTCCGTGGTTTTTGTTTCCAGCTGCGCGTCAAACACACTGAGT
CGAGAAGGGTGTTTCTGTTCCCGGCACACCTTGTTTTTGATCCACTTCACCTTTTGGTGC
CCTTTCGTCTTTTTTTTCTGTCTTGCTCTCTGCGTTCCGCTTTCTCCTTCTCTATTTCTT
CTCTCCCCTCTACGTTTTTTTCTCTCAGCCCCTCTCTGCCTTTCTCCCGCTTCCCCTGTG
CACTTTCCATCCGCTCTGCTTCCCAGTCTCGTTCCCCCGCGTTTCCTTCTTCTCCCGTTT
TTTGTCCGTGTTCCTGTTCCGGTTCCTGTTCCGGTTCCGGTTCGTTTTCTTCCTTCCGTC
TCGCTCTCCTCTCACCGGGCTCCTGCCGCGCGACGCGCTCCGCTGTCTCCCGCGCTGCTT
CCTGTGTCAGGTGGCGACGGAGTTGCTGAATGTACTGCCAAGTGAACTGCCTGCTGGAGT
GGACTGGCGCTCGCGCGGATGCGTAACGCCGGTGAAGGACCAGCGAGACTGCGGCTCTTG
CTGGGCGTTCTCGACCACAGGGGCTCTCGAGGGCGCGCACTGCGCAAAGACGGGCAAGCT
GGTGAGTTTGAGTGAGCAGGAGCTGATGGACTGCTCGCGAGCAGAGGGCAACCAGAGTTG
CAGTGGCGGCGAGATGAACGACGCGTTTCAGTACGTCTTGGACAGCGGCGGGATCTGCTC
GGAGGATGCGTATCCGTACCTTGCCCGAGACGAGGAGTGTCGAGCGCAGAGCTGTGAGAA
AGTCGTGAAGATCTTGGGCTTCAAGGACGTACCACGGAGAAGCGAGGCTGCGATGAAGGC
CGCTCTCGCGAAGAGTCCAGTGAGCATCGCCATCGAAGCCGACCAGATGCCTTTCCAGTT
CTACCACGAGGGAGTCTTTGACGCGTCTTGTGGCACAGACCTCGACCATGGCGTCCTCCT
CGTCGGATACGGAACGGACAAAGAGTCGAAGAAGGACTTCTGGATCATGAAAAACTCCTG
GGGCACCGGCTGGGGCAGAGACGGATACATGTACATGGCCATGCACAAAGGCGAAGAGGT
GAGCTGAGAACGAACGAAGGAGAAAGCGGAGCGAAGGCGTGGAGAACTCAGGACAAGATC
TCCAGGAGGCAAAAGAGAGACGCAAACGAAGGAACAGGAACGGGTGGGAGAAGACGAAGG
AAAAAAAGTCAGGTGGAAGGAAGAACGCATGCGGGAGAAGAAGGAGGGGACCAGGACGAG
GGGAAGACATGTTTTGAAAAATCCGAGGAAGAGCAGGGGAACAAGGAGAGAGGAGGGCGG
AACTGCGGTCCGAGAGGATGCGCGCGCGGGCGTGTGATGCGCGTGCTTGTGGTACGAAAA
ACGATTGGTCTGGAGAGAAAGGAACACAGGTATCGGACGACATTTGTGTCTGGTATCAAA
CGCGTTCTCCTTTTTTTGTGTGTCTGCAGGGGCAGTGCGGCCTTCTCTTAGATGCGTCTT
TCCCCGTGATGTGA
>TGME49_121530  | Toxoplasma gondii ME49 | cathepsin L-like thiolproteinase, putative | genomic | TGME49_chrIb reverse | (geneStart+0 to geneEnd+0) | length=3430
GAACATTGGCTTTTTTCATCCTTACCCCGGAACCTGGACGTTCTTTTTGGCCCTCCCCGG
CTCCCGAAAAAGAGCCTGCCCCCCAGCGGCGCGTCGGTTCGCGGGTTTCCCCCGTACTTT
TCTTATTTCGCAGAGTTTTGACCGTTTGTCCCTCTTACCCCGCGGCCTCGCTCTCGAACA
CCATGGACAGCAGCGAGACGCACTACGTCTCCTTCCTCAACGGCGAGGACGACGGGCTGG
AGAACGGCGAGCTTCACCAGCGACGAGGCGTCCGCGCTGGCCGGCCGAGTCCTCCGTTCG
TTGTTACGACCCGCACGTACTTCTGGAAGAAATTTCTCCGTCAACGCAACTTCACAGCGC
GGGCGTGGATCGCACTCGTGGCTGCGGCGGTGTCTCTCCTTGTCTTTGCCTCGTTCCTCA
TTCAGTGGCAGGGCGAAGACGACCGCGCGGTCTTCCCGCCGTCGCCAGTTGAGGACCACC
AACCCCCCGCCAACATCTGGGAATGGAAAGAGGCGCACTTTCAGGACGCCTTCAGCAGCT
TCCAAGCCATGTACGCCAAGAGCTACGCGACTGAGGAAGAAAAACAGAGGCGATACGCCA
TCTTCAAAAACAACCTCGTCTACATTCACACACACAACCAACAAGGTAGGCACTCGCGCA
GTGTGCGTGGTGGGAGGGGCCGCAAACTTTCTTCTTCTGCGCTCGTTAATGCGTCGACAG
AACTCTCAGTGAACAAAAGTATTCCATAGTTCGAGGACACACAAAACTCCTCGAAACTGC
GGGCTGGACGTCGTGTCTGGAGTCCATCTTTGCATCAAAAAGTTGAGGCTCGGTGCATCT
GAAGAGGCGTTCTCATGCAATGCGGAGCCTAGAACATATACTCGATGAGGAGAAACCGCG
GAGTCTCAACGTCAGCTCTGCTGTGGAGCGGATAATAAGTATCCATTTTCAATGCGACTT
CGTCCAAGACACGGTGTATGATCTACATGTTCCGAATGGCGGGGGGGGGCACTGGAGGAT
ACGGCAACTTCTTTAGACCAATCTGCGCTGGGGGTCGGAAGTCGGGCTCCCGAGAATCAA
CGCAGTCTCCTGTTTCCGACACCCTTGCAGTGAAGTCGCTTGGTCTGATCCGTGAACTTC
GACAAACATGGCGTGGATTTTTTTTCCGCTGTCCCCCGACACGAACGGTGCTCCTTTCGC
ACTCTTCTGACTGAACGCGTCAACCGGCAGGTTGAAGACGAGCGCGGCTTCCGTTTTTCC
GCGCCTTTTCTCATTCGTTTCACTTCCTCCGAGGCATCTTTAGGTGAAGCGAACGCATCT
CTCTCTGTTTCGAGGGAAACGTTTGGACGCGTGACTTTTTTCGTGAGTTCTGCCGGGTTG
TGTGTGGCTACTGAACACATTCCCTGCGTTGAGAGAAGGTGCTCGGTTTTCGTGGTTGTT
AGATCGGCCTTGCATCGAAAGACTCGGTTTTCCTCCGCCTGCATGCAGGATATTCCTACT
CCCTCAAGATGAATCACTTTGGAGACTTGTCGCGCGACGAGTTCCGCCGGAAGTACCTCG
GCTTCAAGAAGTCCCGCAACCTGAAGTCGCACCACCTTGGGGTAAGTGGCTTGGGTTTGT
TCTCGATCAGCCGTGCGACGGAAATGGTTTCTGCTCTGTACGGTCCGAAGCGGTCGAGGA
AAGAGATGGTGGATTCAGTGTCTGCAGGCGTCGTCGCGGGGAAGAGCTTCCCAGACATAT
CTGCGTTAGTGGAAGCGTGGACTCGGCGACGAGAGGGAGATGTTGATTCACTGGAGAAGA
AGATGGCAGTCAAACTTGGGGTGCAACCTGTCGCTGAAGTGGCGACGGGCTCCAACTCGT
GGAGTCCGACTTCGTACGACTGAGATGAGATCCACTTTGACAGCTTTTCTTTGGTGTCTT
TGTCTTTGTTTTGGTCCGTGGTTTTTGTTTCCAGCTGCGCGTCAAACACACTGAGTCGAG
AAGGGTGTTTCTGTTCCCGGCACACCTTGTTTTTGATCCACTTCACCTTTTGGTGCCCTT
TCGTCTTTTTTTTCTGTCTTGCTCTCTGCGTTCCTCTTTCTCCTTCTCTATTTCTTCTCT
CCCCTCTACGTTTTTTTCTCTCAGCCCCTCTCTGCCTTTCTCCCGCTTCCCCTGCGCACT
TTCCATCCGCTCTGCTTCCCAGTCTCGTTCCCCCGCGTTTCCTTCTTCTCCCGTTTTTTG
TCCGTGTTCCGGTTCCTGCTCCTGTTCCTGTTCCTGTTCGTTTTCTTCCTTCCGTCTCGC
TCTCCTCTCACCGGGCTCCTGCCGCGCGACGCGCTCCGCTGTCTCCCGCGCTGCTTCCTG
TGTCAGGTGGCGACGGAGTTGCTGAATGTACTGCCAAGTGAACTGCCTGCTGGAGTGGAC
TGGCGCTCGCGCGGATGCGTGACGCCGGTGAAGGACCAGCGAGACTGCGGCTCTTGCTGG
GCGTTCTCGACCACAGGGGCTCTCGAGGGCGCGCACTGCGCAAAGACGGGCAAGCTGGTG
AGTTTGAGTGAGCAGGAGCTGATGGACTGCTCGCGAGCAGAGGGCAACCAGAGTTGCAGT
GGCGGCGAGATGAACGACGCGTTTCAGTACGTCTTGGACAGCGGCGGGATCTGCTCGGAG
GATGCGTATCCGTACCTTGCCCGAGACGAGGAGTGTCGAGCGCAGAGCTGTGAGAAAGTC
GTGAAGATCTTGGGCTTCAAGGACGTACCACGGAGAAGCGAGGCTGCGATGAAGGCCGCT
CTCGCGAAGAGTCCAGTGAGCATCGCCATCGAAGCCGACCAGATGCCTTTCCAGTTCTAC
CACGAGGGAGTCTTTGACGCGTCTTGTGGCACAGACCTCGACCACGGCGTCCTCCTCGTC
GGATACGGAACGGACAAAGAGTCGAAGAAGGACTTCTGGATCATGAAAAACTCCTGGGGC
ACCGGCTGGGGCAGAGACGGATACATGTACATGGCCATGCACAAAGGCGAAGAGGTGAGC
AGAGAACGAACGAAGGAGAAAGCGGAGCGAAGGCGTGGAGAACTCAGGACAAGATCTCCA
GGAGGCAAAAGAGAGACGCAAACGAAGGAAGAGGAACGGGTGGGAGAAGACGAAGGAAAA
AAAGTCAGGTGGAAGAAAGAACGCATGCGGGAGAAGAAGGAGGGGACCAGGACGAGGGGA
AGACATGTTTTGAAAAATCCGAGGAAGAGCAGGGGAACAAGGAGAGAGGAGGGCGGAACT
GCGGTCCGAGAGGATGCGCGCGCGGGCGTGTGATGCGCGTGATTGTGATACGAAAAACGA
TTGGTCTGGAGAGAAAGGAACACAGGTATCAGACGACATTTGTGTCTGGTATCAAACGCG
TTCTCCTTTTTTTGTGTGTCTGCAGGGGCAGTGCGGCCTTCTCTTAGATGCGTCTTTCCC
CGTGATGTGA
>TVAG_003650  | Trichomonas vaginalis G3 | Clan CA, family C1, papain-like cysteine peptidase | genomic | DS113306 reverse | (geneStart+0 to geneEnd+0) | length=933
ATGATTGCTGCTCACGAGGAAAAAAGTTTCGTCGGCTGGATGCGTGAAAACAGCATGATG
TTCACTGGTGATGAATATCATTTCAGGTTAGGTGTTTGGTTATCAAATAAAAGATATGTT
CAACAACATAACGCCGGAAATTCCCATTTCATTCTTGCAATGAACAGATTATCACATTTA
ACACCAAGTGAATACCATTCGTTGCTTGGTTACAAGAATTCTGGAAGGAATCATAAGTAT
TCCATTATTAACGAGAAAAACGCAGGCTCACATCCAGATTCATTCGATTGGAGAGATCAC
CCAGGAGTTATTGGTCCAGTCAAAGACCAAAATGACTGTGGTTCTTGCTGGGCTTTCTCT
ACAATCTTTGGATTAGAGTCAAATTGGGCTGTTAAACATAATGCCGCCTATATATTATCA
GAACAAAACCTTGTTGACTGCTGCAGTAGTGCAGCTGGATGCAATGGTGGTTTTCCAGCT
GATGCATGGGATTGGATGATTGATGAACAAGGAGGCAAGACAATGCTAGAAGTAGATTAC
CCATATACATCTCAGGAAGGAACTTGCAAATGGAACAAGAAGAAGGCCGCTCCACCACAA
GTTAAAGGATACGTCGAAGTTGCCGATTGTGATGAAAACGATTTAGCAGAGAAGATTGCA
AACTTAGGTCCAGCAAGTATTGCAATTGATGCTTCACTTTATTCCTTCATGATGTACCAG
TCAGGAATTTATGATGATCCAAAGTGCAGCTCAATGAACTTAGATCATGCTGTTGGTTGC
GTTGGTTATGGTGTTGAGAATGGCGCTAAATATTGGATTGTTCGCAATTCATGGGGCGAA
ATGTGGGGCGAAAAAGGTTACATTCGTATGGCAAGAGACAAACATAACCAATGCGGTGTT
GCAACAGAAGCATTCATCGCTCAGGTTAATTAA
>TVAG_034140  | Trichomonas vaginalis G3 | Clan CA, family C1, papain-like cysteine peptidase | genomic | DS113428 reverse | (geneStart+0 to geneEnd+0) | length=982
ATGTTTGCTTTCGCTGCACTTTCCCGCTCAGTGTTGACAACACAGGCAGAAGAGAAGGCC
TTCCTTGACTGGATGCGCCAGACAAACAACATTTTTGTTGGCGAAGAATTCCATTTCAGA
AAGGGAATTTTCCTCACACACAAGCGTTTCGTTGAAGAGCACAACAGAAAGTCATCTTTC
CGCTGCGGCCTTAACCAGTTCGCTCACCTTACACCATCCGAATACCAAGAACTCCTCGGC
TACAAGCAAATGAAGCAGAAAGAAGAAGTTGAGTTCGCTCCACTTAAGAACTTCAACGCT
CCAGACAGCTTCGACTGGCGTGAGAAGGGCGTTGTCAACGCCATCAAGGATCAGGGCCAG
TGCGGTTCCTGCTGGGCTTTCTCATCCATTCAGGCTCAAGAATCACAGTGGGCTATCCAC
CACCCAGGAGAGCTCTACGACCTTGCTGAGCAGCAGCTCGTTGACTGCGTTCACGACTGC
TTCGGCTGCAACGGTGGAAACGTTGGCTGGGCTTACACATGGGTAAAGCTTTTCGAGCAC
GGCATGTTCATGTTACAGAAGGACTACCCATACACAGCTAAGGATGGCAAGTGCGCTTTC
GACAAGTCTAAGGGCATCACAAAGATCACAACACACAAGAAGGCTTCACACGATGAAGAG
GCTCTCAAGACATCCGTTGCAGAAAACGGACCACACGCTATCGCTATCGATGCTGGCCAC
GATTCCTTCATGATGTACGAATCTGGTGTTTACGAGGATGCTTCCTGCTCTTCTTCTACA
CTCGACCACGCTGTCGGCCTTGTTGGCTACGGTGTTGACGGAGACAAGGACTTCTGGCTC
GTCCGTAACTCATGGTCCACAACATGGGGTGAACAGGGCTACGTCAGAATCCGCCGTAAC
TACCACAACATGTGCGGCGTCGCTTCTGAACCAATGTTCCCAGTCGTTGAATAAAAAAAT
TAAAATTTAGGTTTCTTGCGAA
>TVAG_043620  | Trichomonas vaginalis G3 | Clan CA, family C1, papain-like cysteine peptidase | genomic | DS113505 forward | (geneStart+0 to geneEnd+0) | length=918
ATGCTTGCTCAACAGTACGAATATAAAGCATTCCTTGGATGGATGAGAGAAACAGGAAAC
ATGTTTACAGGCGATGAATATCATTCGCGCTTTGGAATATGGCTTTCAAATAAGCGTTTC
GTTCAAAATCACAATCGTGCAAATCTCGGATTCACACTTGCACTTAACAAGCTTGCTTAT
TTATCACCAACTGAGTACAAAGCCATGCTCGGATTCCATAATAAAGGAGTTCATAACATT
GCCATCAAATCCAATACAATTGCTAATGATGAAATCGACTGGCGTTCCAAGGGAGTCGTC
AATCCTATCCAGCATCAACAACATTGCGGATCATGCTGGGCATTTTCTGCAATCCAAGCT
CAAGAATCCCAATATGCAATCACATATGGCAAACTCCAAAAGCTTTCAGAGCAGAACCTT
GTTGATTGCGTTACCTCATGCAATGGATGTCACAATGGTTTAATGTCAGCCGCATACGAT
TACGTAATTCAATACCAGGGTGGAAAGTTCATGCTGGAAACGGATTATCCATACACAGCA
GTTGAAGGAACATGCAAATTCAACCAAGCAAAGGCTACTTCGAAGATTGTTTCATACATT
AATGTTGTTGAAGGGGATGAAAAAGATCTTGCTGCAAAGGTTTCCGCTTACGGTCCATCA
ACTGTTGGCATTGATGCATCCCATTATACATTCCAACTTTACTCACATGGCATTTACGAC
GAACCACACTGCTCATCTTTCTCTCTAAATCACGGTGTTGGCTGCGTTGGCTATGGCACA
GAAGGCACAAAGAATTACTGGATTGTCCGTAACTCCTGGGGTCTTGAATGGGGCGAGCAA
GGCTATGTCCGCATGATCAAGGACAAGAACAATAATTGTGGTATTGCTACAGTTGCATGC
ATCCCCATTGATAAGTAA
perl fasta parsing • 6.1k views
ADD COMMENT
5
Entering edit mode

sounds like a homework. I'm sure you'll find tons of examples on the web to solve this problem. What did you find so far ?

ADD REPLY
2
Entering edit mode

First, phrase your question more carefully. "in some sequences that are too long" makes it sound like the sequence length is the problem. Second, if your headers are as long as 3 lines, then you don't have valid FASTA, since the header has to be on the first line. Third, I don't really see why long headers are a problem either for parsers or for database storage - you won't save that much space by trimming the header.

ADD REPLY
4
Entering edit mode
12.2 years ago
Gustavo ▴ 530

The question is, as usual: what are you trying to achieve? Parsing the headers is a means, not an end. What part of the header do you need to keep, after parsing?

If, for example, all you want to do is trim long headers, keeping just the sequence id, something like this would suffice:

#!/bin/env perl
while (<>) {
  if (/^(>\S+)/) {
    print "$1\n";
  } else {
    print;
  }
}

Or, if you like shorter and less legible code:

#!/bin/env perl
while (<>) {
  s/\s.*/\n/;
  print;
}

If you need some extra information from the header... you'll need to define what it is you want and in what format, parse and process accordingly. If you want to keep it all, here's some more generic code:

#!/bin/env perl
while (<>) {
  chomp;
  if (/^>(.+)/) {
    my $new = $1;
    if ($seq) {
      process_sequence($seq, $id, @headers);
      $seq = '';
    }
    ($id, @headers) = split /\s*\|\s*/, $new;
  } else {
    $seq .= $_;
  }
}
process_sequence($seq, $id, @headers) if $seq;
#...
sub process_sequence {
  my($seq, $id, @headers) = @_;

  #do something useful with all the info, like storing in a database
}
ADD COMMENT
3
Entering edit mode
12.2 years ago

Have a look at the BioPerl SeqIO tutorial.

ADD COMMENT
1
Entering edit mode
12.2 years ago

I think you're looking for two functions: substr and split. Example:

while (defined $fasta) {
if (substr(0,1,$fasta) eq ">") {
  @header = split(/ +/,$fasta);
  push(@headers,$header[0]);
  $fasta = <IN>;
}
}

You will want to read in your FASTA sequence, however you want, then loop through and find the headers, parse them with split, and select your accession (first element, in my example) and append it to your array of headers.

ADD COMMENT
0
Entering edit mode

this contains 2 errors, at least.

ADD REPLY
0
Entering edit mode

actually it contains 3 errors, can you spot them?

ADD REPLY
0
Entering edit mode

Yeah, I think I can spot them. I'm actually very new to perl, and I'd like to think that instead of pointing out the fact that someone makes errors, you could offer help. I think, other than not defining variables, my example is more correct now. Thanks.

ADD REPLY
0
Entering edit mode

yes, it is much better now :) however I normally write a loop as : while(my $fasta = <IN>) {}, because if you forgot to initialize $fasta as in my $fasta; then you never enter your loop. There is still one error though, wile it is possible to access array elements like this: @header[0] (which should raise a warning) the more correct way is $header[0]. This is unintuitive, but that's how perl is. Hope this helped.

ADD REPLY
0
Entering edit mode

Thanks. That helps.

ADD REPLY
0
Entering edit mode

A couple more comments about this code - 1) The proper order of parameters to substr: should be substr($fasta,0,1) to take the first character. Incidentally, a very efficient (if slightly less legible) option is to test for ord($fasta)==62.

2) Splitting by spaces and then using just the first result is not very efficient. (Admittedly only a consideration when processing huge files.) Consider: ($firstHeader) = split /s+/, $fasta, 2; or perhaps even: ($firstHeader) = $fasta =~ /(S+)/;

ADD REPLY
0
Entering edit mode
12.2 years ago
Michael 54k

perldoc -f substr

should do it.

ADD COMMENT

Login before adding your answer.

Traffic: 2870 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6