Adding sequential index to duplicate strings

I have a text file in the following format

>Homo sapiens
KQKCLYNLPFKRNLEGCRERCSLVIQIPRCCKGYFGRDCQACPGGPDAPCNNRGVCLDQY
SATGECKCNTGFNGTACEMCWPGRFGPDCLPCGCSDHGQCDDGITGSGQCLCETGWTGPS
CDTQAVLPAVCTPPCSAHATCKENNTCECNLDYEGDGITCTVVDFCKQDNGGCAKVARCS
QKGTKVSCSCQKGYKGDGHSCTEIDPCADGLNGGCHEHATCKMTGPGKHKCECKSHYVGD
>Rattus norvegicus
WGSFSCDCPVGFGGKDCQLTMAHPHHFRGNGTLSWNFGSDMAVSVPWYLGLAFRTRATQG
VLMQVQAGPHSTLLCQLDRGLLSVTVTRGSGRASHLLLDQVTVSDGRWHDLRLELQEEPG
GRRGHHVLMVSLDFSLFQDTMAVGSELQGLKVKQLHVGGLPPGSAEEAPQGLVGCIQGVW
LGSTPSGSPALLPPSHRVNAEPGCVVTNACASGPCPPHADCRDLWQTFSCTCQPGYYGPG
CVDACLLNPCQNQGSCRHLPGAPHGYTCDCVGGYFGHHCEHRMDQQCPRGWWGSPTCGPC
NCDVHKGFDPNCNKTNGQCHCKEFHYRPRGSDSCLPCDCYPVGSTSRSCAPHSGQCPCRP
LPRRQPPRDYPGAMAGRFGSRDALDLGAPREWLSTLPPPRRTRDLDPQPPPLPLSPQRQL
SRDPLLPSRPLDSLSRSSNSREQLDQVPSRHPSREALGPLPQLLRAREDSVSGPSHGPST
EQLDILSSILASFNSSALSSVQSSSTPLGPHTTATPSATASVLGPSTPRSATSHSISELS
PDSEVPRSEGHS
>Homo sapiens
QRNESGLDSGRSQQLALLLRNATQHTAGYFGSDVKVAYQLATRLLAHESTQRGFGLSATQ
DVHFTENLLRVGSALLDTANKRHWELIQQTEGGTAWLLQHYEAYASALAQNMRHTYLSPF
TIVTPNIVISVVRLDKGNFAGAKLPRYEALRGEQPPDLETTVILPESVFRETPPVVRPAG
PGEAQEPEELARRQRRHPELSQGEAVASVIIYRTLAGLLPHNYDPDKRSLRVPKRPIINT
PVVSISVHDDEELLPRALDKPVTVQFRLLETEERTKPICVFWNHSILVSGTGGWSARGCE
VVFRNESHVSCQCNHMTSFAVLMDVSRRENGEILPLKTLTYVALGVTLAALLLTFFFLTL
LRILRSNQHGIRRNLTAALGLAQLVFLLGINQADLPFACTVIAILLHFLYLCTFSWALLE
ALHLYRALTEVRDVNTGPMRFYYMLGWGVPAFITGLAVGLDPEGYGNPDFCWLSIYDTLI
WSFAGPVAFAVSMSVFLYILAARASCAAQRQGFEKKGPVSGLQPSFAVLLLLSATWLLAL
LSVNSDTLLFHYLFATCNCIQGPFIFLSYVVLSKEVRKALKLACSRKPSPDPALTTKSTL
TSSYNCPSPYADGRLYQPYGDSAGSLHSTSRSGKSQPSYIPFLLREESALNPGQGPPGLG
DPGSLFLEGQDQQHDPDTDSDSDLSLEDDQSGSYASTHSSDSEEEEEEEEEEAAFPGEQG
WDSLLGPGAERLPLHSTPKDGGPGPGKAPWPGDFGTTAKESSGNGAPEERLRENGDALSR
EGSLGPLPGSSAQPHKGILKKKCLPTISEKSSLLRLPLEQCTGSSRGSSASEGSRGGPPP
RPPPRQSLQEQLNGVMPIAMSIKAGTVDEDSSGSEFLFFNFLH
>Rattus norvegicus
MKLLPSVVLKLFLAAVLSALVTGESLERLRRGLAAGTSNPDPPTVSTDQLLPLGGGRDRK
VRDLQEADLDLLRVTLSSKPQALATPNKEEHGKRKKKGKGLGKKRDPCLRKYKDFCIHGE
CKYVKELRAPSCICHPGYHGERCHGLSLPVENRLYTYDHTTILAVVAVVLSSVCLLVIVG
LLMFRYHRRGGYDVENEEKVKLGMTNSH
>Mus musculus
QRNESGLDSGRSQQLALLLRNATQHTAGYFGSDVKVAYQLATRLLAHESTQRGFGLSATQ
DVHFTENLLRVGSALLDTANKRHWELIQQTEGGTAWLLQHYEAYASALAQNMRHTYLSPF
TIVTPNIVISVVRLDKGNFAGAKLPRYEALRGEQPPDLETTVILPESVFRETPPVVRPAG
PGEAQEPEELARRQRRHPELSQGEAVASVIIYRTLAGLLPHNYDPDKRSLRVPKRPIINT
PVVSISVHDDEELLPRALDKPVTVQFRLLETEERTKPICVFWNHSILVSGTGGWSARGCE
VVFRNESHVSCQCNHMTSFAVLMDVSRRENGEILPLKTLTYVALGVTLAALLLTFFFLTL
LRILRSNQHGIRRNLTAALGLAQLVFLLGINQADLPFACTVIAILLHFLYLCTFSWALLE
ALHLYRALTEVRDVNTGPMRFYYMLGWGVPAFITGLAVGLDPEGYGNPDFCWLSIYDTLI

