<div dir="ltr">Hi all,<div>I have the below GFF3 file:</div><div><br></div><div><i>##gff-version 3<br>NbV1Ch01     NbGenome     gene   98177  99675  .    -    .    ID=Nb3PK39646.path1;Name=Peroxidase 40<br>NbV1Ch01     NbGenome     mRNA   98177  99675  .    -    .    ID=Nb3PK39646.mrna1;Parent=Nb3PK39646.path1;Name=Nb3PK39646;coverage=99.8;identity=99.9;matches=1011;mismatches=1;indels=0;unknowns=0<br>NbV1Ch01     NbGenome     exon   98177  98571  100   -    .    ID=Nb3PK39646.mrna1.exon4;Parent=Nb3PK39646.mrna1;Name=Nb3PK39646;Target=Nb3PK39646 620 1014 +<br>NbV1Ch01     NbGenome     CDS   98177  98571  100   -    2    ID=Nb3PK39646.mrna1.cds4;Parent=Nb3PK39646.mrna1;Name=Nb3PK39646;Target=Nb3PK39646 620 1014 +<br>NbV1Ch01     NbGenome     exon   98679  98844  100   -    .    ID=Nb3PK39646.mrna1.exon3;Parent=Nb3PK39646.mrna1;Name=Nb3PK39646;Target=Nb3PK39646 454 619 +<br>NbV1Ch01     NbGenome     CDS   98679  98844  100   -    0    ID=Nb3PK39646.mrna1.cds3;Parent=Nb3PK39646.mrna1;Name=Nb3PK39646;Target=Nb3PK39646 454 619 +<br>NbV1Ch01     NbGenome     exon   99134  99325  99    -    .    ID=Nb3PK39646.mrna1.exon2;Parent=Nb3PK39646.mrna1;Name=Nb3PK39646;Target=Nb3PK39646 262 453 +<br>NbV1Ch01     NbGenome     CDS   99134  99325  99    -    0    ID=Nb3PK39646.mrna1.cds2;Parent=Nb3PK39646.mrna1;Name=Nb3PK39646;Target=Nb3PK39646 262 453 +<br>NbV1Ch01     NbGenome     CDS   99417  99674  100   -    0    ID=Nb3PK39646.mrna1.cds1;Parent=Nb3PK39646.mrna1;Name=Nb3PK39646;Target=Nb3PK39646 4 261 +<br>NbV1Ch01     NbGenome     exon   99417  99675  100   -    .    ID=Nb3PK39646.mrna1.exon1;Parent=Nb3PK39646.mrna1;Name=Nb3PK39646;Target=Nb3PK39646 3 261 +<br>###<br></i>NbV1Ch01     NbGenome     gene   1115558 1121491 .    +    .    ID=Nb3PK08375.path1;Name=Putative uncharacterized protein At1g50120<br>NbV1Ch01     NbGenome     mRNA   1115558 1121491 .    +    .    ID=Nb3PK08375.mrna1;Parent=Nb3PK08375.path1;Name=Nb3PK08375;coverage=100.0;identity=100.0;matches=399;mismatches=0;indels=0;unknowns=0<br>NbV1Ch01     NbGenome     exon   1115558 1115879 100   +    .    ID=Nb3PK08375.mrna1.exon1;Parent=Nb3PK08375.mrna1;Name=Nb3PK08375;Target=Nb3PK08375 1 322 +<br>NbV1Ch01     NbGenome     CDS   1115558 1115879 100   +    0    ID=Nb3PK08375.mrna1.cds1;Parent=Nb3PK08375.mrna1;Name=Nb3PK08375;Target=Nb3PK08375 1 322 +<br>NbV1Ch01     NbGenome     exon   1121415 1121491 100   +    .    ID=Nb3PK08375.mrna1.exon2;Parent=Nb3PK08375.mrna1;Name=Nb3PK08375;Target=Nb3PK08375 323 399 +<br>NbV1Ch01     NbGenome     CDS   1121415 1121491 100   +    2    ID=Nb3PK08375.mrna1.cds2;Parent=Nb3PK08375.mrna1;Name=Nb3PK08375;Target=Nb3PK08375 323 399 +<br>###<i><br></i></div><div><i>...</i><br><br>I would like to copy the "<i>Name=Peroxidase 40"</i> from gene feature and added into mRNA feature as "<i>Note=Peroxidase 40</i>". Unfortunately, the below script caused an error:<br></div><div><br></div><div><i>import pprint<br>from BCBio import GFF<br><br>in_file = "/Users/lorencm/tmp/Gmp_NbV1_Final.gff3"<br>out_file = "/Users/lorencm/tmp/Gmp_NbV1_Final.gff3.bak"<br>in_handle = open(in_file)<br><br>with open(out_file, "w") as out_handle:<br>  for rec in GFF.parse(in_handle):<br>    for feature in rec.features:<br>      print(feature)<br>      print(feature.qualifiers.get("Name"))<br>      print(feature.sub_features)<br>      print(feature.sub_features[0].qualifiers.get("Name"))<br>      print("!!!!change")<br>      feature.sub_features[0].qualifiers["Note"] = feature.qualifiers.get("Name")<br>      pprint.pprint(feature.sub_features[0].qualifiers.get("Note"))<br>      print("!!!DONE")<br>      out_file.write([rec])<br>in_handle.close()</i><br></div><div> </div><div>Here is output and error:</div><div><br></div><div><i>python /projects/test.py<br>type: gene<br>location: [98176:99675](-)<br>id: Nb3PK39646.path1<br>qualifiers:<br>  Key: ID, Value: ['Nb3PK39646.path1']<br>  Key: Name, Value: ['Peroxidase 40']<br>  Key: source, Value: ['NbGenome']<br><br>['Peroxidase 40']<br>[SeqFeature(FeatureLocation(ExactPosition(98176), ExactPosition(99675), strand=-1), type='mRNA', id='Nb3PK39646.mrna1')]<br>['Nb3PK39646']<br>!!!!change<br>['Peroxidase 40']<br>!!!DONE<br>Traceback (most recent call last):<br> File "test.py", line 19, in <module><br>  out_file.write([rec])<br>AttributeError: 'str' object has no attribute 'write'</i><br><div><br></div></div><div>What did I miss?</div><div><br></div><div>Thank you in advance,</div><div><br></div><div>Mic</div></div>