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() |