This is a test version of Biostars. For the public version, visit https://www.biostars.org.
How to create name/rename on header of fasta file with python script?

Hello everyone,

I would like to create my gene name in header of fasta file, Could anyone help me to create python script for me please?

Original name from gene prediction tool :

unitig0_FGENESH: 7 7 exon (s) 66831 - 67787 71 aa, chain - MCIECVRVLHGFGLNAYIGGARETKRGLGCATVKPATSFFNKGKKEKGLREVFSERYYYYTPWLATPYIKL unitig0_FGENESH: 8 4 exon (s) 70846 - 72746 472 aa, chain + MHESDALDRGTDIRLSPSSTTNICDSKLPLDNESLSQASAAGQGLSEKERELFENAQWQIRSHYLTGSGVDEPGVVKLDDGAVLPLMKKRDIRKDRVSGSKEAKPIPVFPEDRVSEIEIHPDHHDLHKMNGKSNIFVLKTFRHPRDPEIAEEDFKAELLANRQLPRHERIVPLLAAFEFENEFHLIFPFAHQGDLESLWKRTKMLPKHPLPGWYSPRWLLRECLGIAEALVETHSPTLPNNGAGSTVWVPQLHADIKARNILCFQSNDQAPPLLKLADFGYSQRAGEDGALNINGGLPHTKTYRPPERDIENFVGLNYDVWCLGCLYLDFITWAIIGYKGIEDFNESRMEEKNDKYVSKARGNDAEDIFFKKLARLPRWYDASALRFHSQRTEKLYKNTAFAQRSFTFSRGVIKISCDIKISVIQVNGQCQPEFRKLLKIIENDMLVVERQKRASSSKIKSLLQEVIRPQGL unitig1_FGENESH: 201 6 exon (s) 834292 - 836282 511 aa, chain + MYSLITKTLRNEEPSEVELEVVATLVELLTIDLYNLRLSQIGHPMYANFEGVTFRGLSITLEELEEYKAILARPELAKRNFSVPLGLLSSSTDEKIMEEFSKSTHSDGKRPIQLHLTIHIHGLDPALLREYRRLYPDSVVSSICAMPVGHVSPHGEKEILLRGPFFHMISMSSGELNGRPCEKLVVVMMNANRDHGMEHASDQGAKERQRQCFLRAVSASKYEVCAAIAEKHAPWDANAYRTLQNNALQQLQDIDGIYAITDGHLAEHRAKNVATWLGGALRKSYPRYYAKKRVSWQTMIRDENWKEADKILRAEYEWKKRDWYNVGQLTDDGGEFVDDNLTLLHILATKPPPPSAETDRFECWQRLIDGACQPEVWTRRCGNEGLMERLQPRIVHALDPAALGDLELRLHKIMVEKFGQFLSEHIFHMPQLSVLTEMDIPELWIPIPLSYGGVFVTLSKPERIWGLDVVVYEVVVGQTWPKKTDCSLGIYDLARSPDLVYWSSIGDQSSA unitig1_FGENESH: 202 5 exon (s) 836941 - 841297 1319 aa, chain + MASTPFPGSQWPRETPSEDISDQRNNSFYRDRDSSRQTTWDTTDEQSSTEYKNETTSPDSVYHNGYKMWNSIWLQTQVLAGLLVLFVALFLVTILLYHFSEKNHGLSAEDATRQYGWRYGPTAFLTIILSLWVQIDFSNKILTPWQEMRQGHTTADRSVLLEYISPLMITSLWRALKNRHWAVTASGLGILLIQLATVFSTGLFVLQPTALEQDDIPVVVNSVFDGSDFHLTNTSSTIGTGPAILYYGTRVHGLDPLPGVDVSRGLVVPDFTPFTEKAMAGGTNYTAIVPGVESSLDCEYIPALTNATRTSLPWWSILSAFFVLNVTTPSCSISNIIVGQGPDHNIYHQPNATQAYQGYFGDYICDPNINYGFYELPDPSNTTLEHRIVMTMADLRFPPREPRGAGPAYIYIHNLTVAVCKAGYARADYEVTYREGIAGQTKSWTSNKLSTSSSEIPGFSSAQLGAAVHSSLDQAYLGTGGQDWVLSKQVPSFYQILSAMNNNVSIGHFMEPRNLIDSATEAFNGIATQLIYKHMMKPSNTTISGSLLYQEDRLWVRALSVGFMGAAFLLLAGLVIVLLIFRPWNVVPSDPGSIGATALILTESSALRDLLMGLGAARSSQIRHRLSSYNFRSVVSPGPRKTFTVVAIEHGQPTVHQDMLGCSPPQSEHWWVPSAVKWWFQFIAVLLPLVIIAVLEILQRLSDQNNGFVDLGPDGFASTHGLSTYVPAVVAFVVASMFASLQLAVCILAPWLALHKGSAPASRSLFLNLTNRLAPHRMFLAFKNGNLGEVLIMMATFLAAWLPILVSGLYVTIPGTTPQSVTLKQSDVFDFKLNNLFYDDHLAGTVAGLIAFDDLPYRQWTYGDLVFNQLETIDGPGNTAAGNEVPFTARLKATRPSLDCTVVPAHSTMASWDKKQTDYRSIPEDKVALNLTSSIPWMCERRNGNITSVPWFQGFALPKDGRPIYFGHASVLSWGGKVFGNRAIITDVNRPGATSFTPESVANWVGGYGCPSFAVTLGRGSAVSKASGNSTTYDFDIDVTSILCSQRMEVVDTDVTLTLPSLGVISHDTPPVPDESTARYLVNTLRNHTSQIFEFPLNNLLLTLAYGTGEIIIPTSDGEENQLDPFVQFLATVNVSSPIDSLVGRNNSQNLIDATNRLYKTYMPQAIDRNMRTKNLETEVATPDSANAKVEPIQFTTRPEFPGRLRLKQEAAPKIALQAILGFMVLCAILSRVLLKGIDKLVPHNPCSIAGRAALFADGEVSTRKLVPYGAEWRTESELSSAGVYAGWLFSLGWWESWGVYKYGVDIGWIDRGKAENQM unitig153_FGENESH: 674 5 exon (s) 2967149 - 2968758 393 aa, chain + MGVGAVKYTQVACTVCIVTGMLIGICGAKCAGKKTVARYLVEHHGFKSLHIENQAPDPIQNGISPSEASGTEASPGSHANTVEEENDANTRDLVIRPKNGAMRSLHIFESEGALLDFVTKHWRSRWVTTDIHSEAVLDALNRRPFFILISVDAPVTVRWRRHQARQKQVSRPRKGSTSFEDFVAESDAHLYAAHGGVLPLMSRAAIRLLNTSDSLAHLYATLGKLDLTNGDRLRPSWDSYFMALASLAARRCNCMKRAVGCVLVDSKRRVISTGYNGTPRNLTNCMEGGCPRCNSGDATSGVSLATCLCLHAEENALLEAGRERIRDGSVLYCNTCPCLTCSIKIVQVGISEVVYNQGYSMDGETARVFLSAGVKLRQFSPPADGLIHLEKTE unitig153_FGENESH: 675 3 exon (s) 2969361 - 2969732 65 aa, chain - MPAINTAVVARDTVHQLARRENWAQQEAGVIVVFAIVFVVGVGLISLWISKLLKKRKAKKAALGA unitig3_FGENESH: 655 3 exon (s) 2965882 - 2966129 12 aa, chain + MCSVPLLLTLLQ unitig3_FGENESH: 656 4 exon (s) 2973820 - 2977069 384 aa, chain + MQMDRDFEELKEGVKVVGAVILEVQHTVEECKGKISESGEKLEMVRVGLNDFATDMNTLVNSVEADGGSQQGPRPLLQGSLQGRIPQLENENTFLRKGVDTLQATIQNMQQKHAYELAARTSHLQKRDDRCHHQLDRQAELITNVIDTIYSVFADYKEELRLLTHVNAREHNNRAPATDEIRPLSHAAPPHNHFLHHLGGETQGNPILRPEEQPGHDSDTGSSVDFDHDFRQCLREHITEVLDWYQSTVVAAEDVKSLAQRVDHFIYIMCKYHAEQGKIPTIQDVQLGVRILPLPREILLTREGSSTIPDPGHMPIHEEETRRPASAENLAPRSASSSLTFVDEDKVGIEELDITESFVEEGTDAVSRGSDFSCSCEGLPSRFT

