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