Merge pull request #5177 from solgenomics/topic/solgs/refactor-solgs-pipeline
[sgn.git] / db / 00076 / AddBrAPIPropertyCvterms.pm
blob6b683a0976deae863122038bcab99cb2b0b21bc0
1 #!/usr/bin/env perl
4 =head1 NAME
6 AddBrAPIPropertyCvterms.pm
8 =head1 SYNOPSIS
10 mx-run ThisPackageName [options] -H hostname -D dbname -u username [-F]
12 this is a subclass of L<CXGN::Metadata::Dbpatch>
13 see the perldoc of parent class for more details.
15 =head1 DESCRIPTION
16 This patch adds the necessary cvterms that are used for brapi germplasm, programs, and studies.
17 This subclass uses L<Moose>. The parent class uses L<MooseX::Runnable>
19 =head1 AUTHOR
21 Nick Morales
23 =head1 COPYRIGHT & LICENSE
25 Copyright 2010 Boyce Thompson Institute for Plant Research
27 This program is free software; you can redistribute it and/or modify
28 it under the same terms as Perl itself.
30 =cut
33 package AddBrAPIPropertyCvterms;
35 use Moose;
36 use Bio::Chado::Schema;
37 use Try::Tiny;
38 extends 'CXGN::Metadata::Dbpatch';
41 has '+description' => ( default => <<'' );
42 Description of this patch goes here
44 has '+prereq' => (
45 default => sub {
46 [],
51 sub patch {
52 my $self=shift;
54 print STDOUT "Executing the patch:\n " . $self->name . ".\n\nDescription:\n ". $self->description . ".\n\nExecuted by:\n " . $self->username . " .";
56 print STDOUT "\nChecking if this db_patch was executed before or if previous db_patches have been executed.\n";
58 print STDOUT "\nExecuting the SQL commands.\n";
59 my $schema = Bio::Chado::Schema->connect( sub { $self->dbh->clone } );
62 print STDERR "INSERTING CV TERMS...\n";
64 my $terms = {
65 'stock_property' => [
66 'accession number',
67 'PUI',
68 'donor',
69 'donor institute',
70 'donor PUI',
71 'seed source',
72 'institute code',
73 'institute name',
74 'biological status of accession code',
75 'country of origin',
76 'type of germplasm storage code',
77 'entry number',
78 'acquisition date'
80 'project_property' => [
81 'active',
82 'breeding_program_abbreviation'
84 'cvterm_property' => [
85 'uri',
86 #'date determined',
87 'datatype',
88 'code'
90 'geolocation_property' => [
91 'country_name',
92 'country_code',
93 'abbreviation',
94 'location_type',
95 'annual_total_precipitation',
96 'continent',
97 'annual_mean_temperature',
98 'adm1',
99 'adm2',
100 'adm3',
101 'local_name',
102 'region',
103 'alternative_name'
105 'organism_property' => [
106 'species authority',
107 'subtaxa',
108 'subtaxa authority',
110 'protocol_property' => [
111 'published date',
112 'protocol type',
113 'protocol unit',
114 'protocol comment'
118 foreach my $t (keys %$terms){
119 foreach (@{$terms->{$t}}){
120 $schema->resultset("Cv::Cvterm")->create_with({
121 name => $_,
122 cv => $t
128 print "You're done!\n";
132 ####
133 1; #
134 ####