I would like to search any duplicate names in lines starting with '>' and add a sequential index to the end of the name so the file looks like

>Homo sapiens1
KQKCLYNLPFKRNLEGCRERCSLVIQIPRCCKGYFGRDCQACPGGPDAPCNNRGVCLDQY
SATGECKCNTGFNGTACEMCWPGRFGPDCLPCGCSDHGQCDDGITGSGQCLCETGWTGPS
CDTQAVLPAVCTPPCSAHATCKENNTCECNLDYEGDGITCTVVDFCKQDNGGCAKVARCS
QKGTKVSCSCQKGYKGDGHSCTEIDPCADGLNGGCHEHATCKMTGPGKHKCECKSHYVGD
>Rattus norvegicus1
WGSFSCDCPVGFGGKDCQLTMAHPHHFRGNGTLSWNFGSDMAVSVPWYLGLAFRTRATQG
VLMQVQAGPHSTLLCQLDRGLLSVTVTRGSGRASHLLLDQVTVSDGRWHDLRLELQEEPG
GRRGHHVLMVSLDFSLFQDTMAVGSELQGLKVKQLHVGGLPPGSAEEAPQGLVGCIQGVW
LGSTPSGSPALLPPSHRVNAEPGCVVTNACASGPCPPHADCRDLWQTFSCTCQPGYYGPG
CVDACLLNPCQNQGSCRHLPGAPHGYTCDCVGGYFGHHCEHRMDQQCPRGWWGSPTCGPC
NCDVHKGFDPNCNKTNGQCHCKEFHYRPRGSDSCLPCDCYPVGSTSRSCAPHSGQCPCRP
LPRRQPPRDYPGAMAGRFGSRDALDLGAPREWLSTLPPPRRTRDLDPQPPPLPLSPQRQL
SRDPLLPSRPLDSLSRSSNSREQLDQVPSRHPSREALGPLPQLLRAREDSVSGPSHGPST
EQLDILSSILASFNSSALSSVQSSSTPLGPHTTATPSATASVLGPSTPRSATSHSISELS
PDSEVPRSEGHS
>Homo sapiens2
QRNESGLDSGRSQQLALLLRNATQHTAGYFGSDVKVAYQLATRLLAHESTQRGFGLSATQ
DVHFTENLLRVGSALLDTANKRHWELIQQTEGGTAWLLQHYEAYASALAQNMRHTYLSPF
TIVTPNIVISVVRLDKGNFAGAKLPRYEALRGEQPPDLETTVILPESVFRETPPVVRPAG
PGEAQEPEELARRQRRHPELSQGEAVASVIIYRTLAGLLPHNYDPDKRSLRVPKRPIINT
PVVSISVHDDEELLPRALDKPVTVQFRLLETEERTKPICVFWNHSILVSGTGGWSARGCE
VVFRNESHVSCQCNHMTSFAVLMDVSRRENGEILPLKTLTYVALGVTLAALLLTFFFLTL
LRILRSNQHGIRRNLTAALGLAQLVFLLGINQADLPFACTVIAILLHFLYLCTFSWALLE
ALHLYRALTEVRDVNTGPMRFYYMLGWGVPAFITGLAVGLDPEGYGNPDFCWLSIYDTLI
WSFAGPVAFAVSMSVFLYILAARASCAAQRQGFEKKGPVSGLQPSFAVLLLLSATWLLAL
LSVNSDTLLFHYLFATCNCIQGPFIFLSYVVLSKEVRKALKLACSRKPSPDPALTTKSTL
TSSYNCPSPYADGRLYQPYGDSAGSLHSTSRSGKSQPSYIPFLLREESALNPGQGPPGLG
DPGSLFLEGQDQQHDPDTDSDSDLSLEDDQSGSYASTHSSDSEEEEEEEEEEAAFPGEQG
WDSLLGPGAERLPLHSTPKDGGPGPGKAPWPGDFGTTAKESSGNGAPEERLRENGDALSR
EGSLGPLPGSSAQPHKGILKKKCLPTISEKSSLLRLPLEQCTGSSRGSSASEGSRGGPPP
RPPPRQSLQEQLNGVMPIAMSIKAGTVDEDSSGSEFLFFNFLH
>Rattus norvegicus2
MKLLPSVVLKLFLAAVLSALVTGESLERLRRGLAAGTSNPDPPTVSTDQLLPLGGGRDRK
VRDLQEADLDLLRVTLSSKPQALATPNKEEHGKRKKKGKGLGKKRDPCLRKYKDFCIHGE
CKYVKELRAPSCICHPGYHGERCHGLSLPVENRLYTYDHTTILAVVAVVLSSVCLLVIVG
LLMFRYHRRGGYDVENEEKVKLGMTNSH
>Mus musculus
QRNESGLDSGRSQQLALLLRNATQHTAGYFGSDVKVAYQLATRLLAHESTQRGFGLSATQ
DVHFTENLLRVGSALLDTANKRHWELIQQTEGGTAWLLQHYEAYASALAQNMRHTYLSPF
TIVTPNIVISVVRLDKGNFAGAKLPRYEALRGEQPPDLETTVILPESVFRETPPVVRPAG
PGEAQEPEELARRQRRHPELSQGEAVASVIIYRTLAGLLPHNYDPDKRSLRVPKRPIINT
PVVSISVHDDEELLPRALDKPVTVQFRLLETEERTKPICVFWNHSILVSGTGGWSARGCE
VVFRNESHVSCQCNHMTSFAVLMDVSRRENGEILPLKTLTYVALGVTLAALLLTFFFLTL
LRILRSNQHGIRRNLTAALGLAQLVFLLGINQADLPFACTVIAILLHFLYLCTFSWALLE
ALHLYRALTEVRDVNTGPMRFYYMLGWGVPAFITGLAVGLDPEGYGNPDFCWLSIYDTLI

I have been able to add a sequential index to single names using
perl -pe 's/Homo sapiens/$& . ++$n/ge' sequences.fasta > sequences2.fasta
but without searching for duplicate names

Any help would be appreciated

How about

awk '/^>/ {$0 = $0 "" ++SUFF[$0]} 1' file
3 Likes

Thanks that worked perfectly