Mercurial > repos > cpt > cpt_gff_split
annotate gff3_splitgff.py @ 3:8bd03ba8510a draft
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
| author | cpt | 
|---|---|
| date | Fri, 28 Apr 2023 01:35:25 +0000 | 
| parents | |
| children | 
| rev | line source | 
|---|---|
| 3 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 1 #!/usr/bin/env python | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 2 import sys | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 3 import argparse | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 4 from Bio import SeqIO | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 5 from Bio.Seq import Seq | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 6 from CPT_GFFParser import gffParse, gffWrite | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 7 | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 8 if __name__ == "__main__": | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 9 parser = argparse.ArgumentParser( | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 10 description="Sample script to add an attribute to a feature via web services" | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 11 ) | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 12 parser.add_argument("data", type=argparse.FileType("r"), help="GFF3 File") | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 13 parser.add_argument( | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 14 "--gff", | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 15 type=argparse.FileType("w"), | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 16 help="Output Annotations", | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 17 default="data.gff3", | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 18 ) | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 19 parser.add_argument( | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 20 "--fasta", | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 21 type=argparse.FileType("w"), | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 22 help="Output Sequence", | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 23 default="data.fa", | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 24 ) | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 25 args = parser.parse_args() | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 26 | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 27 for record in gffParse(args.data): | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 28 gffWrite([record], args.gff) | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 29 record.description = "" | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 30 | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 31 if isinstance(record.seq, str): | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 32 record.seq = Seq(record.seq) | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 33 | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 34 SeqIO.write([record], args.fasta, "fasta") | 
| 
8bd03ba8510a
planemo upload commit edc74553919d09dcbe27fcadf144612c1ad3a2a2
 cpt parents: diff
changeset | 35 sys.exit() | 
