Mercurial > repos > cpt > cpt_gff_split
annotate gff3_splitgff.py @ 5:ba8b6a5ffd9e draft default tip
planemo upload commit bd6df65b549fbec575d891285d194f55340ee52d
author | cpt |
---|---|
date | Fri, 24 May 2024 03:13:25 +0000 |
parents | 8bd03ba8510a |
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() |