Mercurial > repos > gga > apollo_create_or_update
annotate delete_features.py @ 17:3d693b93991f draft default tip
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 12282c16658b37858f49944796fd95515ef0fc0b
| author | gga | 
|---|---|
| date | Wed, 11 Jan 2023 11:46:55 +0000 | 
| parents | d72192ec8e39 | 
| children | 
| rev | line source | 
|---|---|
| 0 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 1 #!/usr/bin/env python | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 2 from __future__ import print_function | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 3 | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 4 import argparse | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 5 import logging | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 6 import random | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 7 | 
| 10 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 8 from apollo import accessible_organisms | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 9 from apollo.util import GuessOrg, OrgOrGuess, retry | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 10 | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 11 from arrow.apollo import get_apollo_instance | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 12 | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 13 from webapollo import UserObj, handle_credentials | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 14 | 
| 0 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 15 logging.basicConfig(level=logging.INFO) | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 16 log = logging.getLogger(__name__) | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 17 | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 18 | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 19 if __name__ == '__main__': | 
| 10 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 20 parser = argparse.ArgumentParser(description='Script to delete all features from an organism') | 
| 0 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 21 parser.add_argument('email', help='User Email') | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 22 parser.add_argument('--type', help='Feature type filter') | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 23 OrgOrGuess(parser) | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 24 | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 25 args = parser.parse_args() | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 26 | 
| 10 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 27 wa = get_apollo_instance() | 
| 0 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 28 # User must have an account | 
| 10 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 29 gx_user = UserObj(**wa.users._assert_or_create_user(args.email)) | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 30 handle_credentials(gx_user) | 
| 0 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 31 | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 32 # Get organism | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 33 org_cn = GuessOrg(args, wa) | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 34 if isinstance(org_cn, list): | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 35 org_cn = org_cn[0] | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 36 | 
| 10 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 37 all_orgs = wa.organisms.get_organisms() | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 38 if 'error' in all_orgs: | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 39 all_orgs = [] | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 40 all_orgs = [org['commonName'] for org in all_orgs] | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 41 if org_cn not in all_orgs: | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 42 raise Exception("Could not find organism %s" % org_cn) | 
| 0 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 43 | 
| 10 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 44 orgs = accessible_organisms(gx_user, [org_cn], 'WRITE') | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 45 if not orgs: | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 46 raise Exception("You do not have write permission on this organism") | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 47 org = wa.organisms.show_organism(org_cn) | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 48 | 
| 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 49 sequences = wa.organisms.get_sequences(org['id']) | 
| 0 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 50 for sequence in sequences['sequences']: | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 51 log.info("Processing %s %s", org['commonName'], sequence['name']) | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 52 # Call setSequence to tell apollo which organism we're working with | 
| 10 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 53 wa.annotations.set_sequence(org['id'], sequence['name']) | 
| 0 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 54 # Then get a list of features. | 
| 10 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 55 features = wa.annotations.get_features() | 
| 0 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 56 # For each feature in the features | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 57 for feature in sorted(features['features'], key=lambda x: random.random()): | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 58 if args.type: | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 59 if args.type == 'tRNA': | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 60 if feature['type']['name'] != 'tRNA': | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 61 continue | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 62 | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 63 elif args.type == 'terminator': | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 64 if feature['type']['name'] != 'terminator': | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 65 continue | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 66 | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 67 elif args.type == 'mRNA': | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 68 if feature['type']['name'] != 'mRNA': | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 69 continue | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 70 | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 71 else: | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 72 raise Exception("Unknown type") | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 73 | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 74 # We see that deleteFeatures wants a uniqueName, and so we pass | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 75 # is the uniquename field in the feature. | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 76 def fn(): | 
| 10 
d72192ec8e39
"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 08015be1ee8a784e0619f961aaa724857debfd6f"
 gga parents: 
5diff
changeset | 77 wa.annotations.delete_feature(feature['uniquename']) | 
| 0 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 78 print('Deleted %s [type=%s]' % (feature['uniquename'], feature['type']['name'])) | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 79 | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 80 if not retry(fn, limit=3): | 
| 
cd595b5d890a
planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit f745b23c84a615bf434d717c8c0e553a012f0268
 gga parents: diff
changeset | 81 print('Error %s' % feature['uniquename']) | 