and I would like to convert name or rename like this :

XY000_2FG00001_00007 MCIECVRVLHGFGLNAYIGGARETKRGLGCATVKPATSFFNKGKKEKGLREVFSERYYYYTPWLATPYIKL XY000_1FG00002_00008 MHESDALDRGTDIRLSPSSTTNICDSKLPLDNESLSQASAAGQGLSEKERELFENAQWQIRSHYLTGSGVDEPGVVKLDDGAVLPLMKKRDIRKDRVSGSKEAKPIPVFPEDRVSEIEIHPDHHDLHKMNGKSNIFVLKTFRHPRDPEIAEEDFKAELLANRQLPRHERIVPLLAAFEFENEFHLIFPFAHQGDLESLWKRTKMLPKHPLPGWYSPRWLLRECLGIAEALVETHSPTLPNNGAGSTVWVPQLHADIKARNILCFQSNDQAPPLLKLADFGYSQRAGEDGALNINGGLPHTKTYRPPERDIENFVGLNYDVWCLGCLYLDFITWAIIGYKGIEDFNESRMEEKNDKYVSKARGNDAEDIFFKKLARLPRWYDASALRFHSQRTEKLYKNTAFAQRSFTFSRGVIKISCDIKISVIQVNGQCQPEFRKLLKIIENDMLVVERQKRASSSKIKSLLQEVIRPQGL XY001_1FG00003_00201 MYSLITKTLRNEEPSEVELEVVATLVELLTIDLYNLRLSQIGHPMYANFEGVTFRGLSITLEELEEYKAILARPELAKRNFSVPLGLLSSSTDEKIMEEFSKSTHSDGKRPIQLHLTIHIHGLDPALLREYRRLYPDSVVSSICAMPVGHVSPHGEKEILLRGPFFHMISMSSGELNGRPCEKLVVVMMNANRDHGMEHASDQGAKERQRQCFLRAVSASKYEVCAAIAEKHAPWDANAYRTLQNNALQQLQDIDGIYAITDGHLAEHRAKNVATWLGGALRKSYPRYYAKKRVSWQTMIRDENWKEADKILRAEYEWKKRDWYNVGQLTDDGGEFVDDNLTLLHILATKPPPPSAETDRFECWQRLIDGACQPEVWTRRCGNEGLMERLQPRIVHALDPAALGDLELRLHKIMVEKFGQFLSEHIFHMPQLSVLTEMDIPELWIPIPLSYGGVFVTLSKPERIWGLDVVVYEVVVGQTWPKKTDCSLGIYDLARSPDLVYWSSIGDQSSA XY001_1FG00004_00202 MASTPFPGSQWPRETPSEDISDQRNNSFYRDRDSSRQTTWDTTDEQSSTEYKNETTSPDSVYHNGYKMWNSIWLQTQVLAGLLVLFVALFLVTILLYHFSEKNHGLSAEDATRQYGWRYGPTAFLTIILSLWVQIDFSNKILTPWQEMRQGHTTADRSVLLEYISPLMITSLWRALKNRHWAVTASGLGILLIQLATVFSTGLFVLQPTALEQDDIPVVVNSVFDGSDFHLTNTSSTIGTGPAILYYGTRVHGLDPLPGVDVSRGLVVPDFTPFTEKAMAGGTNYTAIVPGVESSLDCEYIPALTNATRTSLPWWSILSAFFVLNVTTPSCSISNIIVGQGPDHNIYHQPNATQAYQGYFGDYICDPNINYGFYELPDPSNTTLEHRIVMTMADLRFPPREPRGAGPAYIYIHNLTVAVCKAGYARADYEVTYREGIAGQTKSWTSNKLSTSSSEIPGFSSAQLGAAVHSSLDQAYLGTGGQDWVLSKQVPSFYQILSAMNNNVSIGHFMEPRNLIDSATEAFNGIATQLIYKHMMKPSNTTISGSLLYQEDRLWVRALSVGFMGAAFLLLAGLVIVLLIFRPWNVVPSDPGSIGATALILTESSALRDLLMGLGAARSSQIRHRLSSYNFRSVVSPGPRKTFTVVAIEHGQPTVHQDMLGCSPPQSEHWWVPSAVKWWFQFIAVLLPLVIIAVLEILQRLSDQNNGFVDLGPDGFASTHGLSTYVPAVVAFVVASMFASLQLAVCILAPWLALHKGSAPASRSLFLNLTNRLAPHRMFLAFKNGNLGEVLIMMATFLAAWLPILVSGLYVTIPGTTPQSVTLKQSDVFDFKLNNLFYDDHLAGTVAGLIAFDDLPYRQWTYGDLVFNQLETIDGPGNTAAGNEVPFTARLKATRPSLDCTVVPAHSTMASWDKKQTDYRSIPEDKVALNLTSSIPWMCERRNGNITSVPWFQGFALPKDGRPIYFGHASVLSWGGKVFGNRAIITDVNRPGATSFTPESVANWVGGYGCPSFAVTLGRGSAVSKASGNSTTYDFDIDVTSILCSQRMEVVDTDVTLTLPSLGVISHDTPPVPDESTARYLVNTLRNHTSQIFEFPLNNLLLTLAYGTGEIIIPTSDGEENQLDPFVQFLATVNVSSPIDSLVGRNNSQNLIDATNRLYKTYMPQAIDRNMRTKNLETEVATPDSANAKVEPIQFTTRPEFPGRLRLKQEAAPKIALQAILGFMVLCAILSRVLLKGIDKLVPHNPCSIAGRAALFADGEVSTRKLVPYGAEWRTESELSSAGVYAGWLFSLGWWESWGVYKYGVDIGWIDRGKAENQM XY153_1FG00005_00674 MGVGAVKYTQVACTVCIVTGMLIGICGAKCAGKKTVARYLVEHHGFKSLHIENQAPDPIQNGISPSEASGTEASPGSHANTVEEENDANTRDLVIRPKNGAMRSLHIFESEGALLDFVTKHWRSRWVTTDIHSEAVLDALNRRPFFILISVDAPVTVRWRRHQARQKQVSRPRKGSTSFEDFVAESDAHLYAAHGGVLPLMSRAAIRLLNTSDSLAHLYATLGKLDLTNGDRLRPSWDSYFMALASLAARRCNCMKRAVGCVLVDSKRRVISTGYNGTPRNLTNCMEGGCPRCNSGDATSGVSLATCLCLHAEENALLEAGRERIRDGSVLYCNTCPCLTCSIKIVQVGISEVVYNQGYSMDGETARVFLSAGVKLRQFSPPADGLIHLEKTE XY153_2FG00006_00675 MPAINTAVVARDTVHQLARRENWAQQEAGVIVVFAIVFVVGVGLISLWISKLLKKRKAKKAALGA XY003_1FG00007_00655 MCSVPLLLTLLQ XY003_1FG00008_00656 MQMDRDFEELKEGVKVVGAVILEVQHTVEECKGKISESGEKLEMVRVGLNDFATDMNTLVNSVEADGGSQQGPRPLLQGSLQGRIPQLENENTFLRKGVDTLQATIQNMQQKHAYELAARTSHLQKRDDRCHHQLDRQAELITNVIDTIYSVFADYKEELRLLTHVNAREHNNRAPATDEIRPLSHAAPPHNHFLHHLGGETQGNPILRPEEQPGHDSDTGSSVDFDHDFRQCLREHITEVLDWYQSTVVAAEDVKSLAQRVDHFIYIMCKYHAEQGKIPTIQDVQLGVRILPLPREILLTREGSSTIPDPGHMPIHEEETRRPASAENLAPRSASSSLTFVDEDKVGIEELDITESFVEEGTDAVSRGSDFSCSCEGLPSRFT

Gene name in XY000_2FG00001_00007 XY = my species name 000 = name of contig (unitig1, unitig2, unitig153.....) 1/2 = strand (if strand + = 1, strand - = 2) FG = FGENESH gene prediction tool 00001 = number of total gene ( I have 12112 genes) [00000, 00001, 00002, 00003, ...., 12112] 00007 = No. of gene ( when predict gene by FGENESH tool) [7, 8 201, 202, 674, 675, 655, 656....]

If anyone know to create python script for my problem, please help me or suggestion me.?

Thank you for advance

python rename fasta header script

1 answer

Hi,

I would loop over each line, and every two line, split the line to get the info you need.

ex:

line_number = 1
with open("file_path", 'r') as f:
      for line in f:
            if(line_number % 2 != 0): #odd line (id)
                  contig = line.split('_')[0]
                  strand = line[-1:]
                  # ..... get all fields you need and print the id in the good format
            else:
                  print line #even line (protein sequence)

Thank you very much 'guillaume.rbt', I will try to do this script.

Log in to answer this question.