Skip to content

Instantly share code, notes, and snippets.

@bellerbrock
bellerbrock / breedbase_docker_deployment.txt
Last active October 21, 2019 01:36
Deploying breedbase via docker
#Docker deployments are now even easier and handled via docker-compose
git clone https://github.com/solgenomics/breedbase_dockerfile.git
cd breedbase_dockerfile
# For development
./prepare.sh
mkdir archive
mv sgn_local.conf.template sgn_local.conf # Edit default and add web_usr password
sudo docker-compose up -d
@bellerbrock
bellerbrock / gist:e936e6f1595c5552c60e715c9576dfc2
Last active December 4, 2019 18:58
Trait component ontology update
# starting in the cxgn directory clone or pull the latest updates in the sgn and Chado repos
git clone https://github.com/solgenomics/sgn.git
git clone https://github.com/GMOD/Chado.git
# Load the ontology terms
# If you get a message about missing packages it may be necessary to add to Chado modules to perl5lib: export PERL5LIB=/home/production/cxgn/Chado/chado/lib:$PERL5LIB
perl Chado/chado/bin/gmod_load_cvterms.pl -H db4.sgn.cornell.edu -D sandbox_batatabase -s TIME -d Pg -r postgres -p <PASSWORD> -n cxgn_time_ontology -u -v sgn/ontology/cxgn_time.obo
1. Download the latest schemaspy release from https://github.com/schemaspy/schemaspy
2. Check your java installation, and if not installed already install the required version of java. In this case java 8
To check:
java -version
update-alternatives --list java
To install: (from https://www.vultr.com/docs/how-to-manually-install-java-8-on-ubuntu-16-04)
@bellerbrock
bellerbrock / Editing trait ontology obo file in protege
Last active August 5, 2019 19:18
Editing trait ontology obo file in protege
Step 1: Download and install Protege.
Step 2: Git clone the ontology repository into local directory.
Step 3: run git checkout -c topic/your_new_topic.
Step 4: Run Protege (./run.sh on linux) and load the .obo file.
Step 5: go to File -> Preferences -> New Entities. Set Auto Generated ID to Numeric, and set Start to an id that will start filling in an unused sequence.
Step 6: Go to entities tab and add new terms by selecting parent class and clicking add subclass.
Step 7: When finished with edits, go to file -> save as and save as obo file.
Step 8: Finally add to git with git add -u, git commit -m "your message here", and git push --set-upstream topic/your_new_topic.
Step 9: Repeat with futher commits as needed, then go to github.com and submit pull request.
@bellerbrock
bellerbrock / Ontology Update example
Last active March 17, 2021 20:51
Ontology Update example
# Start by cloning or pulling the latest updates in the ibp-sweetpotato-traits and Chado repos
git clone https://github.com/Planteome/ibp-sweetpotato-traits.git
git clone https://github.com/GMOD/Chado.git
# Load the ontology terms, then update cvterm paths. It may be necessary to add to Chado modules to perl5lib: export PERL5LIB=/home/production/cxgn/Chado/chado/lib:$PERL5LIB
perl Chado/chado/bin/gmod_load_cvterms.pl -H db4.sgn.cornell.edu -D sandbox_batatabase -s CO_331 -d Pg -r postgres -p <PASSWORD> -n SweetpotatoTrait -u -v ibp-sweetpotato-traits/sweetpotato_trait.obo
perl Chado/chado/bin/gmod_make_cvtermpath.pl -H db4.sgn.cornell.edu -D sandbox_batatabase -d Pg -u postgres -p <PASSWORD> -c SweetpotatoTrait
# Example for other ontologies
sudo R
update.packages(ask=TRUE)
install.packages('devtools')
devtools::install_github('c5sire/brapi')
quit()
ssh production@vm-04.sgn.cornell.edu
sudo xl list
sudo xl destroy hidap.sgn.cornell.edu
sudo xl create /etc/xen/hidap.sgn.cornell.edu.cfg
ssh production@hidap.sgn.cornell.edu
sudo systemctl restart shiny-server
commit and push, or pull all branches to be included in update into master branch.
1. run tests, including unit, unit fixture, and selenium tests.
- for unit tests: `perl t/test_fixture.pl --noserver t/unit`
- for unit_fixture tests: `perl t/test_fixture.pl t/unit_fixture
- for selenium tests:
run selenium2 server in seperate terminal with `java -jar selenium-server-standalone-2.53.0.jar`. This jar file should be in the vagrant home directory
then run `perl t/test_fixture.pl t/selenium2/`
if any tests fail, they can be run individually and troubleshot to make any necessary fixes to the code on the master branch, or to update the test itself
query for no misisng values:
SELECT table1.accession_id, table1.accession_name, table1.trait1, table2.trait2, table3.trait3 from (SELECT accession_id, accession_name, avg(phenotype_value::real) as trait1 FROM materialized_phenoview WHERE trial_id = 122 AND trait_id = 70741 group by 1,2) as table1 join (SELECT accession_id, accession_name, avg(phenotype_value::real) as trait2 FROM materialized_phenoview WHERE trial_id = 122 AND trait_id = 70691 group by 1,2) as table2 using(accession_id) join (SELECT accession_id, accession_name, avg(phenotype_value::real) as trait3 FROM materialized_phenoview WHERE trial_id = 122 AND trait_id = 70762 group by 1,2) as table3 using(accession_id) order by 2;
query for allowing missing values:
SELECT table0.accession_id, table0.accession_name, table1.trait1, table2.trait2, table3.trait3 from (SELECT accession_id, accession_name from materialized_phenoview WHERE trial_id = 122 group by 1,2) as table0 full outer join (SELECT accession_id, accession_name, avg(phenotype_value::re
@bellerbrock
bellerbrock / Create temp user accounts
Last active May 6, 2019 20:06
Create temp user accounts en masse for workshops
#here's how I was able to create temp user accounts en masse for spb workshops. Could prove useful for future workshops:
Step1:
Manually create a dummy account through the test site's user interface. Give it username 'password_source' and the password that you want to use for all the temp user accounts.
Then, connect to the test database using psql and run:
begin;
insert into sgn_people.sp_person (first_name, last_name, username, password, private_email, user_type) (select 'test' as first_name, 'user' || i as last_name, 'testuser' || i as username, (select password from sgn_people.sp_person where username = 'password_source') as password, 'spbuser' || i || '@mailinator.com' as email, 'submitter' as user_type from generate_Series(0,50) as i);