#!/usr/bin/env perl use strict; use warnings; use Bio::SeqIO; #Read and store .FASTA file my %sequences; my $seqio = Bio::SeqIO->new(-file => $ARGV[0]); while(my $seqobj = $seqio->next_seq) { my $id = $seqobj->display_id; my $seq = $seqobj->seq; $sequences{$id} = $seq; } #Variant Input File & Output my $variants = $ARGV[1]; open IN, '<', $variants or die "$!"; open OUT, '>', 'output.txt' or die "$!"; #Loops my $iteration = 0; foreach my $key (sort keys%sequences) { $iteration ++; my $value = $sequences{$key}; while () { my (@F) = split("\t", $_); if ($F[0] eq $key) { substr($value,0,$F[1]) = $F[3]; } else { last } } print OUT ">$key\n$value" if $iteration=~1; print OUT "\n>$key\n$value" if $iteration>1; }