├── .gitignore
├── .seqUtils.clj.swp
├── Procfile
├── README
├── README_CLOJURE
├── README_GettingStarted
├── README_HEROKU
├── README_JMOL
├── README_MOTIF
├── README_NMR
├── bioclojure2
├── Procfile
├── README
├── README_CLOJURE
├── README_GettingStarted
├── README_HEROKU
├── README_JMOL
├── README_MOTIF
├── README_NMR
├── data
│ └── sample.fa
├── jmol-12.0.49
│ ├── CHANGES.txt
│ ├── COPYRIGHT.txt
│ ├── Jmol.jar
│ ├── Jmol.js
│ ├── JmolApplet.jar
│ ├── JmolApplet0.jar
│ ├── JmolApplet0_Console.jar
│ ├── JmolApplet0_Minimize.jar
│ ├── JmolApplet0_Popup.jar
│ ├── JmolApplet0_ReadersCifPdb.jar
│ ├── JmolApplet0_ReadersMolXyz.jar
│ ├── JmolApplet0_ReadersMore.jar
│ ├── JmolApplet0_ReadersQuantum.jar
│ ├── JmolApplet0_ReadersSimple.jar
│ ├── JmolApplet0_ReadersXml.jar
│ ├── JmolApplet0_ReadersXtal.jar
│ ├── JmolApplet0_ShapeBio.jar
│ ├── JmolApplet0_ShapeSpecial.jar
│ ├── JmolApplet0_ShapeSurface.jar
│ ├── JmolApplet0_Smiles.jar
│ ├── JmolApplet0_Symmetry.jar
│ ├── JmolApplet0_i18n_ar.jar
│ ├── JmolApplet0_i18n_ca.jar
│ ├── JmolApplet0_i18n_cs.jar
│ ├── JmolApplet0_i18n_da.jar
│ ├── JmolApplet0_i18n_de.jar
│ ├── JmolApplet0_i18n_el.jar
│ ├── JmolApplet0_i18n_en_GB.jar
│ ├── JmolApplet0_i18n_es.jar
│ ├── JmolApplet0_i18n_et.jar
│ ├── JmolApplet0_i18n_fi.jar
│ ├── JmolApplet0_i18n_fr.jar
│ ├── JmolApplet0_i18n_hu.jar
│ ├── JmolApplet0_i18n_id.jar
│ ├── JmolApplet0_i18n_it.jar
│ ├── JmolApplet0_i18n_ko.jar
│ ├── JmolApplet0_i18n_nb.jar
│ ├── JmolApplet0_i18n_nl.jar
│ ├── JmolApplet0_i18n_oc.jar
│ ├── JmolApplet0_i18n_pl.jar
│ ├── JmolApplet0_i18n_pt.jar
│ ├── JmolApplet0_i18n_pt_BR.jar
│ ├── JmolApplet0_i18n_ru.jar
│ ├── JmolApplet0_i18n_sl.jar
│ ├── JmolApplet0_i18n_sv.jar
│ ├── JmolApplet0_i18n_ta.jar
│ ├── JmolApplet0_i18n_tr.jar
│ ├── JmolApplet0_i18n_uk.jar
│ ├── JmolApplet0_i18n_zh_CN.jar
│ ├── JmolApplet0_i18n_zh_TW.jar
│ ├── JmolAppletSigned.jar
│ ├── JmolAppletSigned0.jar
│ ├── JmolAppletSigned0_Console.jar
│ ├── JmolAppletSigned0_Minimize.jar
│ ├── JmolAppletSigned0_MultiTouch.jar
│ ├── JmolAppletSigned0_Popup.jar
│ ├── JmolAppletSigned0_ReadersCifPdb.jar
│ ├── JmolAppletSigned0_ReadersMolXyz.jar
│ ├── JmolAppletSigned0_ReadersMore.jar
│ ├── JmolAppletSigned0_ReadersQuantum.jar
│ ├── JmolAppletSigned0_ReadersSimple.jar
│ ├── JmolAppletSigned0_ReadersXml.jar
│ ├── JmolAppletSigned0_ReadersXtal.jar
│ ├── JmolAppletSigned0_ShapeBio.jar
│ ├── JmolAppletSigned0_ShapeSpecial.jar
│ ├── JmolAppletSigned0_ShapeSurface.jar
│ ├── JmolAppletSigned0_Smiles.jar
│ ├── JmolAppletSigned0_Symmetry.jar
│ ├── JmolAppletSigned0_i18n_ar.jar
│ ├── JmolAppletSigned0_i18n_ca.jar
│ ├── JmolAppletSigned0_i18n_cs.jar
│ ├── JmolAppletSigned0_i18n_da.jar
│ ├── JmolAppletSigned0_i18n_de.jar
│ ├── JmolAppletSigned0_i18n_el.jar
│ ├── JmolAppletSigned0_i18n_en_GB.jar
│ ├── JmolAppletSigned0_i18n_es.jar
│ ├── JmolAppletSigned0_i18n_et.jar
│ ├── JmolAppletSigned0_i18n_fi.jar
│ ├── JmolAppletSigned0_i18n_fr.jar
│ ├── JmolAppletSigned0_i18n_hu.jar
│ ├── JmolAppletSigned0_i18n_id.jar
│ ├── JmolAppletSigned0_i18n_it.jar
│ ├── JmolAppletSigned0_i18n_ko.jar
│ ├── JmolAppletSigned0_i18n_nb.jar
│ ├── JmolAppletSigned0_i18n_nl.jar
│ ├── JmolAppletSigned0_i18n_oc.jar
│ ├── JmolAppletSigned0_i18n_pl.jar
│ ├── JmolAppletSigned0_i18n_pt.jar
│ ├── JmolAppletSigned0_i18n_pt_BR.jar
│ ├── JmolAppletSigned0_i18n_ru.jar
│ ├── JmolAppletSigned0_i18n_sl.jar
│ ├── JmolAppletSigned0_i18n_sv.jar
│ ├── JmolAppletSigned0_i18n_ta.jar
│ ├── JmolAppletSigned0_i18n_tr.jar
│ ├── JmolAppletSigned0_i18n_uk.jar
│ ├── JmolAppletSigned0_i18n_zh_CN.jar
│ ├── JmolAppletSigned0_i18n_zh_TW.jar
│ ├── JmolData.jar
│ ├── LEAME.txt
│ ├── LICENSE.txt
│ ├── README.txt
│ ├── jmol
│ ├── jmol.bat
│ ├── jmol.mac
│ └── jmol.sh
├── project.clj
├── resources
│ ├── 6adh.pdb
│ ├── sample.fa
│ ├── seqinput.txt
│ └── venn_nmr
│ │ ├── assigned-shifts.txt
│ │ ├── bmrbstats.txt
│ │ └── sequence.txt
├── src
│ ├── BioClojure
│ │ ├── .commons.clj.swp
│ │ ├── .vimrc
│ │ ├── backup
│ │ │ ├── clomol.clj
│ │ │ ├── commons.clj
│ │ │ ├── funcUtils.clj
│ │ │ ├── nmrSampleSchedule.clj
│ │ │ ├── nmrshifts.clj
│ │ │ ├── seqUtils.clj
│ │ │ ├── venn_nmr.mwb
│ │ │ └── vennnmr.clj
│ │ ├── clomol.clj
│ │ ├── commons.clj
│ │ ├── funcUtils.clj
│ │ ├── nmrSampleSchedule.clj
│ │ ├── nmrshifts.clj
│ │ ├── seqUtils.clj
│ │ ├── venn_nmr.mwb
│ │ └── vennnmr.clj
│ └── demo
│ │ └── web.clj
└── test
│ └── BioClojure
│ └── test
│ ├── nmrshifts.clj
│ └── vennnmr.clj
├── bioclojure_copy
└── src
│ └── BioClojure
│ └── f.clj
├── data
└── sample.fa
├── jmol-12.0.49
├── CHANGES.txt
├── COPYRIGHT.txt
├── Jmol.jar
├── Jmol.js
├── JmolApplet.jar
├── JmolApplet0.jar
├── JmolApplet0_Console.jar
├── JmolApplet0_Minimize.jar
├── JmolApplet0_Popup.jar
├── JmolApplet0_ReadersCifPdb.jar
├── JmolApplet0_ReadersMolXyz.jar
├── JmolApplet0_ReadersMore.jar
├── JmolApplet0_ReadersQuantum.jar
├── JmolApplet0_ReadersSimple.jar
├── JmolApplet0_ReadersXml.jar
├── JmolApplet0_ReadersXtal.jar
├── JmolApplet0_ShapeBio.jar
├── JmolApplet0_ShapeSpecial.jar
├── JmolApplet0_ShapeSurface.jar
├── JmolApplet0_Smiles.jar
├── JmolApplet0_Symmetry.jar
├── JmolApplet0_i18n_ar.jar
├── JmolApplet0_i18n_ca.jar
├── JmolApplet0_i18n_cs.jar
├── JmolApplet0_i18n_da.jar
├── JmolApplet0_i18n_de.jar
├── JmolApplet0_i18n_el.jar
├── JmolApplet0_i18n_en_GB.jar
├── JmolApplet0_i18n_es.jar
├── JmolApplet0_i18n_et.jar
├── JmolApplet0_i18n_fi.jar
├── JmolApplet0_i18n_fr.jar
├── JmolApplet0_i18n_hu.jar
├── JmolApplet0_i18n_id.jar
├── JmolApplet0_i18n_it.jar
├── JmolApplet0_i18n_ko.jar
├── JmolApplet0_i18n_nb.jar
├── JmolApplet0_i18n_nl.jar
├── JmolApplet0_i18n_oc.jar
├── JmolApplet0_i18n_pl.jar
├── JmolApplet0_i18n_pt.jar
├── JmolApplet0_i18n_pt_BR.jar
├── JmolApplet0_i18n_ru.jar
├── JmolApplet0_i18n_sl.jar
├── JmolApplet0_i18n_sv.jar
├── JmolApplet0_i18n_ta.jar
├── JmolApplet0_i18n_tr.jar
├── JmolApplet0_i18n_uk.jar
├── JmolApplet0_i18n_zh_CN.jar
├── JmolApplet0_i18n_zh_TW.jar
├── JmolAppletSigned.jar
├── JmolAppletSigned0.jar
├── JmolAppletSigned0_Console.jar
├── JmolAppletSigned0_Minimize.jar
├── JmolAppletSigned0_MultiTouch.jar
├── JmolAppletSigned0_Popup.jar
├── JmolAppletSigned0_ReadersCifPdb.jar
├── JmolAppletSigned0_ReadersMolXyz.jar
├── JmolAppletSigned0_ReadersMore.jar
├── JmolAppletSigned0_ReadersQuantum.jar
├── JmolAppletSigned0_ReadersSimple.jar
├── JmolAppletSigned0_ReadersXml.jar
├── JmolAppletSigned0_ReadersXtal.jar
├── JmolAppletSigned0_ShapeBio.jar
├── JmolAppletSigned0_ShapeSpecial.jar
├── JmolAppletSigned0_ShapeSurface.jar
├── JmolAppletSigned0_Smiles.jar
├── JmolAppletSigned0_Symmetry.jar
├── JmolAppletSigned0_i18n_ar.jar
├── JmolAppletSigned0_i18n_ca.jar
├── JmolAppletSigned0_i18n_cs.jar
├── JmolAppletSigned0_i18n_da.jar
├── JmolAppletSigned0_i18n_de.jar
├── JmolAppletSigned0_i18n_el.jar
├── JmolAppletSigned0_i18n_en_GB.jar
├── JmolAppletSigned0_i18n_es.jar
├── JmolAppletSigned0_i18n_et.jar
├── JmolAppletSigned0_i18n_fi.jar
├── JmolAppletSigned0_i18n_fr.jar
├── JmolAppletSigned0_i18n_hu.jar
├── JmolAppletSigned0_i18n_id.jar
├── JmolAppletSigned0_i18n_it.jar
├── JmolAppletSigned0_i18n_ko.jar
├── JmolAppletSigned0_i18n_nb.jar
├── JmolAppletSigned0_i18n_nl.jar
├── JmolAppletSigned0_i18n_oc.jar
├── JmolAppletSigned0_i18n_pl.jar
├── JmolAppletSigned0_i18n_pt.jar
├── JmolAppletSigned0_i18n_pt_BR.jar
├── JmolAppletSigned0_i18n_ru.jar
├── JmolAppletSigned0_i18n_sl.jar
├── JmolAppletSigned0_i18n_sv.jar
├── JmolAppletSigned0_i18n_ta.jar
├── JmolAppletSigned0_i18n_tr.jar
├── JmolAppletSigned0_i18n_uk.jar
├── JmolAppletSigned0_i18n_zh_CN.jar
├── JmolAppletSigned0_i18n_zh_TW.jar
├── JmolData.jar
├── LEAME.txt
├── LICENSE.txt
├── README.txt
├── jmol
├── jmol.bat
├── jmol.mac
└── jmol.sh
├── project.clj
├── resources
├── 6adh.pdb
├── sample.fa
├── seqinput.txt
└── venn_nmr
│ ├── assigned-shifts.txt
│ ├── bmrbstats.txt
│ ├── readme.txt
│ ├── sequence.txt
│ └── structure.pdb
├── ru
├── src
├── BioClojure
│ ├── .commons.clj.swp
│ ├── .seqUtils.clj.swp
│ ├── .vimrc
│ ├── clomol.clj
│ ├── commons.clj
│ ├── funcUtils.clj
│ ├── nmrSampleSchedule.clj
│ ├── nmrshifts.clj
│ ├── seqUtils.clj
│ ├── venn_nmr.mwb
│ └── vennnmr.clj
└── demo
│ └── web.clj
└── test
└── BioClojure
└── test
├── nmrshifts.clj
└── vennnmr.clj
/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 |
--------------------------------------------------------------------------------
/.seqUtils.clj.swp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/.seqUtils.clj.swp
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | web: lein run -m demo.web
2 |
--------------------------------------------------------------------------------
/README:
--------------------------------------------------------------------------------
1 | The code in this project, although operational, is, as of October 31 2011, completely unmaintained and unsupported.
2 | All useful source code has been migrated to the RudolF project, which is an experimental playground for functional programming.
3 | Come say hi http://github.com/jayunit100/RudolF/
--------------------------------------------------------------------------------
/README_CLOJURE:
--------------------------------------------------------------------------------
1 | Clojure indentation within a function definition:
2 | 2 spaces of indentation for parameter-list line
3 | then one additional space for each level of nesting after that
4 | unless parentheses can be matched up
5 | No spaces between square brackets and parameter names
6 |
7 |
8 |
9 |
10 | link to Clojure coding conventions: http://dev.clojure.org/display/design/Library+Coding+Standards
11 |
12 | Clojure and indentation, parentheses: http://en.wikibooks.org/wiki/Learning_Clojure/Coding_Conventions
13 |
14 | learning functional programming: http://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Computer_Programs
15 |
16 | Clojure and FP: http://clojure.org/functional_programming
17 |
18 | the importance of functional programming (John Backus): http://www.google.com/url?sa=t&source=web&cd=1&ved=0CBkQFjAA&url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.72.2622%26rep%3Drep1%26type%3Dpdf&ei=4XVJToSdPNC5tgfYw-DzBQ&usg=AFQjCNF1bPlH2Omg4kX0eeXCgKQKaHwL0g
--------------------------------------------------------------------------------
/README_GettingStarted:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 0) Read the README and follow instructions (don't worry there arent necessarily alot, but this is
5 | the central point for developers to add important notes for newcomers )
6 |
7 | Tutorial 1) To get started with Clojure & JMOL
8 |
9 | >Read the README_JMOL to install the jmol into maven.
10 | >Run "lein deps"
11 | >Launch "lein repl" from the bioclojure root directory
12 | >First, load clomol wrapper : (load-file "src/BioClojure/clomol.clj")
13 | >Now type: (use 'BioClojure.clomol)
14 | >Now type: (launch)
15 | >... Now you can visualize your molecules in the repl
16 |
17 |
--------------------------------------------------------------------------------
/README_HEROKU:
--------------------------------------------------------------------------------
1 | BioClojure is now online !
2 |
3 | To deploy :
4 |
5 | 1) Checkout and set up the project, (see the README).
6 | 2) Make sure you have RubyGems installed, so you can run the $>gem install commands....
7 | 3) Create a heroku account if you don't already have one.
8 | 4) Follow these directions
9 | https://devcenter.heroku.com/articles/clojure
10 | (Ignore the parts regarding the Procfile and the web.clj file, since we already
11 | have those in Bioclojure's source file.
12 | 5) Finally, when you run the command to "push" to the heroku repository,
13 | sudo git push heroku master
14 | heroku ps:scale web=1
15 | 6) If you cant push to the heroku master, try to run heroku keys:add ~/.ssh/id_rsa.pub (this adds an ssh key to heroku servers, i believe, so that
16 | the recognize you) //
17 |
18 |
19 | -- You can change the code locally, and run it on port 5000 by typing >foreman start, and navigating to port 5000
20 | -- Then, you can push your changes by commiting them to git, and pushing to the heroku master.
21 |
22 |
--------------------------------------------------------------------------------
/README_JMOL:
--------------------------------------------------------------------------------
1 | JMol is necessary for molecular visualization.
2 | To simplify the process of installation, Itts been bundled here.
3 |
4 | Run this command.
5 |
6 | mvn install:install-file -DgroupId=jmol -DartifactId=jmol -Dversion=12.0.49 -Dpackaging=jar -Dfile=./jmol-12.0.49/Jmol.jar
7 |
8 | Then, run lein deps.
9 |
--------------------------------------------------------------------------------
/README_MOTIF:
--------------------------------------------------------------------------------
1 | Minimotif Library Analysis Software (8/3/11)
2 |
3 | ------------------------------------------------------------
4 |
5 | BioClojure MiniApp 1 : DNASeqMiner
6 |
7 | REQUIREMENTS :
8 |
9 | This application takes, as input, two files
10 |
11 | 1) A motif file (A list of maps, with each map having a "motif=" key). [call each row a DnaMotif]
12 | 2) A DNA sequence file, which is FASTA formatted. [call each row a DnaSeq]
13 |
14 | The program will
15 |
16 | 1) Provide a user interface to upload or paste inputs
17 | 2) Internalize and validate inputs (DnaSeq file and DnaMotif file)
18 | 3) Compare each DnaSeq to each DnaMotif (that is, look for the DnaMotif.motif attribute in the DnaSeq), store matches.
19 | 4) Present the results of (3) to the user in a single CSV file, of format
20 |
21 | motif, FASTA header, FASTA sequence
22 |
23 | SPECIFICATIONS :
24 |
25 |
26 |
27 | ------------------------------------------------------------
28 |
29 | Summary
30 |
31 | We are building a library of minimotifs (concatamers of 100s of unique units into lengths of 1-100) and need to know the composition of motif in each clone and population statistics. We have identified 4 common workflows which would be of interest.
32 |
33 | Inputs
34 |
35 | + DNA sequence files (S1-Sx). (text files with clone id and string of DNA letters.)
36 | + SQL database of Minimotifs (table of motifs (M1 - Mx and sequences to be searched, and labels)
37 | + Linker sequence for all motifs
38 | + Restriction site sequence
39 |
40 | Data Processing workflows
41 |
42 | + Single clone analysis
43 | Read sequence file Si and report the following:
44 | + Identify motifs (M1 - Mx) present in DNA and their order
45 | + Confirm initiator motif and terminator motif and positions
46 | + Confirm proper insertion into two restriction sites.
47 | + Flag any incorrect assemblies and sequences with N positions
48 | + Report total number of minimotifs in clone
49 | + Generate a graph of overall structure, show linker regions that glue motifs together and alignment of motifs to sequences with labels.
50 | + Report any 1 nucleotide mutations in DNA
51 |
52 | Read sequence files and report the following:
53 |
54 | * Identify common motifs present in all clones (not initiator and terminator)
55 | * Identify unique motifs present in each individual clone
56 | * Counts of occurrences of above
57 | * Identification of an clustering patterns of multiple motifs
58 | * Flag if there are any duplicate clones
59 | * Flag if there is more than one initiator and terminator
60 | * Flag clones with just and initiator and terminator
61 |
62 | Library coverage Read files and report
63 | * Read file of motif names or ids
64 | * Report statistics on each motif in the clones (occurrences, range of occurrences in clones, missing motifs in the library)
65 |
66 | 96 well plate analysis
67 | * Same as single clone analysis but reads an array of 96 ids from A to H and 1 through 12
68 | * Also include plate
69 | * Files will be named plate id_letter_number
70 |
--------------------------------------------------------------------------------
/README_NMR:
--------------------------------------------------------------------------------
1 | BioClojure-NMR
2 |
3 | --------------------------------------------------------
4 |
5 | NMR Library 1 : Spin System Classification
6 |
7 | OUTLINE of PROBLEM :
8 |
9 | 1) Amino acid -- a group of covalently bonded atoms.
10 | There are 20 different common amino acids of known composition.
11 | Common subunit of proteins and other common biological molecules.
12 | Atoms of different amino acids resonate at characteristic frequencies when placed in magnetic fields, based on local environment.
13 | For example, CA of Glycine is usually easy to distinguish from CA of Serine based on resonance frequency. Source -- http://www.bmrb.wisc.edu/ref_info/statful.htm
14 |
15 | 2) Spin system -- NMR spectroscopists collect spectra.
16 | By some process, peaks are identified within the spectra.
17 | An n-dimensional peak corresponds to n atoms that are covalently bonded (this is not quite true) -- within the same amino acid subunit.
18 | Peaks in one spectra are correlated with peaks in other spectra based on matching resonance frequencies.
19 | The interpretation of a correlation between two peaks from different spectra is: the atoms in one peak are in the same amino acid subunit as the atoms in the other peak. When peaks from many spectra are correlated, this is known as a 'spin system'.
20 |
21 | 3) Classification -- from a protein with 200 amino acid residues, there will be approximately 200 spin systems in the spectra.
22 | These spin systems need to be 'assigned' to amino acids.
23 | This is a bipartite matching problem.
24 | Information that is used to help with this problem:
25 | comparison of resonance frequencies of peaks in a spin system to average/typical reported values of each amino acid type;
26 | atoms that are missing from a spin system, compared to an amino acid;
27 | atoms that are in a spin system but not in an amino acid;
28 | (sequential connectivity information).
29 | For now we're only looking at comparing resonance frequencies between spin systems and amino acids;
30 | in the future we should provide algorithms for ranking each of the 20 comparisons (sum of magnitude of differences, sum of differences, number of atoms missing, etc.)
31 |
32 |
33 | REQUIREMENTS/SPECIFICATIONS (need clarification of difference between the two) :
34 |
35 | Input: a spin system
36 |
37 | Output: a comparison of the spin system to each amino acid
38 | where 'comparison' is the frequency between each atom in the spin system and its corresponding atom in the amino acid
39 |
40 | Example:
41 | INPUT -- spin system
42 | "CA": 56, "CB": 72, "H": 9.32, "N": 117.02
43 | INPUT -- amino acid -- Glycine
44 | "CA": 45.37, "C": 173.88, "N": 109.89, "H": 8.33, "HA2": 3.97, "HA3": 3.89
45 | OUTPUT -- comparison:
46 | "CA": 10.63, "CB": not in amino acid, "C": not in spin system, "N": 7.13, "H": 0.99, "HA2": not in spin system, "HA3": not in spin system
47 | NOTE: negatives or positives? doesn't really matter, but should pick a convention and stay with it. Let's do shift(spin system) - shift(amino acid).
48 |
49 |
50 | TESTING (Andrew's input here) :
51 | ?????
52 |
53 | --------------------------------------------------------
54 |
55 | Summary
56 | ???
57 |
58 | Goals
59 | ???
60 |
61 | Testing
62 | ???
63 |
64 | Philosophy
65 | ???
66 |
67 | Why Clojure?
68 | ???
--------------------------------------------------------------------------------
/bioclojure2/Procfile:
--------------------------------------------------------------------------------
1 | web: lein run -m demo.web
2 |
--------------------------------------------------------------------------------
/bioclojure2/README:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/bioclojure2/README_CLOJURE:
--------------------------------------------------------------------------------
1 | Clojure indentation within a function definition:
2 | 2 spaces of indentation for parameter-list line
3 | then one additional space for each level of nesting after that
4 | unless parentheses can be matched up
5 | No spaces between square brackets and parameter names
6 |
7 |
8 |
9 |
10 | link to Clojure coding conventions: http://dev.clojure.org/display/design/Library+Coding+Standards
11 |
12 | Clojure and indentation, parentheses: http://en.wikibooks.org/wiki/Learning_Clojure/Coding_Conventions
13 |
14 | learning functional programming: http://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Computer_Programs
15 |
16 | Clojure and FP: http://clojure.org/functional_programming
17 |
18 | the importance of functional programming (John Backus): http://www.google.com/url?sa=t&source=web&cd=1&ved=0CBkQFjAA&url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.72.2622%26rep%3Drep1%26type%3Dpdf&ei=4XVJToSdPNC5tgfYw-DzBQ&usg=AFQjCNF1bPlH2Omg4kX0eeXCgKQKaHwL0g
--------------------------------------------------------------------------------
/bioclojure2/README_GettingStarted:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 0) Read the README and follow instructions (don't worry there arent necessarily alot, but this is
5 | the central point for developers to add important notes for newcomers )
6 |
7 | Tutorial 1) To get started with Clojure & JMOL
8 |
9 | >Read the README_JMOL to install the jmol into maven.
10 | >Run "lein deps"
11 | >Launch "lein repl" from the bioclojure root directory
12 | >First, load clomol wrapper : (load-file "src/BioClojure/clomol.clj")
13 | >Now type: (use 'BioClojure.clomol)
14 | >Now type: (launch)
15 | >... Now you can visualize your molecules in the repl
16 |
17 |
--------------------------------------------------------------------------------
/bioclojure2/README_HEROKU:
--------------------------------------------------------------------------------
1 | BioClojure is now online !
2 |
3 | To deploy :
4 |
5 | 1) Checkout and set up the project, (see the README).
6 | 2) Make sure you have RubyGems installed, so you can run the $>gem install commands....
7 | 3) Create a heroku account if you don't already have one.
8 | 4) Follow these directions
9 | https://devcenter.heroku.com/articles/clojure
10 | (Ignore the parts regarding the Procfile and the web.clj file, since we already
11 | have those in Bioclojure's source file.
12 | 5) Finally, when you run the command to "push" to the heroku repository,
13 | sudo git push heroku master
14 | heroku ps:scale web=1
15 | 6) If you cant push to the heroku master, try to run heroku keys:add ~/.ssh/id_rsa.pub (this adds an ssh key to heroku servers, i believe, so that
16 | the recognize you) //
17 |
18 |
19 | -- You can change the code locally, and run it on port 5000 by typing >foreman start, and navigating to port 5000
20 | -- Then, you can push your changes by commiting them to git, and pushing to the heroku master.
21 |
22 |
--------------------------------------------------------------------------------
/bioclojure2/README_JMOL:
--------------------------------------------------------------------------------
1 | JMol is necessary for molecular visualization.
2 | To simplify the process of installation, Itts been bundled here.
3 |
4 | Run this command.
5 |
6 | mvn install:install-file -DgroupId=jmol -DartifactId=jmol -Dversion=12.0.49 -Dpackaging=jar -Dfile=./jmol-12.0.49/Jmol.jar
7 |
8 | Then, run lein deps.
9 |
--------------------------------------------------------------------------------
/bioclojure2/README_MOTIF:
--------------------------------------------------------------------------------
1 | Minimotif Library Analysis Software (8/3/11)
2 |
3 | ------------------------------------------------------------
4 |
5 | BioClojure MiniApp 1 : DNASeqMiner
6 |
7 | REQUIREMENTS :
8 |
9 | This application takes, as input, two files
10 |
11 | 1) A motif file (A list of maps, with each map having a "motif=" key). [call each row a DnaMotif]
12 | 2) A DNA sequence file, which is FASTA formatted. [call each row a DnaSeq]
13 |
14 | The program will
15 |
16 | 1) Provide a user interface to upload or paste inputs
17 | 2) Internalize and validate inputs (DnaSeq file and DnaMotif file)
18 | 3) Compare each DnaSeq to each DnaMotif (that is, look for the DnaMotif.motif attribute in the DnaSeq), store matches.
19 | 4) Present the results of (3) to the user in a single CSV file, of format
20 |
21 | motif, FASTA header, FASTA sequence
22 |
23 | SPECIFICATIONS :
24 |
25 |
26 |
27 | ------------------------------------------------------------
28 |
29 | Summary
30 |
31 | We are building a library of minimotifs (concatamers of 100s of unique units into lengths of 1-100) and need to know the composition of motif in each clone and population statistics. We have identified 4 common workflows which would be of interest.
32 |
33 | Inputs
34 |
35 | + DNA sequence files (S1-Sx). (text files with clone id and string of DNA letters.)
36 | + SQL database of Minimotifs (table of motifs (M1 - Mx and sequences to be searched, and labels)
37 | + Linker sequence for all motifs
38 | + Restriction site sequence
39 |
40 | Data Processing workflows
41 |
42 | + Single clone analysis
43 | Read sequence file Si and report the following:
44 | + Identify motifs (M1 - Mx) present in DNA and their order
45 | + Confirm initiator motif and terminator motif and positions
46 | + Confirm proper insertion into two restriction sites.
47 | + Flag any incorrect assemblies and sequences with N positions
48 | + Report total number of minimotifs in clone
49 | + Generate a graph of overall structure, show linker regions that glue motifs together and alignment of motifs to sequences with labels.
50 | + Report any 1 nucleotide mutations in DNA
51 |
52 | Read sequence files and report the following:
53 |
54 | * Identify common motifs present in all clones (not initiator and terminator)
55 | * Identify unique motifs present in each individual clone
56 | * Counts of occurrences of above
57 | * Identification of an clustering patterns of multiple motifs
58 | * Flag if there are any duplicate clones
59 | * Flag if there is more than one initiator and terminator
60 | * Flag clones with just and initiator and terminator
61 |
62 | Library coverage Read files and report
63 | * Read file of motif names or ids
64 | * Report statistics on each motif in the clones (occurrences, range of occurrences in clones, missing motifs in the library)
65 |
66 | 96 well plate analysis
67 | * Same as single clone analysis but reads an array of 96 ids from A to H and 1 through 12
68 | * Also include plate
69 | * Files will be named plate id_letter_number
70 |
--------------------------------------------------------------------------------
/bioclojure2/README_NMR:
--------------------------------------------------------------------------------
1 | BioClojure-NMR
2 |
3 | --------------------------------------------------------
4 |
5 | NMR Library 1 : Spin System Classification
6 |
7 | OUTLINE of PROBLEM :
8 |
9 | 1) Amino acid -- a group of covalently bonded atoms.
10 | There are 20 different common amino acids of known composition.
11 | Common subunit of proteins and other common biological molecules.
12 | Atoms of different amino acids resonate at characteristic frequencies when placed in magnetic fields, based on local environment.
13 | For example, CA of Glycine is usually easy to distinguish from CA of Serine based on resonance frequency. Source -- http://www.bmrb.wisc.edu/ref_info/statful.htm
14 |
15 | 2) Spin system -- NMR spectroscopists collect spectra.
16 | By some process, peaks are identified within the spectra.
17 | An n-dimensional peak corresponds to n atoms that are covalently bonded (this is not quite true) -- within the same amino acid subunit.
18 | Peaks in one spectra are correlated with peaks in other spectra based on matching resonance frequencies.
19 | The interpretation of a correlation between two peaks from different spectra is: the atoms in one peak are in the same amino acid subunit as the atoms in the other peak. When peaks from many spectra are correlated, this is known as a 'spin system'.
20 |
21 | 3) Classification -- from a protein with 200 amino acid residues, there will be approximately 200 spin systems in the spectra.
22 | These spin systems need to be 'assigned' to amino acids.
23 | This is a bipartite matching problem.
24 | Information that is used to help with this problem:
25 | comparison of resonance frequencies of peaks in a spin system to average/typical reported values of each amino acid type;
26 | atoms that are missing from a spin system, compared to an amino acid;
27 | atoms that are in a spin system but not in an amino acid;
28 | (sequential connectivity information).
29 | For now we're only looking at comparing resonance frequencies between spin systems and amino acids;
30 | in the future we should provide algorithms for ranking each of the 20 comparisons (sum of magnitude of differences, sum of differences, number of atoms missing, etc.)
31 |
32 |
33 | REQUIREMENTS/SPECIFICATIONS (need clarification of difference between the two) :
34 |
35 | Input: a spin system
36 |
37 | Output: a comparison of the spin system to each amino acid
38 | where 'comparison' is the frequency between each atom in the spin system and its corresponding atom in the amino acid
39 |
40 | Example:
41 | INPUT -- spin system
42 | "CA": 56, "CB": 72, "H": 9.32, "N": 117.02
43 | INPUT -- amino acid -- Glycine
44 | "CA": 45.37, "C": 173.88, "N": 109.89, "H": 8.33, "HA2": 3.97, "HA3": 3.89
45 | OUTPUT -- comparison:
46 | "CA": 10.63, "CB": not in amino acid, "C": not in spin system, "N": 7.13, "H": 0.99, "HA2": not in spin system, "HA3": not in spin system
47 | NOTE: negatives or positives? doesn't really matter, but should pick a convention and stay with it. Let's do shift(spin system) - shift(amino acid).
48 |
49 |
50 | TESTING (Andrew's input here) :
51 | ?????
52 |
53 | --------------------------------------------------------
54 |
55 | Summary
56 | ???
57 |
58 | Goals
59 | ???
60 |
61 | Testing
62 | ???
63 |
64 | Philosophy
65 | ???
66 |
67 | Why Clojure?
68 | ???
--------------------------------------------------------------------------------
/bioclojure2/data/sample.fa:
--------------------------------------------------------------------------------
1 | >hg19_dna range=chr7:2443259-2474214 5'pad=0 3'pad=0 strand=+ repeatMasking=none
2 | CGGCGGCGGCTGCGGGCGCGAGGTGAGGGGCGCGAGGTGAGGGTCGCGAG
3 | GTGAGGGGCGCGGCGGGCGGCGGGCTCGGGGCGCGGTCTCCCTCTCTCTC
4 |
5 | >hg19_knownGene_uc009zui.1 range=chr12:104324189-104341703 5'pad=0 3'pad=0 strand=+ repeatMasking=none
6 | GTGGGCGGACCGCGCGGCTGGAGGTGTGAGGATCCGAACCCAGGGGTGGG
7 | GGGTGGAGGCGGCTCCTGCGATCGAAGGGGACTTGAGACTCACCGGCCGC
8 |
9 | >chr1
10 | GTGGGCGGACCGCGCGGCTGGAGGTGTGAGGATCCGAACCCAGGGGTGGG
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/COPYRIGHT.txt:
--------------------------------------------------------------------------------
1 |
2 | Copyright 1998-2007 The Jmol Development Team
3 |
4 | This library is free software; you can redistribute it and/or
5 | modify it under the terms of the GNU Lesser General Public
6 | License as published by the Free Software Foundation; either
7 | version 2.1 of the License, or (at your option) any later version.
8 |
9 | This library is distributed in the hope that it will be useful,
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 | Lesser General Public License for more details.
13 |
14 | You should have received a copy of the GNU Lesser General Public
15 | License along with this library; if not, write to the Free Software
16 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17 | 02111-1307 USA.
18 |
19 |
20 | Complete source code for the Jmol application, the Jmol applet, and
21 | surrounding utilities is available from http://www.jmol.org
22 |
23 |
24 | This software uses several external libraries and resources:
25 |
26 | JUnit
27 | Used for unit testing. Distributed by the IBM Public License (see
28 | doc/ibm.license.html). See http://www.junit.org/.
29 |
30 | The Chemical Development Kit
31 | Used for reading and writing CML and ShelX. Distributed by Lesser GNU Public
32 | License
33 | See http://cdk.sf.net/.
34 |
35 | AElfred
36 | Used for XML parsing. Distributed free and without warranty.
37 | Copyright (C) 1997,1998 by Microstar Software Ltd.
38 | See http://www.microstar.com/aelfred.html.
39 |
40 | SAX
41 | Used for event-based XML parsing. Distributed free and without warranty.
42 | See http://www.megginson.com/SAX/.
43 |
44 | Acme Image encoders
45 | Used for exporting images in GIF and PPM formats. Distributed free and
46 | without warranty. Copyright (C) 1996,1998 by Jef Poskanzer.
47 | See http://www.acme.com/.
48 |
49 | JPEG Encoder
50 | Used for exporting images in JPEG format. Distributed free and without
51 | warranty (see doc/jpegEncoder.license).
52 | Copyright (c) 1998 James R. Weeks and BioElectroMech.
53 | See http://www.obrador.com/essentialjpeg/.
54 |
55 | Java Analysis Studio
56 | Used for graphs. Distributed by the GNU Lesser General Public License
57 | (see doc/lgpl.license), and requires providing the source code (see
58 | http://jas.freehep.org/source.htm). See http://jas.freehep.org/.
59 |
60 | Unofficial Java3D vecmath package
61 | Used for linear algebra. Distributed free and without warranty.
62 | Copyright (C) 1997,1998,1999 by Kenji Hiranabe.
63 | See http://www.esm.co.jp/divisions/open-sys/java/vecmath/.
64 |
65 | JFA Icon collection
66 | Used for icons in menus and toolbars. Distributed free and without warranty.
67 | Copyright (C) 1998 by Dean S. Jones.
68 | See http://jfa.javalobby.org/projects/icons/
69 |
70 | Jakarta Commons CLI
71 | Used for parsing command line optinos. Distributed with The Apache Software
72 | License, Version 1.1. Copyright (c) 1999-2001 The Apache Software Foundation.
73 | See http://jakarta.apache.org/commons/cli/.
74 |
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/Jmol.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/Jmol.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_Console.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_Console.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_Minimize.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_Minimize.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_Popup.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_Popup.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_ReadersCifPdb.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_ReadersCifPdb.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_ReadersMolXyz.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_ReadersMolXyz.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_ReadersMore.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_ReadersMore.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_ReadersQuantum.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_ReadersQuantum.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_ReadersSimple.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_ReadersSimple.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_ReadersXml.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_ReadersXml.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_ReadersXtal.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_ReadersXtal.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_ShapeBio.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_ShapeBio.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_ShapeSpecial.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_ShapeSpecial.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_ShapeSurface.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_ShapeSurface.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_Smiles.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_Smiles.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_Symmetry.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_Symmetry.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_ar.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_ar.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_ca.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_ca.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_cs.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_cs.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_da.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_da.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_de.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_de.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_el.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_el.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_en_GB.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_en_GB.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_es.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_es.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_et.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_et.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_fi.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_fi.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_fr.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_fr.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_hu.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_hu.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_id.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_id.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_it.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_it.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_ko.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_ko.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_nb.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_nb.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_nl.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_nl.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_oc.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_oc.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_pl.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_pl.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_pt.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_pt.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_pt_BR.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_pt_BR.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_ru.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_ru.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_sl.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_sl.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_sv.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_sv.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_ta.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_ta.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_tr.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_tr.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_uk.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_uk.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_zh_CN.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_zh_CN.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_zh_TW.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolApplet0_i18n_zh_TW.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_Console.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_Console.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_Minimize.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_Minimize.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_MultiTouch.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_MultiTouch.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_Popup.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_Popup.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ReadersCifPdb.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ReadersCifPdb.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ReadersMolXyz.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ReadersMolXyz.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ReadersMore.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ReadersMore.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ReadersQuantum.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ReadersQuantum.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ReadersSimple.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ReadersSimple.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ReadersXml.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ReadersXml.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ReadersXtal.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ReadersXtal.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ShapeBio.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ShapeBio.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ShapeSpecial.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ShapeSpecial.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ShapeSurface.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_ShapeSurface.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_Smiles.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_Smiles.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_Symmetry.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_Symmetry.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_ar.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_ar.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_ca.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_ca.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_cs.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_cs.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_da.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_da.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_de.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_de.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_el.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_el.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_en_GB.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_en_GB.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_es.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_es.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_et.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_et.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_fi.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_fi.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_fr.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_fr.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_hu.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_hu.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_id.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_id.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_it.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_it.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_ko.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_ko.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_nb.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_nb.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_nl.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_nl.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_oc.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_oc.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_pl.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_pl.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_pt.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_pt.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_pt_BR.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_pt_BR.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_ru.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_ru.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_sl.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_sl.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_sv.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_sv.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_ta.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_ta.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_tr.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_tr.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_uk.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_uk.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_zh_CN.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_zh_CN.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_zh_TW.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolAppletSigned0_i18n_zh_TW.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/JmolData.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/JmolData.jar
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/LEAME.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/LEAME.txt
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/jmol:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Collect -D & -m options as java arguments
4 | command=java
5 | while [ `echo $1 | egrep '^-D|^-m' | wc -l` != 0 ]; do
6 | command="$command $1"
7 | shift
8 | done
9 |
10 | if [ -f ./Jmol.jar ] ; then
11 | jarpath=./Jmol.jar
12 | elif [ -f ./build/Jmol.jar ] ; then
13 | jarpath=./build/Jmol.jar
14 | elif [ -f $JMOL_HOME/Jmol.jar ] ; then
15 | jarpath=$JMOL_HOME/Jmol.jar
16 | elif [ -f /usr/share/jmol/Jmol.jar ] ; then
17 | jarpath=/usr/share/jmol/Jmol.jar
18 | else
19 | echo Jmol.jar not found
20 | exit
21 | fi
22 | $command -Xmx512m -jar $jarpath $@
23 |
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/jmol.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | rem Set JMOL_HOME to the Jmol installation directory.
3 | rem
4 | if "%JMOL_HOME%x"=="x" set JMOL_HOME="."
5 | java -Xmx512m -jar "%JMOL_HOME%\Jmol.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
6 |
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/jmol.mac:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/jmol-12.0.49/jmol.mac
--------------------------------------------------------------------------------
/bioclojure2/jmol-12.0.49/jmol.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Collect -D & -m options as java arguments
4 | command=java
5 | while [ `echo $1 | egrep '^-D|^-m' | wc -l` != 0 ]; do
6 | command="$command $1"
7 | shift
8 | done
9 |
10 | # Determine installation location
11 | if [ "$JMOL_HOME" = "" ]; then
12 | binDir=${0%/*}
13 | if [ "$binDir" = "$0" ]; then
14 | # Ran from local directory
15 | binDir=$PWD
16 | fi
17 | # Resolve symlinks.
18 | program="$0"
19 | while [ -L "$program" ]; do
20 | ls=`/bin/ls -ld "$program"`
21 | link=`/usr/bin/expr "$ls" : '.*-> \(.*\)$'`
22 | if /usr/bin/expr "$link" : '.*/.*' > /dev/null; then
23 | program="$link"
24 | else
25 | program="`/usr/bin/dirname $program`/$link"
26 | fi
27 | done
28 | binDir=`dirname $program`
29 | fi
30 |
31 | JMOL_HOME=${JMOL_HOME:-$binDir}
32 | libDir=${JMOL_HOME}/jars
33 |
34 | if [ ! -e ${JMOL_HOME}/Jmol.jar ]; then
35 | echo "Jmol could not find its installed files."
36 | exit
37 | fi
38 |
39 | $command -Djmol.home="$JMOL_HOME" -jar ${JMOL_HOME}/Jmol.jar "$@"
40 |
--------------------------------------------------------------------------------
/bioclojure2/project.clj:
--------------------------------------------------------------------------------
1 | (defproject BioClojure "1.0.0-SNAPSHOT"
2 | :description "FIXME: write description"
3 | :dependencies [[org.clojure/clojure "1.2.1"]
4 | [org.clojure/clojure-contrib "1.2.0"]
5 | [commons-lang "2.3"]
6 | [ring/ring-jetty-adapter "0.3.9"]
7 | [jmol/jmol "12.0.49"]
8 | [org.biojava/biojava3-core "3.0"]
9 | [org.biojava/biojava3-structure "3.0"]
10 | [org.biojava/biojava3-structure-gui "3.0"]]
11 | :repositories [["biojava-maven-repo" "http://www.biojava.org/download/maven/"]])
12 |
--------------------------------------------------------------------------------
/bioclojure2/resources/sample.fa:
--------------------------------------------------------------------------------
1 | >hg19_dna range=chr7:2443259-2474214 5'pad=0 3'pad=0 strand=+ repeatMasking=none
2 | CGGCGGCGGCTGCGGGCGCGAGGTGAGGGGCGCGAGGTGAGGGTCGCGAG
3 | GTGAGGGGCGCGGCGGGCGGCGGGCTCGGGGCGCGGTCTCCCTCTCTCTC
4 |
5 | >hg19_knownGene_uc009zui.1 range=chr12:104324189-104341703 5'pad=0 3'pad=0 strand=+ repeatMasking=none
6 | GTGGGCGGACCGCGCGGCTGGAGGTGTGAGGATCCGAACCCAGGGGTGGG
7 | GGGTGGAGGCGGCTCCTGCGATCGAAGGGGACTTGAGACTCACCGGCCGC
8 |
9 | >chr1
10 | GTGGGCGGACCGCGCGGCTGGAGGTGTGAGGATCCGAACCCAGGGGTGGG
--------------------------------------------------------------------------------
/bioclojure2/resources/seqinput.txt:
--------------------------------------------------------------------------------
1 | Version:1.0 StartHTML:0000000167 EndHTML:0000012270 StartFragment:0000000457 EndFragment:0000012254
2 | >cs01MM_pCherry1224f
3 | ATNGGGAAGNNCGAACGCGCCGAGGGCCGTCACTCCACCGGGCGGCATGGACGAGCTGTACAAGTCCGGACTCAGATCTCGAGCTCAAGCTTCGAATTCTGCAGTCGACGGAGCAGGTTCTCCTACTGCCCCTCCTGGTTCTTCCAAATCCGCCGTCGGTTCTATGGCATCAATGCAGAAGCTGATCTCAGAGGAGGACCTGTGAGGATCCACCGGATCTAGATAACTGATCATAATCAGCCATACCACATTTGTAGAGGTTTTACTTGCTTTAAAAAACCTCCCACACCTCCCCCTGAACCTGAAACATAAAATGAATGCAATTGTTGTTGTTAACTTGTTTATTGCAGCTTATAATGGTTACAAATAAAGCAATAGCATCACAAATTTCACAAATAAAGCATTTTTTTCACTGCATTCTAGTTGTGGTTTGTCCAAACTCATCAATGTATCTTAAGGCGTAAATTGTAAGCGTTAATATTTTGTTAAAATTCGCGTTAAATTTTTGTTAAATCAGCTCATTTTTTAACCAATAGGCCGAAATCGGCAAAATCCCTTATAAATCAAAAGAATAGACCGAGATAGGGTTGAGTGTTGTTCCAGTTTGGAACAAGAGTCCACTATTAAAGAACGTGGACTCCAACGTCAAAGGGCGAAAAACCGTCTATCAGGGCGATGGCCCACTACGTGAACCATCACCCTAATCAAGTTTTTTGGGGTCGAGGTGCCGTAAAGCACTAAATCGGAACCCTAAAGGGAGCCCCCGATTTAGAGCTTGACGGGGAAAGCCGGCGAACGTGGCGAGAAAGGAAGGGAAGAAAGCGAAAGGAGCGGGCGCTAGGGCGCTGGCAAGTGTAGCGGTCACGCTGCGCGTAACCACCACACCCGCCGCGCTTAATGCGCCCGCTACAGGGCGCGTCAGGNGGGCACTTTTTCGGGGAAATGTGCNCCGGAACCCCNANTTGGTTTATTTTTCNAAAACNTTNCAAAAATGTATCCGCTCANGNNNACAANAAACCCTGAAAAAATGCTTNNAAAANNATTGAAAAAGGAANNAGTCCNTGNNGGNNGNAAANAANCCANCTNNNGNAATGGGTNNNANTTNAGGGNNGNGGAAAGNNCCCCAGGCNCCCCNNNNGGGNNNAAANTTTNCNAAGNNNNGCNNNNCNANTTANNNCCNNCACCCNGGNGNGGGAANNTNCCC
4 |
5 | CS01MM
6 |
7 | I1SalI primer M2 motif linker
8 | GTCGACGGAGCAGGTTCTCCTACTGCCCCTCCTGGTTCT
9 |
10 | M5 motif w/ mutation linker T1BamHI reverse primer
11 | TCCAAATCCGCCGTCGGTTCTATGGCATCAATGCAGAAGCTGATCTCAGAGGAGGACCTGTGAGGATCC
12 |
13 |
14 | >cs02MM_pCherry1224f
15 | ATGGGGAAGTCGACGCGCCGAGGGCCGTCACTCCACCGGCGGCATGGACGAGCTGTACAAGTCCGGACTCAGATCTCGAGCTCAAGCTTCGAATTCTGCAGTCGACGGAGCAGGTTCTGGAAGAAAGAAGAGAAGACAGAGAGAGAGAGCGCACCAGGGTTCTGCATCTGTGCTTGGTGGTGAGCTCGACAGAGGTTCTAGGTACTCCACCCAAGTCGACGGTTCTACGGAGACGCTCCTCGGTTCTATGGCATCAATGCAGAAGCTGATCTCAGAGGAGGACCTGTGAGGATCCACCGGATCTAGATAACTGATCATAATCAGCCATACCACATTTGTAGAGGTTTTACTTGCTTTAAAAAACCTCCCACACCTCCCCCTGAACCTGAAACATAAAATGAATGCAATTGTTGTTGTTAACTTGTTTATTGCAGCTTATAATGGTTACAAATAAAGCAATAGCATCACAAATTTCACAAATAAAGCATTTTTTTCACTGCATTCTAGTTGTGGTTTGTCCAAACTCATCAATGTATCTTAAGGCGTAAATTGTAAGCGTTAATATTTTGTTAAAATTCGCGTTAAATTTTTGTTAAATCAGCTCATTTTTTAACCAATAGGCCGAAATCGGCAAAATCCCTTATAAATCAAAAGAATAGACCGAGATAGGGTTGAGTGTTGTTCCAGTTTGGAACAAGAGTCCACTATTAAAGAACGTGGACTCCAACGTCAAAGGGCGAAAAACCGTCTATCAGGGCGATGGCCCACTACGTGAACCATCACCCTAATCAAGTTTTTTGGGGTCGAGGTGCCGTAAAGCACTAAATCGGAAACCCTAAAGGGAGCCCCCCGATTTTANAGCTTGACNGGGNAAAGCCNGNCNAANCNTGGCGAGAAAGGAAGGGAAGAAAGCGAAAGGAGCGGGCGCTAGGGCGCTGGCCANGTGTANCGGTCACGCTGCGCGTAACCACCAANCCCGCCGCGCNTAATGCNCCNCTACAGGGCGCGTCAGGGGGCACTTTTCGGGGAAATGGGCCCGGAACCCCCAATTGTTTATTTTTCCNAANACCTTCAANATTTANCCCCCCCNTGNANAANANAACCCCNGAAAAANGCTTNCAAAANTNTTNAAAAAGGGAAAAANTCNTTNGGNNGGNAANAAACCCCCNTNNGGGNAAGNGNGGTCCCNTTTNGGGGGNGGGGAAAA
16 |
17 | CS02MM
18 |
19 | I1SalI primer M22 motif
20 | GTCGACGGAGCAGGTTCTGGAAGAAAGAAGAGAAGACAGAGAGAGAGAGCGCACCAG
21 |
22 | linker M21 motif linker
23 | GGTTCTGCATCTGTGCTTGGTGGTGAGCTCGACAGAGGTTCT
24 |
25 | M15 motif linker M25 motif
26 | AGGTACTCCACCCAAGTCGACGGTTCTACGGAGACGCTCCTC
27 |
28 | linker T1BamHI primer
29 | GGTTCTATGGCATCAATGCAGAAGCTGATCTCAGAGGAGGACCTGTGAGGATCC
30 |
31 | >cs06MM_pCherry1224f
32 | GNTCGAACGCGCCGAGGGCCGTCACTCCACCGGGCGGCATGGACGAGCTGTACAAGTCCGGACTCAGATCTCGAGCTCAAGCTTCGAATTCTGCAGTCGACGGAGCAGGTTCTCCTCCTCTTGAAAGACTCACCCTCGGTTCTTACCCAATCGTCGGTTCTGGAAGAAAGAAGAGAAGACAGAGGAGGACCTGTGAGGATCCACCGGATCTAGATAACTGATCATAATCAGCCATACCACATTTGTAGAGGTTTTACTTGCTTTAAAAAACCTCCCACACCTCCCCCTGAACCTGAAACATAAAATGAATGCAATTGTTGTTGTTAACTTGTTTATTGCAGCTTATAATGGTTACAAATAAAGCAATAGCATCACAAATTTCACAAATAAAGCATTTTTTTCACTGCATTCTAGTTGTGGTTTGTCCAAACTCATCAATGTATCTTAAGGCGTAAATTGTAAGCGTTAATATTTTGTTAAAATTCGCGTTAAATTTTTGTTAAATCAGCTCATTTTTTAACCAATAGGCCGAAATCGGCAAAATCCCTTATAAATCAAAAGAATAGACCGAGATAGGGTTGAGTGTTGTTCCAGTTTGGAACAAGAGTCCACTATTAAAGAACGTGGACTCCAACGTCAAAGGGCGAAAAACCGTCTATCAGGGCGATGGCCCACTACGTGAACCATCACCCTAATCAAGTTTTTTGGGGTCGAGGTGCCGTAAAGCACTAAATCGGAACCCTAAAGGGAGCCCCCGATTTAGAGCNTGACGGGGAAAGCCGGCGAACGTGGCGAGAAAGGAAGGGAAGAAAGCGAAAGGAGCGGGCGCTAGGGCGCTGGCAAGTGTAGCGGTCACNCTGCGCGTAACCACCACACCCGCCGCGCTTAATGCGCCGCTACAGGGGCGCGTCAGGTTGGCACNNTTTCGGGGAAATGTGCGCGGAACCCCCTATTTGGTTTAATTTTTCNAAANANCATTCCAAATNAGNTANCCCNCTCAGGAANACAATNAACCCTGAANAAANGGCTTCCAANAAANATTGNAAAAAGGAAGGAGNTCCTTGNNGGCGGAAAAGAAACCCNGCNTGTNGGAANTNTGGGTCNANTNNNGGGGGNGGGNAAANTTCCCCCAGGGCTNCCCCNNNNNGGNNAAAANTNTTGCNAAANNCNTGNCNTTNNCAATTNNNNTCNNCNAACCCGGGNGGGGAANNTTCCCCCGGGNCCCCCCNNNNGGGNAAAAANTTNTNNNAANNNNNTNCNTTNNCANTTNNNNNNNCCCCCNNANNNCCCCCCCCCAA
33 |
34 |
35 | CS06MM
36 | I1SalI primer M08 motif linker
37 | GTCGACGGAGCAGGTTCTCCTCCTCTTGAAAGACTCACCCTCGGTTCT
38 |
39 | M30 motif linker M22 motif partial T1BamHI primer
40 | TACCCAATCGTCGGTTCTGGAAGAAAGAAGAGAAGACAGAGGAGGACCTGTGAGGATCC
41 |
42 |
43 | Restriction sites: SalI (GTCGAC) & BamHI (GGATCC)
44 | I1SalI: GTCGACGGAGCAGGTTCT
45 | T1BamHI: GGTTCTATGGCATCAATGCAGAAGCTGATCTCAGAGGAGGACCTGTGAGGATCC
46 | Linker: GGTTCT
47 |
48 |
49 |
--------------------------------------------------------------------------------
/bioclojure2/resources/venn_nmr/sequence.txt:
--------------------------------------------------------------------------------
1 | GLN
2 | GLY
3 | MET
4 | GLU
5 | VAL
6 | SER
7 | ALA
8 | ASN
9 | GLU
10 | LEU
11 | GLU
12 | ALA
13 | ALA
14 | SER
15 | SER
16 | ARG
17 | MET
18 | GLU
19 | MET
20 | LEU
21 | GLN
22 | ARG
23 | GLU
24 | TYR
25 | SER
26 | THR
27 | LEU
28 | ARG
29 | SER
30 | VAL
31 | GLN
32 | TYR
33 | ARG
34 | SER
35 | GLU
36 | GLU
37 | GLY
38 | VAL
39 | ILE
40 | VAL
41 | PHE
42 | ILE
43 | LEU
44 | ALA
45 | ASN
46 | ASP
47 | ARG
48 | GLU
49 | LEU
50 | LYS
51 | PHE
52 | ARG
53 | PRO
54 | ASP
55 | ASP
56 | LEU
57 | GLN
58 | ALA
59 | THR
60 | TYR
61 | GLY
62 | ALA
63 | THR
64 | PRO
65 | GLU
66 | GLN
67 | LEU
68 | ARG
69 | GLU
70 | ILE
71 | GLU
72 | ILE
73 | SER
74 | PRO
75 | SER
76 | GLY
77 | LEU
78 | GLY
79 | VAL
80 | TYR
81 | PHE
82 | GLU
83 | THR
84 | LEU
85 | GLU
86 | GLU
87 | ASP
88 | VAL
89 | SER
90 | LEU
91 | ILE
92 | GLY
93 | LEU
94 | LEU
95 | GLU
96 | GLY
97 | ARG
98 | ARG
99 | GLY
100 | SER
101 | ALA
102 | LYS
103 | TRP
104 | MET
105 | ALA
106 | GLU
107 | HIS
108 | PRO
109 | LEU
110 | ALA
111 | SER
112 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/.commons.clj.swp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/src/BioClojure/.commons.clj.swp
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/.vimrc:
--------------------------------------------------------------------------------
1 | " Settings for VimClojure
2 | let g:clj_highlight_builtins=1 " Highlight Clojure's builtins
3 | let g:clj_paren_rainbow=1 " Rainbow parentheses'!
4 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/backup/clomol.clj:
--------------------------------------------------------------------------------
1 | (ns BioClojure.clomol
2 | (:use [clojure.contrib.string :only (replace-by)])
3 | (:use clojure.contrib.generic.functor)
4 | (:use [BioClojure.vennnmr :only (venn-nmr)])
5 | (import org.biojava.bio.structure.StructureTools)
6 | (import java.lang.Math))
7 |
8 | ;; String filename = "/path/to/PDBFile.pdb" ;
9 | ;; PDBFileReader pdbreader = new PDBFileReader();
10 | ;; pdbreader.setParseSecStruc(true);
11 | ;; pdbreader.setAlignSeqRes(true);
12 | ;; pdbreader.setParseCAOnly(false);
13 | ;; pdbreader.setAutoFetch(true);
14 | ;; Structure struc = pdbreader.getStructure(filename);
15 | (defn getStructureF
16 | "Get a structure, local"
17 | [filename]
18 | (.getStructure (new org.biojava.bio.structure.io.PDBFileReader) filename))
19 |
20 | (defn launchGui
21 | "Matt - maybe move this to vennnmr.clj or app.clj ?
22 | Here is a starting point - it will launch biojava jmol gui.
23 | INPUT: a biojava Structure object (org.biojava.bio.structure.Structure)
24 | OUTPUT: ???"
25 | [s]
26 | (.setStructure (new org.biojava.bio.structure.gui.BiojavaJmol) s))
27 |
28 | (defn getStructure
29 | "Get a structure From the pdb
30 | INPUT: a pdb id
31 | OUPUT: is a org.biojava.bio.structure.Structure object."
32 | [pdbid]
33 | (.getStructure (new org.biojava.bio.structure.align.util.AtomCache "/tmp" true) pdbid))
34 |
35 | (defn colorAA
36 | "Creates a string that colors an amino acid"
37 | [index]
38 | (str "select ", index, "; color green"))
39 |
40 | ;; could/should this could be rewritten as:
41 | ;; (doto (new org.biojava.bio.structure.gui.BiojavaJmol)]
42 | ;; (.setStructure (getStructure "1WRP"))
43 | ;; (.evalString "select *; spacefill 200; wireframe off; backbone 0.4; color chain"))
44 | (defn ex1
45 | "Launch a viewer that views trp represor. And then colors it blue, with spacefill. "
46 | []
47 | (let [panel (new org.biojava.bio.structure.gui.BiojavaJmol)]
48 | (.setStructure panel (getStructure "1WRP"))
49 | (.evalString panel "select *; spacefill 200; wireframe off; backbone 0.4; color chain")
50 | (.evalString panel "select atomno=1; color RED"))) ;;<--- color this one atom red.
51 |
52 | (defn atomColorPct
53 | "Returns a map of atom #s to floats"
54 | [acount]
55 | (zipmap (range 1 acount)
56 | (repeatedly rand)))
57 |
58 | (defn atomColorValue
59 | "Uses the atomColorPct method to scale rbg colors.
60 | returns a map of atoms to colors"
61 | [acount]
62 | (let [atomColors (atomColorPct acount)
63 | mykeys (range 1 acount)
64 | myvalues (map (fn [x] [(Math/floor (* 255 (atomColors x))) 111 111]) mykeys)]
65 | ;; this probably needs refactoring .... -- Matt
66 | ;; ... this code is just generating keys, and then generating a value from each of those keys,
67 | ;; and then putting those key/value pairs into a map
68 | (zipmap mykeys myvalues)))
69 |
70 |
71 | (defn ex2
72 | "launch a viewer that views trp represor. And then colors it blue, with spacefill. "
73 | []
74 | (let [ panel (new org.biojava.bio.structure.gui.BiojavaJmol)
75 | atomToFloat (atomColorPct 4)] ;; changed to make it compile -- 4 is any arbitrary number, 'atomColorPct' is an arbitrary function
76 | (.setStructure panel (getStructure "1WRP"))
77 | (.evalString panel "select *; spacefill 200; wireframe off; backbone 0.4; color chain")
78 | ;; this method creates a map of indices to select statements .... how to select the key and put value in the right half ?
79 | (doseq [[k v] (atomColorValue (StructureTools/getNrAtoms (getStructure "1WRP")))]
80 | (.evalString panel (str "select atomno=" k " ; color " v " ;" ) )) )) ; @Matt -- read about 'doseq'
81 |
82 | (defn getColor
83 | ""
84 | [std-shift-map atomid]
85 | [atomid (std-shift-map atomid)])
86 |
87 | (defn ex3
88 | "launch a viewer that views 16790, then colors it by shift deviation from norms"
89 | [std-shift-map]
90 | (let [panel (new org.biojava.bio.structure.gui.BiojavaJmol)]
91 | (.setStructure panel (getStructure "2X8N"))
92 | (.evalString panel "select *; spacefill 200; wireframe off; backbone 0.4; color chain")
93 | ;; get the number of atoms
94 | ;; create the integers from 1 to that number -- these are the keys
95 | ;; pull the values out of the vennnmr data structure -- the values are the std shifts
96 | ;; color all of these atoms in the structure
97 | (doseq [[k v] std-shift-map]
98 | (.evalString panel (str "select atomno=", k, " ; color ", v, " ;"))))) ; @Matt -- read about 'doseq'
99 |
100 | (defn new-gui-example
101 | "launch a viewer that views 16790, then colors it by shift deviation from norms"
102 | [atoms]
103 | (let [panel (new org.biojava.bio.structure.gui.BiojavaJmol)]
104 | (.setStructure panel (getStructureF "resources/venn_nmr/structure.pdb"))
105 | (.evalString panel "select *; spacefill 200; wireframe off; backbone 0.4; color chain")
106 | (doseq [x atoms]
107 | (.evalString panel (str "select resno="
108 | (:resid x)
109 | " and atomname=\""
110 | (:aname x)
111 | "\" ; color "
112 | (:color x)
113 | " ;")))))
114 |
115 | (defn color-maker
116 | "input: map of atomid to normalized shift"
117 | [atoms-to-shifts]
118 | (fmap (fn [x] [(Math/floor (* 128 x)) 111 111]) atoms-to-shifts))
119 |
120 | (defn color-maker2
121 | "input: ???"
122 | [num]
123 | (let [value (Math/floor (* 128 num))]
124 | [value 111 111]))
125 |
126 | (defn translate-shift
127 | "compare shift to avg-shift, returning an arbitrary number of no avg-shift"
128 | [shift avg-shift]
129 | (if (symbol? avg-shift) ;; if there was no shift in the bmrb stats to compare to
130 | 1.99 ;; then return an arbitrary number
131 | (/ shift avg-shift))) ;; but if there was, compare (by division)
132 |
133 | (defn my-vals
134 | "like vals, but returns '() instead of nil if no vals in map"
135 | [my-map]
136 | (if (= (count my-map) 0)
137 | '()
138 | (vals my-map)))
139 |
140 | (defn stats-to-atomid-map
141 | "thing to transform stats data from venn-nmr to what we need here"
142 | [stats-map]
143 | ;; for each value (residue map)
144 | ;; for each atom (:atoms)
145 | ;; [atomid norm-shift]
146 | (into {} (map (fn [atom-map]
147 | [(atom-map :id) (translate-shift (atom-map :shift) (atom-map :avg))])
148 | (flatten (map my-vals (map :atoms (vals stats-map)))))))
149 |
150 | (defn stats-to-new-map
151 | "thing to transform stats data from venn-nmr to what we need here"
152 | [stats-map]
153 | (apply concat ;; using apply because concat is broken (concat accepts multiple parameters instead of an iterable)
154 | (for [[resid res] stats-map]
155 | (for [[aname atom-map] (res :atoms)]
156 | {:resid resid
157 | :aname aname
158 | :color (color-maker2 (translate-shift (atom-map :shift) (atom-map :avg)))}))))
159 |
160 | (defn example-4
161 | "??colors?? atoms according to normalization against std shifts??"
162 | []
163 | (ex3 (color-maker (stats-to-atomid-map (venn-nmr "resources/venn_nmr/sequence.txt" "resources/venn_nmr/assigned-shifts.txt" "resources/venn_nmr/bmrbstats.txt")))))
164 |
165 | (defn example-5
166 | ""
167 | []
168 | (new-gui-example (stats-to-new-map (venn-nmr "resources/venn_nmr/sequence.txt" "resources/venn_nmr/assigned-shifts.txt" "resources/venn_nmr/bmrbstats.txt"))))
169 |
170 | (def stats-stuff (stats-to-new-map (venn-nmr "resources/venn_nmr/sequence.txt"
171 | "resources/venn_nmr/assigned-shifts.txt"
172 | "resources/venn_nmr/bmrbstats.txt")))
173 |
174 | ;;
175 | ;;(def nums-eg (stats-to-atomid-map (venn-nmr "resources/venn_nmr/sequence.txt"
176 | ;; "resources/venn_nmr/assigned-shifts.txt"
177 | ;; "resources/venn_nmr/bmrbstats.txt")))
178 |
179 | ;;(def color-eg (color-maker nums-eg))
180 |
181 | ;;(def venn-struc (venn-nmr "resources/venn_nmr/sequence.txt" "resources/venn_nmr/assigned-shifts.txt" "resources/venn_nmr/bmrbstats.txt"))
182 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/backup/commons.clj:
--------------------------------------------------------------------------------
1 | (ns BioClojure.commons
2 | (:import (org.apache.commons.lang StringUtils)
3 | (java.io File)))
4 |
5 | ;; Capitalize Function
6 | (defn makeCap "This makes capitals" [string]
7 | (StringUtils/capitalize string))
8 |
9 | ;; input s1, b1 b2 b3
10 | (defn hasSubstring "has" [main b]
11 | (map #(.indexOf main %) b))
12 |
13 | ;;returns the "type" of a file - i.e. wether its a file or dir
14 | (defn kind [filename]
15 | ;;create a new file by calling the File(filename) constructor
16 | (let [f (File. filename)]
17 | (cond
18 | (.isFile f) "file"
19 | (.isDirectory f) "directory"
20 | (.exists f) "other"
21 | :else "non-existent")))
22 |
23 | ;;aaa---
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/backup/funcUtils.clj:
--------------------------------------------------------------------------------
1 | (ns BioClojure.funcUtils
2 | (:use clojure.contrib.math))
3 |
4 | (defn lift ;; this function is very similar to partially applying 'map'
5 | [f]
6 | (fn [l]
7 | (map f l)))
8 |
9 | (defn plustwo ;; `plustwo` consumes a single number
10 | [x]
11 | (+ x 2))
12 |
13 |
14 | (def lifted_function (lift plustwo)) ;; the lifted version consumes a list of numbers
15 |
16 |
17 | (def example
18 | (lifted_function (list 1 2 3 4 5 6))) ;; here it is in action
19 |
20 | (def example2
21 | ((lift (fn [x] (expt x 2))) ;; 'lift' an anonymous function to create a function over a list
22 | (range 1 11))) ;; the list that is passed to the lifted function
23 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/backup/nmrSampleSchedule.clj:
--------------------------------------------------------------------------------
1 | (ns BioClojure.nmrSampleSchedule)
2 |
3 | ;;@matt : Can we move this to nmr_samplesched.clj for consistency ?
4 | ;;bash> git mv sampleSchedule.clj nmr_sampleSchedule.clj
5 |
6 | ;; Lee: Structs are deprecated, use a record (see 'defrecord') if you
7 | ;; actually need an object, or a map if you don't need an object
8 |
9 | (defstruct schedule :points :num-dimensions)
10 |
11 | ; Matt: resource for using records: http://groups.google.com/group/clojure/browse_thread/thread/94ed69c0cd6951b3
12 | ; records create java classes; structs may already be deprecated or may soon be
13 | ; records need to be :import (ed)
14 | ; why are structs deprecated?
15 | ; clojuredocs for defrecord: http://clojuredocs.org/clojure_core/clojure.core/defrecord#example_454
16 |
17 |
18 | (defn make-schedule
19 | [point-map num-dimensions]
20 | (let [points (keys point-map)
21 | is-dims-correct? (fn [pt]
22 | (= num-dimensions
23 | (count (pt :coordinates)) ; is the number of coordinates correct?
24 | (count (pt :quadrature))))] ; is the number of quad things correct?
25 | (if (every? is-dims-correct? points)
26 | (struct schedule point-map num-dimensions)
27 | "oops -- there was a problem")))
28 |
29 |
30 | (defn uniformly-sampled-grid
31 | [xlow xhigh ylow yhigh]
32 | (for [x (range xlow xhigh)
33 | y (range ylow yhigh)]
34 | {:coordinates (list x y) :quadrature (list \R \R)})) ;; I need this in a map ....
35 |
36 |
37 | (def example
38 | (make-schedule
39 | (into {}
40 | (map (fn [x] [x 1])
41 | (uniformly-sampled-grid 1 10 1 10))) ; convert list to map (with default values of 1)
42 | 2))
43 |
44 | (defn format-point
45 | [pt]
46 | (reduce
47 | (fn [base next] (str base " " next))
48 | ""
49 | (concat
50 | (pt :coordinates)
51 | (pt :quadrature))))
52 |
53 |
54 | (defn format-schedule
55 | [sched]
56 | (let [point-lines (map format-point (keys (sched :points)))]
57 | (reduce (fn [b n] (str b "\n" n)) point-lines)))
58 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/backup/nmrshifts.clj:
--------------------------------------------------------------------------------
1 | (ns BioClojure.nmrshifts
2 | (:use clojure.contrib.math)
3 | (:use clojure.set)
4 | (:use clojure.contrib.generic.functor))
5 |
6 | (def approx-c-shifts
7 | {:CA 58
8 | :THR-CB 68
9 | :CB 32
10 | :SER-CB 63
11 | :GLY-CA 44
12 | :ALA-CB 18
13 | :TYR-CB 39
14 | :ILE-CD 13
15 | :CG 25})
16 |
17 | ;;Parser
18 | ;;Chemical shifts comparison
19 | ;; compares shift values.
20 | (defn get-shift-differences
21 | "get differences of input shift, average shift for various Carbon nucleus
22 | types as a sorted list of pairs"
23 | [shift]
24 | ;; computer difference between shift and average shift for each nucleus type
25 | (let [diffs (for [[atom avgshift] approx-c-shifts]
26 | [atom (abs (- shift avgshift))])]
27 | ;; return a sorted list (by shift difference)
28 | (sort-by second diffs)))
29 |
30 |
31 |
32 | (def avg-aa-shifts ; ignoring helix/sheet/coil for now -- would be great to push this data into a DB
33 | {:ALA {:H 8.20 :HA 4.26 :HB 1.35 :C 177.69 :CA 53.13 :CB 19.12 :N 123.32}
34 | :ARG {}
35 | :ASN {:H 8.36 :HA 4.67 :HB2 2.81 :HB3 2.75 :HD21 7.35 :HD22 7.13 :C 175.20
36 | :CA 53.52 :CB 38.71 :CG 176.56 :N 118.94 :ND2 112.73}
37 | :ASP {:H 8.31 :HA 4.60 :HB2 2.73 :HB3 2.67 :HD2 5.78 :C 176.38 :CA 54.68
38 | :CB 40.92 :CG 178.13 :N 120.67 :OD1 179.66}
39 | :CYS {:H 8.39 :HA 4.70 :HB2 3.28 :HB3 3.18 :HG 10.67 :C 174.79 :CA 58.19
40 | :CB 32.80 :N 120.84}
41 | :GLN {}
42 | :GLU {}
43 | :GLY {:H 8.33 :HA2 3.97 :HA3 3.89 :C 173.88 :CA 45.37 :N 109.89}
44 | :HIS {}
45 | :ILE {}
46 | :LEU {}
47 | :LYS {}
48 | :MET {}
49 | :PHE {}
50 | :PRO {}
51 | :SER {}
52 | :THR {}
53 | :TRP {}
54 | :TYR {}
55 | :VAL {:H 8.29 :HA 4.18 :HB 1.97 :HG1 0.82 :HG2 0.80 :C 175.60 :CA 62.48
56 | :CB 32.77 :CG1 21.52 :CG2 21.33 :N 121.36}})
57 |
58 |
59 |
60 | (defn compare-atom
61 | "Return difference if both ss- and aa-shift defined.
62 | Otherwise return which of the two is not defined.
63 | Result is meaningless if both are not defined."
64 | [ss-shift aa-shift]
65 | (cond
66 | (= nil ss-shift) 'not-in-ss
67 | (= nil aa-shift) 'not-in-aa
68 | :else (- ss-shift aa-shift)))
69 |
70 |
71 | (defn compare-ss-to-aa
72 | "for each atom in spin system:
73 | compare to amino acid's atom (of same name)
74 | return: map -- key is atom, value is comparison result"
75 | [ss aa-atoms]
76 | (let [all-atoms (union (set (keys aa-atoms))
77 | (set (keys ss)))]
78 | (into {} (for [atom all-atoms]
79 | [atom (compare-atom (ss atom) (aa-atoms atom))]))))
80 |
81 |
82 | ;; (compare-ss-to-aas {:H 3.32 :CA 55})
83 | (defn compare-ss-to-aas
84 | "for each amino acid:
85 | compare spin system to amino acid
86 | return: map -- key is amino acid, value is comparison"
87 | [ss]
88 | (into {} (for [[aa atoms] avg-aa-shifts]
89 | [aa (compare-ss-to-aa ss atoms)])))
90 |
91 | (defn best-match-of-comparison
92 | "comparison: map
93 | keys: atom names
94 | values: numbers
95 | returns: a non-negative number"
96 | [comparison]
97 | (->> comparison
98 | vals ;; extract values (of key-value pairs)
99 | (map abs) ;; get absolute values
100 | sort ;; Sort by smallest
101 | first)) ;; First is the best match
102 |
103 |
104 | (defn worst-match-of-comparison
105 | "comparison: map
106 | keys: atom names
107 | values: numbers
108 | returns: a non-negative number"
109 | [comparison]
110 | (->> comparison
111 | vals ;; extract values (of key-value pairs)
112 | (map abs) ;; get absolute values
113 | sort ;; Sort by smallest
114 | last)) ;; last is the worst match
115 |
116 |
117 | (defn remove-non-numbers
118 | "remove elements from a sequence of pairs, where the second value is non-numeric (i.e. non-floatable)"
119 | [seq]
120 | (filter #(try (float (second %)) ; what is try? is it a macro or a function?
121 | (catch Exception _ nil))
122 | seq))
123 |
124 |
125 | (defn rank-by-best-match ; what about ranking by best __normalized__ match?
126 | [comparisons]
127 | (->> comparisons
128 | (fmap remove-non-numbers) ;; remove non-numeric results from each comparison
129 | (filter #(> (count (second %)) 0)) ;; completely remove any empty comparison (i.e. comparison with no numeric results)
130 | (sort-by #(best-match-of-comparison (second %))))) ;; sort comparisons by best (i.e. smallest absolute value) result
131 |
132 |
133 | (defn rank-by-worst-match
134 | "under construction"
135 | [comparisons]
136 | (->> comparisons
137 | (fmap remove-non-numbers)
138 | (filter #(> (count (second %)) 0))
139 | (sort-by #(worst-match-of-comparison (second %)))))
140 |
141 |
142 | (def example-comps (compare-ss-to-aas {:H 3.32 :CA 55}))
143 | (def example-comp (example-comps :GLY))
144 | (def best-match-final (rank-by-best-match example-comps))
145 | (def fmap-example (fmap str {1 2 3 4}))
146 |
147 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/backup/seqUtils.clj:
--------------------------------------------------------------------------------
1 | (ns BioClojure.seqUtils
2 | (:use [clojure.pprint])
3 | (:import (org.apache.commons.lang StringUtils)))
4 |
5 | (defn transform-entry
6 | "Transform a meta string into a map of metadata about a DNA entry."
7 | [entry]
8 | (let [meta-props (seq (-> (subs entry 1) ;; take off the leading ">"
9 | (.split " ")))
10 | name (first meta-props)
11 | props (drop 1 meta-props)]
12 | (assoc (into {} (map #(vec (.split % "=")) props)) "name" name)))
13 |
14 |
15 | (defn parse-fasta
16 | "parse a FASTA-formatted string, transforming it into a map with :meta and
17 | :dna keys."
18 | [fasta-string]
19 | (let [text (.trim fasta-string)
20 | entries (-> text (.replaceAll "\r" "") (.split "\n\n") seq)]
21 | (map #(let [[m dna] (.split % "\n")]
22 | {:meta (transform-entry m) :dna dna})
23 | entries)))
24 |
25 | ;;Reads a fasta file by parsing the individual sequences
26 | (defn read-fasta-file
27 | "Parse a file in fasta format"
28 | [filename]
29 | (parse-fasta (slurp filename)))
30 |
31 | ;;Parses a sequence motif
32 | (defn parse-motif
33 | "Parse a string in motif format"
34 | [motif-string]
35 | (.split (.trim motif-string) "\n"))
36 |
37 | (defn read-motif-file
38 | "read a file and parse it as a motif file"
39 | [filename]
40 | (parse-motif (slurp filename)))
41 |
42 |
43 | ;;Create a random nucleotide, from a c g t. Used to generate motifs randomly.
44 | ;;DO NOT Call this method by itself, it will go for infinity.
45 | (defn rand-nuc "Returns a random nucleotide" []
46 | (repeatedly #(rand-nth ["a" "c" "g" "t"])))
47 |
48 | ;;Create a random nucleotide, from a c g t. Used to generate motifs randomly.
49 | ;;DO NOT Call this method by itself, it will go for infinity.
50 | (defn rand-aa "Returns a random amino" []
51 | (repeatedly #(rand-nth ["R" "H" "K" "D" "E" "S" "T" "N" "Q" "C" "U"
52 | "G" "P" "A" "V" "I" "L" "M" "F" "Y" "W"])))
53 |
54 | ;;Creates a DNA motif of random length
55 | ;;user=> (rand-motif-str 4)
56 | ;;("a" "c" "c" "c")
57 | (defn rand-motif-str "Returns a random motif" [l]
58 | (take l (rand-nuc)))
59 |
60 | ;;Example usage
61 | ;;user=> (load-file "src/BioClojure/dnaUtils.clj")
62 | ;;user=> (use `BioClojure.dnaUtils)
63 | ;;user=> (rand-aa-str 3)
64 | (defn rand-aa-str "Returns a random protein" [l]
65 | (take l (rand-aa)))
66 |
67 |
68 | ;;Define the 1-3 letter mapping.
69 | (def one-to-three
70 | {"R" "ARG"
71 | "H" "HIS"
72 | "K" "LYS"
73 | "D" "ASP"
74 | "E" "GLU"
75 | "S" "SER"
76 | "T" "THR"
77 | "N" "ASN"
78 | "Q" "GLN"
79 | "C" "CYS"
80 | "U" "SEC" ;; interesting amino acid
81 | "G" "GLY"
82 | "P" "PRO"
83 | "A" "ALA"
84 | "V" "VAL"
85 | "I" "ILE"
86 | "L" "LEU"
87 | "M" "MET"
88 | "F" "PHE"
89 | "Y" "TYR"
90 | "W" "TRP"})
91 |
92 | ;; This demonstrates two important distinctions in clojure (1) Strings
93 | ;; are "Sequences" : When we send "ABCDEFGH" as an argument to a "map"
94 | ;; function, each character is individually sent to the map's function
95 | ;; (in this case, "convert"). (2) In order to find a key (which is a
96 | ;; string in this case) in the Map, the char must be converted into a
97 | ;; string (3) Clojure is dynamically, strongly typed -- source:
98 | ;; http://www.citerus.se/post/220609-from-java-to-clojure
99 | (defn aa-to-3-letter
100 | "Converts a string into a list of 3-letter amino acid names. Needs
101 | refactoring: assumes capital letters; if letter not found, mapping function
102 | returns nil; accepts string instead of list"
103 | [string]
104 | (let [convert (fn [c] (one-to-three (str c)))]
105 | (map convert string)))
106 |
107 |
108 | (defn read-and-print
109 | "Read a FASTA file and print it."
110 | [filename]
111 | (pprint (read-fasta-file filename)))
112 |
113 | ;; From the project directory:
114 | ;; lein repl
115 | ;; (use 'BioClojure.core)
116 | ;; (read-and-print "data/sample.fa")
117 |
118 | ;; 1 Identify motifs (M1 - Mx) present in DNA and their order
119 | ;; Confirm initiator motif and terminator motif and positions
120 | ;; Confirm proper insertion into two restriction sites.
121 | ;; Flag any incorrect assemblies and sequences with N positions
122 | ;; Report total number of minimotifs in clone
123 | ;; Generate a graph of overall structure, show linker regions that
124 | ;; glue motifs together and alignm
125 | ;; of motifs to sequences with labels.
126 | ;; 7. Report any 1 nucleotide mutations in DNA
127 |
128 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/backup/venn_nmr.mwb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/src/BioClojure/backup/venn_nmr.mwb
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/backup/vennnmr.clj:
--------------------------------------------------------------------------------
1 | (ns BioClojure.vennnmr
2 | (:use [clojure.contrib.str-utils2 :only (split-lines trim)])
3 | (:use clojure.contrib.generic.functor))
4 |
5 | ;; @Matt: suggested refactorings:
6 | ;; refactor and post data model -- make sure all code uses it
7 | ;; clarify, post general procedure for merging these data (sequence, shifts, shift-stats)
8 | ;; clojure-idiomatize code
9 | (defn parse-bmrb-stats
10 | "output: list of maps
11 | each map: keys are /Res, Name, Atom, Count, Min. Max., Avg., StdDev/"
12 | [string]
13 | (let [lines (split-lines string)
14 | headings (.split (first lines) " +")
15 | atomlines (rest lines)]
16 | (for [atomline atomlines]
17 | (zipmap headings (.split atomline " +")))))
18 |
19 |
20 | (defn transform-stats
21 | "input: list of maps based on bmrb shift statistics file
22 | output: map of keys -- amino acid type names, values maps of keys -- atom names, values maps of -- stats about that atom in that amino acid (avg shift, std dev, etc.)"
23 | [shift-stats]
24 | (let [f (fn [base linemap]
25 | (assoc-in base
26 | [(linemap "Res") (linemap "Name")]
27 | {:avg (Float/parseFloat (linemap "Avg.")) :stddev (Float/parseFloat (linemap "StdDev"))}))] ;; refactor the return value ....
28 | (reduce f {} shift-stats)))
29 |
30 | (defn parse-sequence
31 | "input: cyana-formatted sequence string -- residues separted by newlines
32 | output: map -- key is index, value is amino acid type
33 | length is same as number of lines in input string"
34 | [string]
35 | (zipmap (map #(str (+ % 1)) (range)) ; need indices to be 1-indexed
36 | ;; should refactor to remove 'str' .... requires other changes, too
37 | (split-lines (.trim string))))
38 |
39 | ;;
40 | ;;
41 | (defn parse-shifts
42 | "output: list of maps
43 | each map: keys are /id, shift, error, atom, resid/"
44 | [string]
45 | (let [headers [:id :shift :error :atom :resid]]
46 | (map #(zipmap headers (.split (trim %) " +"))
47 | (split-lines string))))
48 |
49 | (defn seq-to-protein
50 | "input: map of index to aatype
51 | output: map of index to residue"
52 | [seqmap]
53 | (let [func (fn [aatype] {:aatype aatype :atoms {}})]
54 | (fmap func seqmap)))
55 |
56 | (defn place-shift
57 | "input: a protein (map) and a cyana line map
58 | output: a protein with an added atom"
59 | [prot shift-map]
60 | (let [resid (shift-map :resid)
61 | atomname (shift-map :atom)
62 | shift (shift-map :shift)
63 | atomid (shift-map :id)]
64 | (assoc-in prot [resid :atoms atomname] {:shift (Float/parseFloat shift) :id (Integer/parseInt atomid)})))
65 |
66 | (defn merge-shifts
67 | "input: protein, list of maps of header to value"
68 | [prot shift-list]
69 | (reduce place-shift prot shift-list))
70 |
71 | (defn get-stats
72 | "input: ???
73 | output: "
74 | [stats atomname]
75 | (let [atomstats (stats atomname)]
76 | (if atomstats
77 | (atomstats :avg)
78 | 'no-stats-for-atom)))
79 |
80 | (defn place-stats
81 | "input: 1) atoms, keys are atom names, values are maps
82 | 2) average shifts map (specific to that residue) -- keys: atom names, values: maps of info about that atom
83 | output: augmented atoms"
84 | [atoms stats]
85 | ;; for each atom
86 | ;; find the standard data in stats
87 | ;; put that into the atom's map
88 | (into {} (for [[atomname atommap] atoms]
89 | [atomname (assoc-in atommap [:avg] (get-stats stats atomname))]))) ;; but what does this do if (stats atomname) is nil????
90 |
91 | (defn merge-bmrb
92 | "input: bmrb stats, protein with chemical shifts of assigned atoms
93 | output: protein with bmrb stats for each atom that initially had an assignment"
94 | [prot avg-shifts]
95 | ;; for each residue in the protein
96 | ;; find the matching "standard residue" in the average stats
97 | ;; use the aatype of the residue to look up the stats
98 | (let [shift-adder
99 | (fn [res] ;;avg-shifts)]
100 | (assoc-in res [:atoms] (place-stats (res :atoms) (avg-shifts (res :aatype))) ))]
101 | (fmap shift-adder prot)))
102 |
103 | (defn venn-nmr-help
104 | [seqstr shiftstr bmrbstr]
105 | (let [seq (parse-sequence seqstr) ;; parse the sequence string (comments need refactoring)
106 | shifts (parse-shifts shiftstr) ;; parse the assigned shifts string
107 | avg-shifts (transform-stats (parse-bmrb-stats bmrbstr)) ;; parse the bmrb stats string, transform to semantic model
108 | prot (seq-to-protein seq) ;; create a protein object from the sequence
109 | prot-shifts (merge-shifts prot shifts)] ;; put the assigned chemical shifts into the protein
110 | (merge-bmrb prot-shifts avg-shifts))) ;; put the bmrb standard shifts into the protein (based on matching aatype/atomtype)
111 |
112 | (defn venn-nmr
113 | [seqfile shiftfile bmrbfile]
114 | (venn-nmr-help (slurp seqfile)
115 | (slurp shiftfile)
116 | (slurp bmrbfile)))
117 |
118 |
119 | ;;(def mseq (slurp "resources/venn_nmr/sequence.txt"))
120 | ;;(def mshift (slurp "resources/venn_nmr/assigned-shifts.txt"))
121 | ;;(def mstat (slurp "resources/venn_nmr/bmrbstats.txt"))
122 | ;;(def goodstats (transform-stats (parse-bmrb-stats (slurp "resources/venn_nmr/bmrbstats.txt"))))
123 | ;;(venn-nmr-help mseq mshift mstat)
124 | ;;(venn-nmr "resources/venn_nmr/sequence.txt" "resources/venn_nmr/assigned-shifts.txt" "resources/venn_nmr/bmrbstats.txt")
125 |
126 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/clomol.clj:
--------------------------------------------------------------------------------
1 | (ns BioClojure.clomol
2 | (:use [clojure.contrib.string :only (replace-by)])
3 | (:use clojure.contrib.generic.functor)
4 | (:use [BioClojure.vennnmr :only (venn-nmr)])
5 | (import org.biojava.bio.structure.StructureTools)
6 | (import java.lang.Math))
7 |
8 | ;; String filename = "/path/to/PDBFile.pdb" ;
9 | ;; PDBFileReader pdbreader = new PDBFileReader();
10 | ;; pdbreader.setParseSecStruc(true);
11 | ;; pdbreader.setAlignSeqRes(true);
12 | ;; pdbreader.setParseCAOnly(false);
13 | ;; pdbreader.setAutoFetch(true);
14 | ;; Structure struc = pdbreader.getStructure(filename);
15 | (defn getStructureF
16 | "Get a structure, local"
17 | [filename]
18 | (.getStructure (new org.biojava.bio.structure.io.PDBFileReader) filename))
19 |
20 | (defn launchGui
21 | "Matt - maybe move this to vennnmr.clj or app.clj ?
22 | Here is a starting point - it will launch biojava jmol gui.
23 | INPUT: a biojava Structure object (org.biojava.bio.structure.Structure)
24 | OUTPUT: ???"
25 | [s]
26 | (.setStructure (new org.biojava.bio.structure.gui.BiojavaJmol) s))
27 |
28 | (defn getStructure
29 | "Get a structure From the pdb
30 | INPUT: a pdb id
31 | OUPUT: is a org.biojava.bio.structure.Structure object."
32 | [pdbid]
33 | (.getStructure (new org.biojava.bio.structure.align.util.AtomCache "/tmp" true) pdbid))
34 |
35 | (defn colorAA
36 | "Creates a string that colors an amino acid"
37 | [index]
38 | (str "select ", index, "; color green"))
39 |
40 | ;; could/should this could be rewritten as:
41 | ;; (doto (new org.biojava.bio.structure.gui.BiojavaJmol)]
42 | ;; (.setStructure (getStructure "1WRP"))
43 | ;; (.evalString "select *; spacefill 200; wireframe off; backbone 0.4; color chain"))
44 | (defn ex1
45 | "Launch a viewer that views trp represor. And then colors it blue, with spacefill. "
46 | []
47 | (let [panel (new org.biojava.bio.structure.gui.BiojavaJmol)]
48 | (.setStructure panel (getStructure "1WRP"))
49 | (.evalString panel "select *; spacefill 200; wireframe off; backbone 0.4; color chain")
50 | (.evalString panel "select atomno=1; color RED"))) ;;<--- color this one atom red.
51 |
52 | (defn atomColorPct
53 | "Returns a map of atom #s to floats"
54 | [acount]
55 | (zipmap (range 1 acount)
56 | (repeatedly rand)))
57 |
58 | (defn atomColorValue
59 | "Uses the atomColorPct method to scale rbg colors.
60 | returns a map of atoms to colors"
61 | [acount]
62 | (let [atomColors (atomColorPct acount)
63 | mykeys (range 1 acount)
64 | myvalues (map (fn [x] [(Math/floor (* 255 (atomColors x))) 111 111]) mykeys)]
65 | ;; this probably needs refactoring .... -- Matt
66 | ;; ... this code is just generating keys, and then generating a value from each of those keys,
67 | ;; and then putting those key/value pairs into a map
68 | (zipmap mykeys myvalues)))
69 |
70 |
71 | (defn ex2
72 | "launch a viewer that views trp represor. And then colors it blue, with spacefill. "
73 | []
74 | (let [ panel (new org.biojava.bio.structure.gui.BiojavaJmol)
75 | atomToFloat (atomColorPct 4)] ;; changed to make it compile -- 4 is any arbitrary number, 'atomColorPct' is an arbitrary function
76 | (.setStructure panel (getStructure "1WRP"))
77 | (.evalString panel "select *; spacefill 200; wireframe off; backbone 0.4; color chain")
78 | ;; this method creates a map of indices to select statements .... how to select the key and put value in the right half ?
79 | (doseq [[k v] (atomColorValue (StructureTools/getNrAtoms (getStructure "1WRP")))]
80 | (.evalString panel (str "select atomno=" k " ; color " v " ;" ) )) )) ; @Matt -- read about 'doseq'
81 |
82 | (defn getColor
83 | ""
84 | [std-shift-map atomid]
85 | [atomid (std-shift-map atomid)])
86 |
87 | (defn ex3
88 | "launch a viewer that views 16790, then colors it by shift deviation from norms"
89 | [std-shift-map]
90 | (let [panel (new org.biojava.bio.structure.gui.BiojavaJmol)]
91 | (.setStructure panel (getStructure "2X8N"))
92 | (.evalString panel "select *; spacefill 200; wireframe off; backbone 0.4; color chain")
93 | ;; get the number of atoms
94 | ;; create the integers from 1 to that number -- these are the keys
95 | ;; pull the values out of the vennnmr data structure -- the values are the std shifts
96 | ;; color all of these atoms in the structure
97 | (doseq [[k v] std-shift-map]
98 | (.evalString panel (str "select atomno=", k, " ; color ", v, " ;"))))) ; @Matt -- read about 'doseq'
99 |
100 | (defn new-gui-example
101 | "launch a viewer that views 16790, then colors it by shift deviation from norms"
102 | [atoms]
103 | (let [panel (new org.biojava.bio.structure.gui.BiojavaJmol)]
104 | (.setStructure panel (getStructureF "resources/venn_nmr/structure.pdb"))
105 | (.evalString panel "select *; spacefill 200; wireframe off; backbone 0.4; color chain")
106 | (doseq [x atoms]
107 | (.evalString panel (str "select resno="
108 | (:resid x)
109 | " and atomname=\""
110 | (:aname x)
111 | "\" ; color "
112 | (:color x)
113 | " ;")))))
114 |
115 | (defn color-maker
116 | "input: map of atomid to normalized shift"
117 | [atoms-to-shifts]
118 | (fmap (fn [x] [(Math/floor (* 128 x)) 111 111]) atoms-to-shifts))
119 |
120 | (defn color-maker2
121 | "input: ???"
122 | [num]
123 | (let [value (Math/floor (* 128 num))]
124 | [value 111 111]))
125 |
126 | (defn translate-shift
127 | "compare shift to avg-shift, returning an arbitrary number of no avg-shift"
128 | [shift avg-shift]
129 | (if (symbol? avg-shift) ;; if there was no shift in the bmrb stats to compare to
130 | 1.99 ;; then return an arbitrary number
131 | (/ shift avg-shift))) ;; but if there was, compare (by division)
132 |
133 | (defn my-vals
134 | "like vals, but returns '() instead of nil if no vals in map"
135 | [my-map]
136 | (if (= (count my-map) 0)
137 | '()
138 | (vals my-map)))
139 |
140 | (defn stats-to-atomid-map
141 | "thing to transform stats data from venn-nmr to what we need here"
142 | [stats-map]
143 | ;; for each value (residue map)
144 | ;; for each atom (:atoms)
145 | ;; [atomid norm-shift]
146 | (into {} (map (fn [atom-map]
147 | [(atom-map :id) (translate-shift (atom-map :shift) (atom-map :avg))])
148 | (flatten (map my-vals (map :atoms (vals stats-map)))))))
149 |
150 | (defn stats-to-new-map
151 | "thing to transform stats data from venn-nmr to what we need here"
152 | [stats-map]
153 | (apply concat ;; using apply because concat is broken (concat accepts multiple parameters instead of an iterable)
154 | (for [[resid res] stats-map]
155 | (for [[aname atom-map] (res :atoms)]
156 | {:resid resid
157 | :aname aname
158 | :color (color-maker2 (translate-shift (atom-map :shift) (atom-map :avg)))}))))
159 |
160 | (defn example-4
161 | "??colors?? atoms according to normalization against std shifts??"
162 | []
163 | (ex3 (color-maker (stats-to-atomid-map (venn-nmr "resources/venn_nmr/sequence.txt" "resources/venn_nmr/assigned-shifts.txt" "resources/venn_nmr/bmrbstats.txt")))))
164 |
165 | (defn example-5
166 | ""
167 | []
168 | (new-gui-example (stats-to-new-map (venn-nmr "resources/venn_nmr/sequence.txt" "resources/venn_nmr/assigned-shifts.txt" "resources/venn_nmr/bmrbstats.txt"))))
169 |
170 | (def stats-stuff (stats-to-new-map (venn-nmr "resources/venn_nmr/sequence.txt"
171 | "resources/venn_nmr/assigned-shifts.txt"
172 | "resources/venn_nmr/bmrbstats.txt")))
173 |
174 | ;;
175 | ;;(def nums-eg (stats-to-atomid-map (venn-nmr "resources/venn_nmr/sequence.txt"
176 | ;; "resources/venn_nmr/assigned-shifts.txt"
177 | ;; "resources/venn_nmr/bmrbstats.txt")))
178 |
179 | ;;(def color-eg (color-maker nums-eg))
180 |
181 | ;;(def venn-struc (venn-nmr "resources/venn_nmr/sequence.txt" "resources/venn_nmr/assigned-shifts.txt" "resources/venn_nmr/bmrbstats.txt"))
182 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/commons.clj:
--------------------------------------------------------------------------------
1 | (ns BioClojure.commons
2 | (:import (org.apache.commons.lang StringUtils)
3 | (java.io File)))
4 |
5 | ;; Capitalize Function
6 | (defn makeCap "This makes capitals" [string]
7 | (StringUtils/capitalize string))
8 |
9 | ;; input s1, b1 b2 b3
10 | (defn hasSubstring "has" [main b]
11 | (map #(.indexOf main %) b))
12 |
13 | ;;returns the "type" of a file - i.e. wether its a file or dir
14 | (defn kind [filename]
15 | ;;create a new file by calling the File(filename) constructor
16 | (let [f (File. filename)]
17 | (cond
18 | (.isFile f) "file"
19 | (.isDirectory f) "directory"
20 | (.exists f) "other"
21 | :else "non-existent")))
22 |
23 | ;;aaa---
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/funcUtils.clj:
--------------------------------------------------------------------------------
1 | (ns BioClojure.funcUtils
2 | (:use clojure.contrib.math))
3 |
4 | (defn lift ;; this function is very similar to partially applying 'map'
5 | [f]
6 | (fn [l]
7 | (map f l)))
8 |
9 | (defn plustwo ;; `plustwo` consumes a single number
10 | [x]
11 | (+ x 2))
12 |
13 |
14 | (def lifted_function (lift plustwo)) ;; the lifted version consumes a list of numbers
15 |
16 |
17 | (def example
18 | (lifted_function (list 1 2 3 4 5 6))) ;; here it is in action
19 |
20 | (def example2
21 | ((lift (fn [x] (expt x 2))) ;; 'lift' an anonymous function to create a function over a list
22 | (range 1 11))) ;; the list that is passed to the lifted function
23 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/nmrSampleSchedule.clj:
--------------------------------------------------------------------------------
1 | (ns BioClojure.nmrSampleSchedule)
2 |
3 | ;;@matt : Can we move this to nmr_samplesched.clj for consistency ?
4 | ;;bash> git mv sampleSchedule.clj nmr_sampleSchedule.clj
5 |
6 | ;; Lee: Structs are deprecated, use a record (see 'defrecord') if you
7 | ;; actually need an object, or a map if you don't need an object
8 |
9 | (defstruct schedule :points :num-dimensions)
10 |
11 | ; Matt: resource for using records: http://groups.google.com/group/clojure/browse_thread/thread/94ed69c0cd6951b3
12 | ; records create java classes; structs may already be deprecated or may soon be
13 | ; records need to be :import (ed)
14 | ; why are structs deprecated?
15 | ; clojuredocs for defrecord: http://clojuredocs.org/clojure_core/clojure.core/defrecord#example_454
16 |
17 |
18 | (defn make-schedule
19 | [point-map num-dimensions]
20 | (let [points (keys point-map)
21 | is-dims-correct? (fn [pt]
22 | (= num-dimensions
23 | (count (pt :coordinates)) ; is the number of coordinates correct?
24 | (count (pt :quadrature))))] ; is the number of quad things correct?
25 | (if (every? is-dims-correct? points)
26 | (struct schedule point-map num-dimensions)
27 | "oops -- there was a problem")))
28 |
29 |
30 | (defn uniformly-sampled-grid
31 | [xlow xhigh ylow yhigh]
32 | (for [x (range xlow xhigh)
33 | y (range ylow yhigh)]
34 | {:coordinates (list x y) :quadrature (list \R \R)})) ;; I need this in a map ....
35 |
36 |
37 | (def example
38 | (make-schedule
39 | (into {}
40 | (map (fn [x] [x 1])
41 | (uniformly-sampled-grid 1 10 1 10))) ; convert list to map (with default values of 1)
42 | 2))
43 |
44 | (defn format-point
45 | [pt]
46 | (reduce
47 | (fn [base next] (str base " " next))
48 | ""
49 | (concat
50 | (pt :coordinates)
51 | (pt :quadrature))))
52 |
53 |
54 | (defn format-schedule
55 | [sched]
56 | (let [point-lines (map format-point (keys (sched :points)))]
57 | (reduce (fn [b n] (str b "\n" n)) point-lines)))
58 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/nmrshifts.clj:
--------------------------------------------------------------------------------
1 | (ns BioClojure.nmrshifts
2 | (:use clojure.contrib.math)
3 | (:use clojure.set)
4 | (:use clojure.contrib.generic.functor))
5 |
6 | (def approx-c-shifts
7 | {:CA 58
8 | :THR-CB 68
9 | :CB 32
10 | :SER-CB 63
11 | :GLY-CA 44
12 | :ALA-CB 18
13 | :TYR-CB 39
14 | :ILE-CD 13
15 | :CG 25})
16 |
17 | ;;Parser
18 | ;;Chemical shifts comparison
19 | ;; compares shift values.
20 | (defn get-shift-differences
21 | "get differences of input shift, average shift for various Carbon nucleus
22 | types as a sorted list of pairs"
23 | [shift]
24 | ;; computer difference between shift and average shift for each nucleus type
25 | (let [diffs (for [[atom avgshift] approx-c-shifts]
26 | [atom (abs (- shift avgshift))])]
27 | ;; return a sorted list (by shift difference)
28 | (sort-by second diffs)))
29 |
30 |
31 |
32 | (def avg-aa-shifts ; ignoring helix/sheet/coil for now -- would be great to push this data into a DB
33 | {:ALA {:H 8.20 :HA 4.26 :HB 1.35 :C 177.69 :CA 53.13 :CB 19.12 :N 123.32}
34 | :ARG {}
35 | :ASN {:H 8.36 :HA 4.67 :HB2 2.81 :HB3 2.75 :HD21 7.35 :HD22 7.13 :C 175.20
36 | :CA 53.52 :CB 38.71 :CG 176.56 :N 118.94 :ND2 112.73}
37 | :ASP {:H 8.31 :HA 4.60 :HB2 2.73 :HB3 2.67 :HD2 5.78 :C 176.38 :CA 54.68
38 | :CB 40.92 :CG 178.13 :N 120.67 :OD1 179.66}
39 | :CYS {:H 8.39 :HA 4.70 :HB2 3.28 :HB3 3.18 :HG 10.67 :C 174.79 :CA 58.19
40 | :CB 32.80 :N 120.84}
41 | :GLN {}
42 | :GLU {}
43 | :GLY {:H 8.33 :HA2 3.97 :HA3 3.89 :C 173.88 :CA 45.37 :N 109.89}
44 | :HIS {}
45 | :ILE {}
46 | :LEU {}
47 | :LYS {}
48 | :MET {}
49 | :PHE {}
50 | :PRO {}
51 | :SER {}
52 | :THR {}
53 | :TRP {}
54 | :TYR {}
55 | :VAL {:H 8.29 :HA 4.18 :HB 1.97 :HG1 0.82 :HG2 0.80 :C 175.60 :CA 62.48
56 | :CB 32.77 :CG1 21.52 :CG2 21.33 :N 121.36}})
57 |
58 |
59 |
60 | (defn compare-atom
61 | "Return difference if both ss- and aa-shift defined.
62 | Otherwise return which of the two is not defined.
63 | Result is meaningless if both are not defined."
64 | [ss-shift aa-shift]
65 | (cond
66 | (= nil ss-shift) 'not-in-ss
67 | (= nil aa-shift) 'not-in-aa
68 | :else (- ss-shift aa-shift)))
69 |
70 |
71 | (defn compare-ss-to-aa
72 | "for each atom in spin system:
73 | compare to amino acid's atom (of same name)
74 | return: map -- key is atom, value is comparison result"
75 | [ss aa-atoms]
76 | (let [all-atoms (union (set (keys aa-atoms))
77 | (set (keys ss)))]
78 | (into {} (for [atom all-atoms]
79 | [atom (compare-atom (ss atom) (aa-atoms atom))]))))
80 |
81 |
82 | ;; (compare-ss-to-aas {:H 3.32 :CA 55})
83 | (defn compare-ss-to-aas
84 | "for each amino acid:
85 | compare spin system to amino acid
86 | return: map -- key is amino acid, value is comparison"
87 | [ss]
88 | (into {} (for [[aa atoms] avg-aa-shifts]
89 | [aa (compare-ss-to-aa ss atoms)])))
90 |
91 | (defn best-match-of-comparison
92 | "comparison: map
93 | keys: atom names
94 | values: numbers
95 | returns: a non-negative number"
96 | [comparison]
97 | (->> comparison
98 | vals ;; extract values (of key-value pairs)
99 | (map abs) ;; get absolute values
100 | sort ;; Sort by smallest
101 | first)) ;; First is the best match
102 |
103 |
104 | (defn worst-match-of-comparison
105 | "comparison: map
106 | keys: atom names
107 | values: numbers
108 | returns: a non-negative number"
109 | [comparison]
110 | (->> comparison
111 | vals ;; extract values (of key-value pairs)
112 | (map abs) ;; get absolute values
113 | sort ;; Sort by smallest
114 | last)) ;; last is the worst match
115 |
116 |
117 | (defn remove-non-numbers
118 | "remove elements from a sequence of pairs, where the second value is non-numeric (i.e. non-floatable)"
119 | [seq]
120 | (filter #(try (float (second %)) ; what is try? is it a macro or a function?
121 | (catch Exception _ nil))
122 | seq))
123 |
124 |
125 | (defn rank-by-best-match ; what about ranking by best __normalized__ match?
126 | [comparisons]
127 | (->> comparisons
128 | (fmap remove-non-numbers) ;; remove non-numeric results from each comparison
129 | (filter #(> (count (second %)) 0)) ;; completely remove any empty comparison (i.e. comparison with no numeric results)
130 | (sort-by #(best-match-of-comparison (second %))))) ;; sort comparisons by best (i.e. smallest absolute value) result
131 |
132 |
133 | (defn rank-by-worst-match
134 | "under construction"
135 | [comparisons]
136 | (->> comparisons
137 | (fmap remove-non-numbers)
138 | (filter #(> (count (second %)) 0))
139 | (sort-by #(worst-match-of-comparison (second %)))))
140 |
141 |
142 | (def example-comps (compare-ss-to-aas {:H 3.32 :CA 55}))
143 | (def example-comp (example-comps :GLY))
144 | (def best-match-final (rank-by-best-match example-comps))
145 | (def fmap-example (fmap str {1 2 3 4}))
146 |
147 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/seqUtils.clj:
--------------------------------------------------------------------------------
1 | (ns BioClojure.seqUtils
2 | (:use [clojure.pprint])
3 | (:import (org.apache.commons.lang StringUtils)))
4 |
5 | (defn transform-entry
6 | "Transform a meta string into a map of metadata about a DNA entry."
7 | [entry]
8 | (let [meta-props (seq (-> (subs entry 1) ;; take off the leading ">"
9 | (.split " ")))
10 | name (first meta-props)
11 | props (drop 1 meta-props)]
12 | (assoc (into {} (map #(vec (.split % "=")) props)) "name" name)))
13 |
14 |
15 | (defn parse-fasta
16 | "parse a FASTA-formatted string, transforming it into a map with :meta and
17 | :dna keys."
18 | [fasta-string]
19 | (let [text (.trim fasta-string)
20 | entries (-> text (.replaceAll "\r" "") (.split "\n\n") seq)]
21 | (map #(let [[m dna] (.split % "\n")]
22 | {:meta (transform-entry m) :dna dna})
23 | entries)))
24 |
25 | ;;Reads a fasta file by parsing the individual sequences
26 | (defn read-fasta-file
27 | "Parse a file in fasta format"
28 | [filename]
29 | (parse-fasta (slurp filename)))
30 |
31 | ;;Parses a sequence motif
32 | (defn parse-motif
33 | "Parse a string in motif format"
34 | [motif-string]
35 | (.split (.trim motif-string) "\n"))
36 |
37 | (defn read-motif-file
38 | "read a file and parse it as a motif file"
39 | [filename]
40 | (parse-motif (slurp filename)))
41 |
42 |
43 | ;;Create a random nucleotide, from a c g t. Used to generate motifs randomly.
44 | ;;DO NOT Call this method by itself, it will go for infinity.
45 | (defn rand-nuc "Returns a random nucleotide" []
46 | (repeatedly #(rand-nth ["a" "c" "g" "t"])))
47 |
48 | ;;Create a random nucleotide, from a c g t. Used to generate motifs randomly.
49 | ;;DO NOT Call this method by itself, it will go for infinity.
50 | (defn rand-aa "Returns a random amino" []
51 | (repeatedly #(rand-nth ["R" "H" "K" "D" "E" "S" "T" "N" "Q" "C" "U"
52 | "G" "P" "A" "V" "I" "L" "M" "F" "Y" "W"])))
53 |
54 | ;;Creates a DNA motif of random length
55 | ;;user=> (rand-motif-str 4)
56 | ;;("a" "c" "c" "c")
57 | (defn rand-motif-str "Returns a random motif" [l]
58 | (take l (rand-nuc)))
59 |
60 | ;;Example usage
61 | ;;user=> (load-file "src/BioClojure/dnaUtils.clj")
62 | ;;user=> (use `BioClojure.dnaUtils)
63 | ;;user=> (rand-aa-str 3)
64 | (defn rand-aa-str "Returns a random protein" [l]
65 | (take l (rand-aa)))
66 |
67 |
68 | ;;Define the 1-3 letter mapping.
69 | (def one-to-three
70 | {"R" "ARG"
71 | "H" "HIS"
72 | "K" "LYS"
73 | "D" "ASP"
74 | "E" "GLU"
75 | "S" "SER"
76 | "T" "THR"
77 | "N" "ASN"
78 | "Q" "GLN"
79 | "C" "CYS"
80 | "U" "SEC" ;; interesting amino acid
81 | "G" "GLY"
82 | "P" "PRO"
83 | "A" "ALA"
84 | "V" "VAL"
85 | "I" "ILE"
86 | "L" "LEU"
87 | "M" "MET"
88 | "F" "PHE"
89 | "Y" "TYR"
90 | "W" "TRP"})
91 |
92 | ;; This demonstrates two important distinctions in clojure (1) Strings
93 | ;; are "Sequences" : When we send "ABCDEFGH" as an argument to a "map"
94 | ;; function, each character is individually sent to the map's function
95 | ;; (in this case, "convert"). (2) In order to find a key (which is a
96 | ;; string in this case) in the Map, the char must be converted into a
97 | ;; string (3) Clojure is dynamically, strongly typed -- source:
98 | ;; http://www.citerus.se/post/220609-from-java-to-clojure
99 | (defn aa-to-3-letter
100 | "Converts a string into a list of 3-letter amino acid names. Needs
101 | refactoring: assumes capital letters; if letter not found, mapping function
102 | returns nil; accepts string instead of list"
103 | [string]
104 | (let [convert (fn [c] (one-to-three (str c)))]
105 | (map convert string)))
106 |
107 |
108 | (defn read-and-print
109 | "Read a FASTA file and print it."
110 | [filename]
111 | (pprint (read-fasta-file filename)))
112 |
113 | ;; From the project directory:
114 | ;; lein repl
115 | ;; (use 'BioClojure.core)
116 | ;; (read-and-print "data/sample.fa")
117 |
118 | ;; 1 Identify motifs (M1 - Mx) present in DNA and their order
119 | ;; Confirm initiator motif and terminator motif and positions
120 | ;; Confirm proper insertion into two restriction sites.
121 | ;; Flag any incorrect assemblies and sequences with N positions
122 | ;; Report total number of minimotifs in clone
123 | ;; Generate a graph of overall structure, show linker regions that
124 | ;; glue motifs together and alignm
125 | ;; of motifs to sequences with labels.
126 | ;; 7. Report any 1 nucleotide mutations in DNA
127 |
128 |
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/venn_nmr.mwb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/bioclojure2/src/BioClojure/venn_nmr.mwb
--------------------------------------------------------------------------------
/bioclojure2/src/BioClojure/vennnmr.clj:
--------------------------------------------------------------------------------
1 | (ns BioClojure.vennnmr
2 | (:use [clojure.contrib.str-utils2 :only (split-lines trim)])
3 | (:use clojure.contrib.generic.functor))
4 |
5 | ;; @Matt: suggested refactorings:
6 | ;; refactor and post data model -- make sure all code uses it
7 | ;; clarify, post general procedure for merging these data (sequence, shifts, shift-stats)
8 | ;; clojure-idiomatize code
9 | (defn parse-bmrb-stats
10 | "output: list of maps
11 | each map: keys are /Res, Name, Atom, Count, Min. Max., Avg., StdDev/"
12 | [string]
13 | (let [lines (split-lines string)
14 | headings (.split (first lines) " +")
15 | atomlines (rest lines)]
16 | (for [atomline atomlines]
17 | (zipmap headings (.split atomline " +")))))
18 |
19 |
20 | (defn transform-stats
21 | "input: list of maps based on bmrb shift statistics file
22 | output: map of keys -- amino acid type names, values maps of keys -- atom names, values maps of -- stats about that atom in that amino acid (avg shift, std dev, etc.)"
23 | [shift-stats]
24 | (let [f (fn [base linemap]
25 | (assoc-in base
26 | [(linemap "Res") (linemap "Name")]
27 | {:avg (Float/parseFloat (linemap "Avg.")) :stddev (Float/parseFloat (linemap "StdDev"))}))] ;; refactor the return value ....
28 | (reduce f {} shift-stats)))
29 |
30 | (defn parse-sequence
31 | "input: cyana-formatted sequence string -- residues separted by newlines
32 | output: map -- key is index, value is amino acid type
33 | length is same as number of lines in input string"
34 | [string]
35 | (zipmap (map #(str (+ % 1)) (range)) ; need indices to be 1-indexed
36 | ;; should refactor to remove 'str' .... requires other changes, too
37 | (split-lines (.trim string))))
38 |
39 | ;;
40 | ;;
41 | (defn parse-shifts
42 | "output: list of maps
43 | each map: keys are /id, shift, error, atom, resid/"
44 | [string]
45 | (let [headers [:id :shift :error :atom :resid]]
46 | (map #(zipmap headers (.split (trim %) " +"))
47 | (split-lines string))))
48 |
49 | (defn seq-to-protein
50 | "input: map of index to aatype
51 | output: map of index to residue"
52 | [seqmap]
53 | (let [func (fn [aatype] {:aatype aatype :atoms {}})]
54 | (fmap func seqmap)))
55 |
56 | (defn place-shift
57 | "input: a protein (map) and a cyana line map
58 | output: a protein with an added atom"
59 | [prot shift-map]
60 | (let [resid (shift-map :resid)
61 | atomname (shift-map :atom)
62 | shift (shift-map :shift)
63 | atomid (shift-map :id)]
64 | (assoc-in prot [resid :atoms atomname] {:shift (Float/parseFloat shift) :id (Integer/parseInt atomid)})))
65 |
66 | (defn merge-shifts
67 | "input: protein, list of maps of header to value"
68 | [prot shift-list]
69 | (reduce place-shift prot shift-list))
70 |
71 | (defn get-stats
72 | "input: ???
73 | output: "
74 | [stats atomname]
75 | (let [atomstats (stats atomname)]
76 | (if atomstats
77 | (atomstats :avg)
78 | 'no-stats-for-atom)))
79 |
80 | (defn place-stats
81 | "input: 1) atoms, keys are atom names, values are maps
82 | 2) average shifts map (specific to that residue) -- keys: atom names, values: maps of info about that atom
83 | output: augmented atoms"
84 | [atoms stats]
85 | ;; for each atom
86 | ;; find the standard data in stats
87 | ;; put that into the atom's map
88 | (into {} (for [[atomname atommap] atoms]
89 | [atomname (assoc-in atommap [:avg] (get-stats stats atomname))]))) ;; but what does this do if (stats atomname) is nil????
90 |
91 | (defn merge-bmrb
92 | "input: bmrb stats, protein with chemical shifts of assigned atoms
93 | output: protein with bmrb stats for each atom that initially had an assignment"
94 | [prot avg-shifts]
95 | ;; for each residue in the protein
96 | ;; find the matching "standard residue" in the average stats
97 | ;; use the aatype of the residue to look up the stats
98 | (let [shift-adder
99 | (fn [res] ;;avg-shifts)]
100 | (assoc-in res [:atoms] (place-stats (res :atoms) (avg-shifts (res :aatype))) ))]
101 | (fmap shift-adder prot)))
102 |
103 | (defn venn-nmr-help
104 | [seqstr shiftstr bmrbstr]
105 | (let [seq (parse-sequence seqstr) ;; parse the sequence string (comments need refactoring)
106 | shifts (parse-shifts shiftstr) ;; parse the assigned shifts string
107 | avg-shifts (transform-stats (parse-bmrb-stats bmrbstr)) ;; parse the bmrb stats string, transform to semantic model
108 | prot (seq-to-protein seq) ;; create a protein object from the sequence
109 | prot-shifts (merge-shifts prot shifts)] ;; put the assigned chemical shifts into the protein
110 | (merge-bmrb prot-shifts avg-shifts))) ;; put the bmrb standard shifts into the protein (based on matching aatype/atomtype)
111 |
112 | (defn venn-nmr
113 | [seqfile shiftfile bmrbfile]
114 | (venn-nmr-help (slurp seqfile)
115 | (slurp shiftfile)
116 | (slurp bmrbfile)))
117 |
118 |
119 | ;;(def mseq (slurp "resources/venn_nmr/sequence.txt"))
120 | ;;(def mshift (slurp "resources/venn_nmr/assigned-shifts.txt"))
121 | ;;(def mstat (slurp "resources/venn_nmr/bmrbstats.txt"))
122 | ;;(def goodstats (transform-stats (parse-bmrb-stats (slurp "resources/venn_nmr/bmrbstats.txt"))))
123 | ;;(venn-nmr-help mseq mshift mstat)
124 | ;;(venn-nmr "resources/venn_nmr/sequence.txt" "resources/venn_nmr/assigned-shifts.txt" "resources/venn_nmr/bmrbstats.txt")
125 |
126 |
--------------------------------------------------------------------------------
/bioclojure2/src/demo/web.clj:
--------------------------------------------------------------------------------
1 | (ns demo.web
2 | (:use [ring.adapter.jetty]
3 | [BioClojure.seqUtils]
4 | [BioClojure.nmrSampleSchedule]))
5 |
6 | (defn demo []
7 | (let [random_motif (apply str (rand-motif-str (rand-int 30)))
8 | random_aa (rand-aa-str (rand-int 40))
9 | translated_aa (aa-to-3-letter random_aa)]
10 | ["rand dna = " random_motif "; a rand protein = " random_aa " which is translated to " translated_aa]))
11 |
12 | (defn demoPretty []
13 | (interpose "
" (demo)))
14 |
15 | (defn app [req]
16 | {:status 200
17 | :headers {"Content-Type" "text/html"}
18 | :body (str
19 | ["Welcome Mini-ClotifMiner : The Flagship App of the BioClojure Framework
demo:"
20 | (demo)
21 | "
An NMR sampling schedule:" 24 | (format-schedule example) 25 | ""])}) 26 | 27 | (defn -main [] 28 | (let [port (Integer/parseInt (System/getenv "PORT"))] 29 | (run-jetty app {:port port}))) 30 | -------------------------------------------------------------------------------- /bioclojure2/test/BioClojure/test/nmrshifts.clj: -------------------------------------------------------------------------------- 1 | (ns BioClojure.test.nmrshifts 2 | (:use [BioClojure.nmrshifts]) 3 | (:use [clojure.test])) 4 | 5 | 6 | ; @Matt: are you following the clojure/'testing in clojure' conventions? 7 | ; are you using the test API properly/effectively? 8 | ; Refactor to make the tests more meaningful. 9 | (deftest test-compare-atom 10 | "1. does it return a positive when ss-shift is greater than aa-shift 11 | 2. does it return a negative when aa-shift greater 12 | 3. does it return 0 when they're equal 13 | 4. does it return 'not-in-ss when ss-shift is nil 14 | 5. does it return 'not-in-aa when aa-shift is nil 15 | 6. undefined when both are nil" 16 | [] 17 | (and ; using test API???? 18 | (> (compare-atom 8.3 4.2) 0) 19 | (< (compare-atom 345 3443) 0) 20 | (= (compare-atom 3.3 3.3) 0) ; does floating-point comparison work like in Java? yikes 21 | (= (compare-atom nil 107.79) 'not-in-ss) 22 | (= (compare-atom 89.88 nil) 'not-in-aa))) -------------------------------------------------------------------------------- /bioclojure2/test/BioClojure/test/vennnmr.clj: -------------------------------------------------------------------------------- 1 | (ns BioClojure.test.vennnmr 2 | (:use [BioClojure.vennnmr]) 3 | (:use [clojure.test])) 4 | 5 | 6 | (def mseq (slurp "resources/venn_nmr/sequence.txt")) 7 | (def mshift (slurp "resources/venn_nmr/assigned-shifts.prot")) 8 | (def mstat (slurp "resources/venn_nmr/bmrbstats.txt")) 9 | 10 | 11 | (deftest test-parse-bmrb-stats 12 | (is (parse-sequence mseq))) ;; does this test actually do anything? 13 | 14 | 15 | (deftest test-parse-assigned-shifts 16 | (is (parse-shifts mshift))) 17 | 18 | 19 | (deftest test-parse-bmrb-stats 20 | (is (parse-bmrb-stats mstat))) 21 | 22 | 23 | (deftest test-venn-nmr 24 | (is (venn-nmr-help mseq mshift mstat))) ;; is this an effective test? 25 | 26 | 27 | ;;;; what follows is for informal testing 28 | (def shifts (parse-shifts " 7 57.135 0.000 CA 1 29 | 1 4.155 0.000 HA 1 30 | 8 29.815 0.000 CB 1 31 | 2 1.908 0.000 HB2 1 32 | 3 2.003 0.000 HB3 1 33 | 9 36.326 0.000 CG 1 34 | 4 2.222 0.000 HG2 1 35 | 5 2.222 0.000 HG3 1 36 | 6 176.410 0.000 C 1 37 | 19 118.889 0.000 N 2 38 | 10 8.376 0.000 H 2 39 | 17 53.005 0.000 CA 2 40 | 11 4.752 0.000 HA 2 41 | 18 38.025 0.000 CB 2 42 | 12 2.675 0.000 HB2 2 43 | 13 2.932 0.000 HB3 2 44 | 20 110.708 0.000 ND2 2 45 | 14 6.792 0.000 HD21 2 46 | 15 7.423 0.000 HD22 2 47 | 16 175.445 0.000 C 2 48 | 123 116.209 0.000 N 12 49 | 116 8.466 0.000 H 12 50 | 121 56.000 0.000 CA 12 51 | 117 4.179 0.000 HA 12 52 | 122 40.455 0.000 CB 12 53 | 118 2.630 0.000 HB2 12 54 | 119 2.469 0.000 HB3 12 55 | 120 175.224 0.000 C 12")) 56 | 57 | (def myseq (parse-sequence "MET 58 | ASN 59 | CYS 60 | VAL 61 | CYS 62 | GLY 63 | SER 64 | GLY 65 | LYS 66 | THR 67 | TYR 68 | ASP 69 | ASP 70 | CYS 71 | CYS 72 | GLY 73 | PRO 74 | LEU")) 75 | 76 | (def stats (parse-bmrb-stats "Res Name Atom Count Min. Max. Avg. StdDev 77 | ALA H H 30843 3.53 11.48 8.20 0.60 78 | ALA HA H 23429 0.87 6.51 4.26 0.44 79 | ALA HB H 22202 -0.88 3.12 1.35 0.26 80 | ALA C C 19475 164.48 187.20 177.72 2.14 81 | ALA CA C 26260 44.22 65.52 53.13 1.98 82 | ALA CB C 24766 0.00 38.70 19.01 1.84 83 | ALA N N 28437 77.10 142.81 123.24 3.54 84 | ARG H H 21153 3.57 12.69 8.24 0.61 85 | ARG HA H 16560 1.34 6.52 4.30 0.46 86 | ARG HB2 H 14978 -0.86 3.44 1.79 0.27 87 | ARG HB3 H 14071 -0.86 3.32 1.76 0.28 88 | ARG HG2 H 13472 -0.72 3.51 1.57 0.27 89 | ARG HG3 H 12287 -0.74 3.51 1.54 0.29 90 | ARG HD2 H 13185 0.96 4.69 3.12 0.24 91 | ARG HD3 H 11833 0.73 4.56 3.10 0.26 92 | ARG HE H 4149 2.99 11.88 7.39 0.64 93 | ARG HH11 H 379 5.88 9.82 6.91 0.46 94 | ARG HH12 H 274 6.01 8.76 6.81 0.32 95 | ARG HH21 H 342 5.90 11.35 6.82 0.48 96 | ARG HH22 H 268 5.97 10.18 6.76 0.36 97 | ARG C C 12724 167.44 184.51 176.40 2.03 98 | ARG CA C 17600 43.27 67.98 56.77 2.31 99 | ARG CB C 16224 20.95 42.50 30.70 1.83 100 | ARG CG C 10535 18.22 40.94 27.21 1.20 101 | ARG CD C 10667 35.05 50.88 43.16 0.88 102 | ARG CZ C 219 156.20 177.70 159.98 2.99 103 | ARG N N 18883 102.78 137.60 120.80 3.68 104 | ARG NE N 2261 67.00 99.81 84.64 1.70 105 | ARG NH1 N 64 67.60 87.07 73.62 4.35 106 | ARG NH2 N 55 70.10 85.28 73.26 3.32 107 | ASP H H 24462 4.06 12.68 8.31 0.58 108 | ASP HA H 18689 2.33 6.33 4.59 0.32 109 | ASP HB2 H 17394 -0.39 4.58 2.72 0.26 110 | ASP HB3 H 16624 -0.23 4.58 2.66 0.28 111 | ASP HD2 H 4 4.65 6.03 5.25 0.58 112 | ASP C C 15510 166.80 182.70 176.39 1.75 113 | ASP CA C 21054 41.88 67.17 54.69 2.03 114 | ASP CB C 19786 27.48 51.09 40.88 1.62 115 | ASP CG C 290 170.72 186.50 179.16 1.81 116 | ASP N N 22760 101.90 143.52 120.64 3.87 117 | ASP OD1 O 20 177.59 180.97 179.66 0.91")) 118 | 119 | (def trans-stats (transform-stats stats)) 120 | 121 | (def myprot (seq-to-protein myseq)) 122 | (def merged (merge-shifts myprot shifts)) -------------------------------------------------------------------------------- /data/sample.fa: -------------------------------------------------------------------------------- 1 | >hg19_dna range=chr7:2443259-2474214 5'pad=0 3'pad=0 strand=+ repeatMasking=none 2 | CGGCGGCGGCTGCGGGCGCGAGGTGAGGGGCGCGAGGTGAGGGTCGCGAG 3 | GTGAGGGGCGCGGCGGGCGGCGGGCTCGGGGCGCGGTCTCCCTCTCTCTC 4 | 5 | >hg19_knownGene_uc009zui.1 range=chr12:104324189-104341703 5'pad=0 3'pad=0 strand=+ repeatMasking=none 6 | GTGGGCGGACCGCGCGGCTGGAGGTGTGAGGATCCGAACCCAGGGGTGGG 7 | GGGTGGAGGCGGCTCCTGCGATCGAAGGGGACTTGAGACTCACCGGCCGC 8 | 9 | >chr1 10 | GTGGGCGGACCGCGCGGCTGGAGGTGTGAGGATCCGAACCCAGGGGTGGG -------------------------------------------------------------------------------- /jmol-12.0.49/COPYRIGHT.txt: -------------------------------------------------------------------------------- 1 | 2 | Copyright 1998-2007 The Jmol Development Team 3 | 4 | This library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Lesser General Public 6 | License as published by the Free Software Foundation; either 7 | version 2.1 of the License, or (at your option) any later version. 8 | 9 | This library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Lesser General Public License for more details. 13 | 14 | You should have received a copy of the GNU Lesser General Public 15 | License along with this library; if not, write to the Free Software 16 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 17 | 02111-1307 USA. 18 | 19 | 20 | Complete source code for the Jmol application, the Jmol applet, and 21 | surrounding utilities is available from http://www.jmol.org 22 | 23 | 24 | This software uses several external libraries and resources: 25 | 26 | JUnit 27 | Used for unit testing. Distributed by the IBM Public License (see 28 | doc/ibm.license.html). See http://www.junit.org/. 29 | 30 | The Chemical Development Kit 31 | Used for reading and writing CML and ShelX. Distributed by Lesser GNU Public 32 | License 33 | See http://cdk.sf.net/. 34 | 35 | AElfred 36 | Used for XML parsing. Distributed free and without warranty. 37 | Copyright (C) 1997,1998 by Microstar Software Ltd. 38 | See http://www.microstar.com/aelfred.html. 39 | 40 | SAX 41 | Used for event-based XML parsing. Distributed free and without warranty. 42 | See http://www.megginson.com/SAX/. 43 | 44 | Acme Image encoders 45 | Used for exporting images in GIF and PPM formats. Distributed free and 46 | without warranty. Copyright (C) 1996,1998 by Jef Poskanzer. 47 | See http://www.acme.com/. 48 | 49 | JPEG Encoder 50 | Used for exporting images in JPEG format. Distributed free and without 51 | warranty (see doc/jpegEncoder.license). 52 | Copyright (c) 1998 James R. Weeks and BioElectroMech. 53 | See http://www.obrador.com/essentialjpeg/. 54 | 55 | Java Analysis Studio 56 | Used for graphs. Distributed by the GNU Lesser General Public License 57 | (see doc/lgpl.license), and requires providing the source code (see 58 | http://jas.freehep.org/source.htm). See http://jas.freehep.org/. 59 | 60 | Unofficial Java3D vecmath package 61 | Used for linear algebra. Distributed free and without warranty. 62 | Copyright (C) 1997,1998,1999 by Kenji Hiranabe. 63 | See http://www.esm.co.jp/divisions/open-sys/java/vecmath/. 64 | 65 | JFA Icon collection 66 | Used for icons in menus and toolbars. Distributed free and without warranty. 67 | Copyright (C) 1998 by Dean S. Jones. 68 | See http://jfa.javalobby.org/projects/icons/ 69 | 70 | Jakarta Commons CLI 71 | Used for parsing command line optinos. Distributed with The Apache Software 72 | License, Version 1.1. Copyright (c) 1999-2001 The Apache Software Foundation. 73 | See http://jakarta.apache.org/commons/cli/. 74 | -------------------------------------------------------------------------------- /jmol-12.0.49/Jmol.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/Jmol.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_Console.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_Console.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_Minimize.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_Minimize.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_Popup.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_Popup.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_ReadersCifPdb.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_ReadersCifPdb.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_ReadersMolXyz.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_ReadersMolXyz.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_ReadersMore.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_ReadersMore.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_ReadersQuantum.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_ReadersQuantum.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_ReadersSimple.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_ReadersSimple.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_ReadersXml.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_ReadersXml.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_ReadersXtal.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_ReadersXtal.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_ShapeBio.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_ShapeBio.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_ShapeSpecial.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_ShapeSpecial.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_ShapeSurface.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_ShapeSurface.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_Smiles.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_Smiles.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_Symmetry.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_Symmetry.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_ar.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_ar.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_ca.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_ca.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_cs.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_cs.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_da.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_da.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_de.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_de.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_el.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_el.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_en_GB.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_en_GB.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_es.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_es.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_et.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_et.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_fi.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_fi.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_fr.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_fr.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_hu.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_hu.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_id.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_id.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_it.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_it.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_ko.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_ko.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_nb.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_nb.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_nl.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_nl.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_oc.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_oc.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_pl.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_pl.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_pt.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_pt.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_pt_BR.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_pt_BR.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_ru.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_ru.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_sl.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_sl.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_sv.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_sv.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_ta.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_ta.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_tr.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_tr.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_uk.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_uk.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_zh_CN.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_zh_CN.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolApplet0_i18n_zh_TW.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolApplet0_i18n_zh_TW.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_Console.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_Console.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_Minimize.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_Minimize.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_MultiTouch.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_MultiTouch.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_Popup.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_Popup.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_ReadersCifPdb.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_ReadersCifPdb.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_ReadersMolXyz.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_ReadersMolXyz.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_ReadersMore.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_ReadersMore.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_ReadersQuantum.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_ReadersQuantum.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_ReadersSimple.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_ReadersSimple.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_ReadersXml.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_ReadersXml.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_ReadersXtal.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_ReadersXtal.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_ShapeBio.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_ShapeBio.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_ShapeSpecial.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_ShapeSpecial.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_ShapeSurface.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_ShapeSurface.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_Smiles.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_Smiles.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_Symmetry.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_Symmetry.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_ar.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_ar.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_ca.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_ca.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_cs.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_cs.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_da.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_da.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_de.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_de.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_el.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_el.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_en_GB.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_en_GB.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_es.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_es.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_et.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_et.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_fi.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_fi.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_fr.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_fr.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_hu.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_hu.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_id.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_id.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_it.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_it.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_ko.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_ko.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_nb.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_nb.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_nl.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_nl.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_oc.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_oc.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_pl.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_pl.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_pt.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_pt.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_pt_BR.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_pt_BR.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_ru.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_ru.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_sl.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_sl.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_sv.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_sv.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_ta.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_ta.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_tr.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_tr.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_uk.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_uk.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_zh_CN.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_zh_CN.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolAppletSigned0_i18n_zh_TW.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolAppletSigned0_i18n_zh_TW.jar -------------------------------------------------------------------------------- /jmol-12.0.49/JmolData.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/JmolData.jar -------------------------------------------------------------------------------- /jmol-12.0.49/LEAME.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/LEAME.txt -------------------------------------------------------------------------------- /jmol-12.0.49/README.txt: -------------------------------------------------------------------------------- 1 | ============================================================================== 2 | === Jmol === 3 | ============================================================================== 4 | Jmol: an open-source Java viewer for chemical structures in 3D, 5 | with features for chemicals, crystals, materials and biomolecules. 6 | ============================================================================== 7 | 8 | Jmol is an open-source molecule viewer and editor written in Java. 9 | 10 | Full information is available at http://www.jmol.org/ 11 | 12 | Usage questions and comments should be posted to jmol-users@lists.sourceforge.net 13 | 14 | Development questions, suggestions and comments should be posted 15 | to jmol-developers@lists.sf.net 16 | 17 | 18 | List of files included: 19 | ------------------- 20 | 21 | 22 | == Files with information == 23 | 24 | === README.txt === 25 | This file. 26 | 27 | === LEAME.txt === 28 | The Spanish version of README.txt 29 | 30 | === COPYRIGHT.txt === 31 | The copyright explanations regarding Jmol and its 3rd-party components. 32 | 33 | === LICENSE.txt === 34 | The GNU Lesser General Public License, under which Jmol is released. 35 | 36 | === CHANGES.txt === 37 | A list with a history of the feature additions in each version of Jmol. 38 | 39 | 40 | == Batch and shell files == 41 | These can be used to start Jmol application from a command line and, 42 | particularly, to impose a certain combination of parameters 43 | (see http://wiki.jmol.org/index.php/Jmol_Application#Command_line_options). 44 | 45 | === jmol === 46 | ???? (Some kind of batch file) 47 | 48 | === jmol.bat === 49 | A batch file to start Jmol application under Windows. 50 | 51 | === jmol.mac === 52 | ??? (Some kind of batch file) 53 | 54 | === jmol.sh === 55 | A shell script to start Jmol application under Unix-like systems, like Linux, 56 | BSD, Solaris and Cygwin for Windows. 57 | 58 | 59 | == Files of Jmol application == 60 | This is used as a standalone program. 61 | 62 | === Jmol.jar === 63 | The application executable file (a program written in Java). This works as any 64 | other program: opens in its own window, can be resized or minimized, admits 65 | drag-and-drop of files over it, has a top menu bar, can open and save files, 66 | etc. It can be open from the command line (particulary, using the shell or batch 67 | files described above), but if Java is properly configured in your system, it's 68 | usually enough to double-click on the file 69 | (see http://wiki.jmol.org/index.php/Jmol_Application#Starting_Jmol_Application 70 | for more details). 71 | 72 | === JmolData.jar === 73 | This is a slimmed down version of Jmol.jar that lacks all visualization 74 | capabilities. So, it betrays the whole (classic) concept of what Jmol is, but 75 | with JmolData and some clever scripting you can get just about any information 76 | you want out of a model and output it any way you want. 77 | 78 | It operates only from the command line, designed for extracting data from a 79 | model or set of models. You are limited to commands that don't have to do with 80 | visualization: there are bonds but no "sticks", atoms but no "dots", helices but 81 | no "cartoons". 82 | 83 | 84 | == Files of Jmol applet == 85 | This is used inside web pages. 86 | 87 | === Jmol.js === 88 | The library, written in JavaScript language, that assists in the programming of 89 | web pages that use Jmol applet, without the need to know and write detailed 90 | JmolApplet code. 91 | 92 | This library uses by default the split version of the applet (unsigned or 93 | signed). 94 | 95 | Fully documented at http://jmol.org/jslibrary/ 96 | 97 | === JmolApplet0.jar, JmolApplet0(severalSuffixes).jar === 98 | The applet, i.e. a version of the program that will only run when embedded in 99 | a web page. 100 | 101 | The applet is divided up into several pieces according to their function, so 102 | that if a page does not require a component, that component is not downloaded 103 | from the server. 104 | It is still recommended that you put all JmolApplet0*.jar files on your server 105 | even if your page does not use the capabilities provided by some of the files, 106 | because the pop-up menu and Jmol console both allow users to access parts of 107 | Jmol you might not have considered. 108 | 109 | This split version is the one that will be used by default if you use Jmol.js 110 | (which is the recommended method). 111 | For that, use the simplest form of jmolInitialize(), just indicating the 112 | directory or folder containing the set of jar files: 113 | jmolInitialize("directory-containing-jar-files") 114 | for example, 115 | jmolInitialize(".") 116 | (if jar files are in the same folder as the web page) 117 | jmolInitialize("../jmol") 118 | (if jar files are in a parallel folder, named 'jmol') 119 | 120 | === JmolAppletSigned0.jar, JmolAppletSigned0(severalSuffixes).jar === 121 | An equivalent version of the applet, but this is a "signed" applet (a term in 122 | Java security language). This means it must be authorized by the web 123 | page visitor for it to run, but then it will have less security restrictions for 124 | file access. For example, it can access files on any part of the user's hard 125 | disk or from any other web server. 126 | 127 | Typically users get a message asking if they want to accept the "certificate" or 128 | if they "trust" the applet (''see notes below''). JmolAppletSigned.jar should 129 | be used with this in mind. Other than reading files, Jmol does not currently 130 | use other capabilities of signed applets, such as accessing the system 131 | clipboard or writing files. Use only if you know what you are doing and have 132 | considered the security issues. 133 | 134 | To use this with Jmol.js, use the form: 135 | jmolInitialize("directory-containing-jar-files", true) 136 | or 137 | jmolInitialize("directory-containing-jar-files", "JmolAppletSigned0.jar") 138 | 139 | Notes: 140 | * The security feature requesting to trust the applet may not always be enabled 141 | on users' systems. 142 | * The message requesting permission will be displayed for each of the 14 (or 143 | more) loadable files. 144 | * The user may have the option to trust the applet permanently and so avoid 145 | having to give permission every time (s)he visits a page that uses Jmol. 146 | 147 | === JmolApplet.jar === 148 | This is an all-in-one or monolithic file, kept mainly for compatibility with old 149 | pages that call it explicitly. 150 | This single file is equivalent to the whole set of JmolApplet0*.jar files, 151 | explained above. 152 | The recommended procedure is not to use this monolithic file, but the split 153 | version (JmolApplet0.jar etc.). In particular, Jmol.js uses the split version 154 | by default. 155 | 156 | You may wish to use this if you want to keep your website simple or you just 157 | want to upload a single jar file whenever new versions are released. 158 | However, this will load Jmol slower than the split versions (described above), 159 | as all the modules (adding up to 2 MB), needed or not, must get loaded onto a 160 | user's machine before any structure is displayed. 161 | 162 | To invoke JmolApplet.jar from Jmol.js, either: 163 | 164 | a) put it in the directory containing the HTML page requiring it and do not use 165 | jmolInitialize(), 166 | 167 | or 168 | 169 | b) identify it explicitly in jmolInitialize(), for example: 170 | jmolInitialize("directory-containing-jar-files", "JmolApplet.jar") 171 | 172 | === JmolAppletSigned.jar === 173 | An equivalent version of the monolithic applet, but this is a "signed" applet 174 | (a term in Java security language). This means it must be authorized by the web 175 | page visitor for it to run, but then it will have less security restrictions for 176 | file access. For example, it can access files on any part of the user's hard 177 | disk or from any other web server. 178 | 179 | Typically users get a message asking if they want to accept the "certificate" or 180 | if they "trust" the applet, but this security feature is not always enabled. 181 | JmolAppletSigned.jar should be used with this in mind. Other than reading files, 182 | Jmol does not currently utilize other capabilities of signed applets, such as 183 | accessing the System clipboard or writing files. Use only if you know what you 184 | are doing and have considered the security issues. 185 | 186 | To invoke JmolAppletSigned.jar from Jmol.js, use: 187 | jmolInitialize("directory-containing-jar-files", "JmolAppletSigned.jar") 188 | 189 | === JmolSmilesApplet.jar === 190 | This is currently not included in the distribution, but may be obtained from the 191 | development site. 192 | 193 | This is a lightweight applet, with no visible interface, that allows to check 194 | SMILES strings. This is particularly useful for comparison of stereochemistry, 195 | for example from structures drawn using the JME applet. 196 | 197 | The same functionality is included in the regular JmolApplet. 198 | 199 | 200 | == Notes == 201 | 202 | # Given the descriptions, you will realize that the distribution package 203 | contains 4 full copies of the applet (signed or unsigned, split or not). 204 | -------------------------------------------------------------------------------- /jmol-12.0.49/jmol: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Collect -D & -m options as java arguments 4 | command=java 5 | while [ `echo $1 | egrep '^-D|^-m' | wc -l` != 0 ]; do 6 | command="$command $1" 7 | shift 8 | done 9 | 10 | if [ -f ./Jmol.jar ] ; then 11 | jarpath=./Jmol.jar 12 | elif [ -f ./build/Jmol.jar ] ; then 13 | jarpath=./build/Jmol.jar 14 | elif [ -f $JMOL_HOME/Jmol.jar ] ; then 15 | jarpath=$JMOL_HOME/Jmol.jar 16 | elif [ -f /usr/share/jmol/Jmol.jar ] ; then 17 | jarpath=/usr/share/jmol/Jmol.jar 18 | else 19 | echo Jmol.jar not found 20 | exit 21 | fi 22 | $command -Xmx512m -jar $jarpath $@ 23 | -------------------------------------------------------------------------------- /jmol-12.0.49/jmol.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | rem Set JMOL_HOME to the Jmol installation directory. 3 | rem 4 | if "%JMOL_HOME%x"=="x" set JMOL_HOME="." 5 | java -Xmx512m -jar "%JMOL_HOME%\Jmol.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9 6 | -------------------------------------------------------------------------------- /jmol-12.0.49/jmol.mac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/jmol-12.0.49/jmol.mac -------------------------------------------------------------------------------- /jmol-12.0.49/jmol.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Collect -D & -m options as java arguments 4 | command=java 5 | while [ `echo $1 | egrep '^-D|^-m' | wc -l` != 0 ]; do 6 | command="$command $1" 7 | shift 8 | done 9 | 10 | # Determine installation location 11 | if [ "$JMOL_HOME" = "" ]; then 12 | binDir=${0%/*} 13 | if [ "$binDir" = "$0" ]; then 14 | # Ran from local directory 15 | binDir=$PWD 16 | fi 17 | # Resolve symlinks. 18 | program="$0" 19 | while [ -L "$program" ]; do 20 | ls=`/bin/ls -ld "$program"` 21 | link=`/usr/bin/expr "$ls" : '.*-> \(.*\)$'` 22 | if /usr/bin/expr "$link" : '.*/.*' > /dev/null; then 23 | program="$link" 24 | else 25 | program="`/usr/bin/dirname $program`/$link" 26 | fi 27 | done 28 | binDir=`dirname $program` 29 | fi 30 | 31 | JMOL_HOME=${JMOL_HOME:-$binDir} 32 | libDir=${JMOL_HOME}/jars 33 | 34 | if [ ! -e ${JMOL_HOME}/Jmol.jar ]; then 35 | echo "Jmol could not find its installed files." 36 | exit 37 | fi 38 | 39 | $command -Djmol.home="$JMOL_HOME" -jar ${JMOL_HOME}/Jmol.jar "$@" 40 | -------------------------------------------------------------------------------- /project.clj: -------------------------------------------------------------------------------- 1 | (defproject BioClojure "1.0.0-SNAPSHOT" 2 | :description "FIXME: write description" 3 | :dependencies [ [org.clojure/clojure "1.2.1"] 4 | [org.clojure/clojure-contrib "1.2.0"] 5 | [commons-lang "2.3"] 6 | [ring/ring-jetty-adapter "0.3.9"] 7 | [jmol/jmol "12.0.49"] 8 | [org.biojava/biojava3-core "3.0"] 9 | [org.biojava/biojava3-structure "3.0"] 10 | [org.biojava/biojava3-structure-gui "3.0"]] 11 | :repositories [["biojava-maven-repo" "http://www.biojava.org/download/maven/"]]) 12 | -------------------------------------------------------------------------------- /resources/sample.fa: -------------------------------------------------------------------------------- 1 | >hg19_dna range=chr7:2443259-2474214 5'pad=0 3'pad=0 strand=+ repeatMasking=none 2 | CGGCGGCGGCTGCGGGCGCGAGGTGAGGGGCGCGAGGTGAGGGTCGCGAG 3 | GTGAGGGGCGCGGCGGGCGGCGGGCTCGGGGCGCGGTCTCCCTCTCTCTC 4 | 5 | >hg19_knownGene_uc009zui.1 range=chr12:104324189-104341703 5'pad=0 3'pad=0 strand=+ repeatMasking=none 6 | GTGGGCGGACCGCGCGGCTGGAGGTGTGAGGATCCGAACCCAGGGGTGGG 7 | GGGTGGAGGCGGCTCCTGCGATCGAAGGGGACTTGAGACTCACCGGCCGC 8 | 9 | >chr1 10 | GTGGGCGGACCGCGCGGCTGGAGGTGTGAGGATCCGAACCCAGGGGTGGG -------------------------------------------------------------------------------- /resources/seqinput.txt: -------------------------------------------------------------------------------- 1 | Version:1.0 StartHTML:0000000167 EndHTML:0000012270 StartFragment:0000000457 EndFragment:0000012254 2 | >cs01MM_pCherry1224f 3 | ATNGGGAAGNNCGAACGCGCCGAGGGCCGTCACTCCACCGGGCGGCATGGACGAGCTGTACAAGTCCGGACTCAGATCTCGAGCTCAAGCTTCGAATTCTGCAGTCGACGGAGCAGGTTCTCCTACTGCCCCTCCTGGTTCTTCCAAATCCGCCGTCGGTTCTATGGCATCAATGCAGAAGCTGATCTCAGAGGAGGACCTGTGAGGATCCACCGGATCTAGATAACTGATCATAATCAGCCATACCACATTTGTAGAGGTTTTACTTGCTTTAAAAAACCTCCCACACCTCCCCCTGAACCTGAAACATAAAATGAATGCAATTGTTGTTGTTAACTTGTTTATTGCAGCTTATAATGGTTACAAATAAAGCAATAGCATCACAAATTTCACAAATAAAGCATTTTTTTCACTGCATTCTAGTTGTGGTTTGTCCAAACTCATCAATGTATCTTAAGGCGTAAATTGTAAGCGTTAATATTTTGTTAAAATTCGCGTTAAATTTTTGTTAAATCAGCTCATTTTTTAACCAATAGGCCGAAATCGGCAAAATCCCTTATAAATCAAAAGAATAGACCGAGATAGGGTTGAGTGTTGTTCCAGTTTGGAACAAGAGTCCACTATTAAAGAACGTGGACTCCAACGTCAAAGGGCGAAAAACCGTCTATCAGGGCGATGGCCCACTACGTGAACCATCACCCTAATCAAGTTTTTTGGGGTCGAGGTGCCGTAAAGCACTAAATCGGAACCCTAAAGGGAGCCCCCGATTTAGAGCTTGACGGGGAAAGCCGGCGAACGTGGCGAGAAAGGAAGGGAAGAAAGCGAAAGGAGCGGGCGCTAGGGCGCTGGCAAGTGTAGCGGTCACGCTGCGCGTAACCACCACACCCGCCGCGCTTAATGCGCCCGCTACAGGGCGCGTCAGGNGGGCACTTTTTCGGGGAAATGTGCNCCGGAACCCCNANTTGGTTTATTTTTCNAAAACNTTNCAAAAATGTATCCGCTCANGNNNACAANAAACCCTGAAAAAATGCTTNNAAAANNATTGAAAAAGGAANNAGTCCNTGNNGGNNGNAAANAANCCANCTNNNGNAATGGGTNNNANTTNAGGGNNGNGGAAAGNNCCCCAGGCNCCCCNNNNGGGNNNAAANTTTNCNAAGNNNNGCNNNNCNANTTANNNCCNNCACCCNGGNGNGGGAANNTNCCC 4 | 5 | CS01MM 6 | 7 | I1SalI primer M2 motif linker 8 | GTCGACGGAGCAGGTTCTCCTACTGCCCCTCCTGGTTCT 9 | 10 | M5 motif w/ mutation linker T1BamHI reverse primer 11 | TCCAAATCCGCCGTCGGTTCTATGGCATCAATGCAGAAGCTGATCTCAGAGGAGGACCTGTGAGGATCC 12 | 13 | 14 | >cs02MM_pCherry1224f 15 | ATGGGGAAGTCGACGCGCCGAGGGCCGTCACTCCACCGGCGGCATGGACGAGCTGTACAAGTCCGGACTCAGATCTCGAGCTCAAGCTTCGAATTCTGCAGTCGACGGAGCAGGTTCTGGAAGAAAGAAGAGAAGACAGAGAGAGAGAGCGCACCAGGGTTCTGCATCTGTGCTTGGTGGTGAGCTCGACAGAGGTTCTAGGTACTCCACCCAAGTCGACGGTTCTACGGAGACGCTCCTCGGTTCTATGGCATCAATGCAGAAGCTGATCTCAGAGGAGGACCTGTGAGGATCCACCGGATCTAGATAACTGATCATAATCAGCCATACCACATTTGTAGAGGTTTTACTTGCTTTAAAAAACCTCCCACACCTCCCCCTGAACCTGAAACATAAAATGAATGCAATTGTTGTTGTTAACTTGTTTATTGCAGCTTATAATGGTTACAAATAAAGCAATAGCATCACAAATTTCACAAATAAAGCATTTTTTTCACTGCATTCTAGTTGTGGTTTGTCCAAACTCATCAATGTATCTTAAGGCGTAAATTGTAAGCGTTAATATTTTGTTAAAATTCGCGTTAAATTTTTGTTAAATCAGCTCATTTTTTAACCAATAGGCCGAAATCGGCAAAATCCCTTATAAATCAAAAGAATAGACCGAGATAGGGTTGAGTGTTGTTCCAGTTTGGAACAAGAGTCCACTATTAAAGAACGTGGACTCCAACGTCAAAGGGCGAAAAACCGTCTATCAGGGCGATGGCCCACTACGTGAACCATCACCCTAATCAAGTTTTTTGGGGTCGAGGTGCCGTAAAGCACTAAATCGGAAACCCTAAAGGGAGCCCCCCGATTTTANAGCTTGACNGGGNAAAGCCNGNCNAANCNTGGCGAGAAAGGAAGGGAAGAAAGCGAAAGGAGCGGGCGCTAGGGCGCTGGCCANGTGTANCGGTCACGCTGCGCGTAACCACCAANCCCGCCGCGCNTAATGCNCCNCTACAGGGCGCGTCAGGGGGCACTTTTCGGGGAAATGGGCCCGGAACCCCCAATTGTTTATTTTTCCNAANACCTTCAANATTTANCCCCCCCNTGNANAANANAACCCCNGAAAAANGCTTNCAAAANTNTTNAAAAAGGGAAAAANTCNTTNGGNNGGNAANAAACCCCCNTNNGGGNAAGNGNGGTCCCNTTTNGGGGGNGGGGAAAA 16 | 17 | CS02MM 18 | 19 | I1SalI primer M22 motif 20 | GTCGACGGAGCAGGTTCTGGAAGAAAGAAGAGAAGACAGAGAGAGAGAGCGCACCAG 21 | 22 | linker M21 motif linker 23 | GGTTCTGCATCTGTGCTTGGTGGTGAGCTCGACAGAGGTTCT 24 | 25 | M15 motif linker M25 motif 26 | AGGTACTCCACCCAAGTCGACGGTTCTACGGAGACGCTCCTC 27 | 28 | linker T1BamHI primer 29 | GGTTCTATGGCATCAATGCAGAAGCTGATCTCAGAGGAGGACCTGTGAGGATCC 30 | 31 | >cs06MM_pCherry1224f 32 | GNTCGAACGCGCCGAGGGCCGTCACTCCACCGGGCGGCATGGACGAGCTGTACAAGTCCGGACTCAGATCTCGAGCTCAAGCTTCGAATTCTGCAGTCGACGGAGCAGGTTCTCCTCCTCTTGAAAGACTCACCCTCGGTTCTTACCCAATCGTCGGTTCTGGAAGAAAGAAGAGAAGACAGAGGAGGACCTGTGAGGATCCACCGGATCTAGATAACTGATCATAATCAGCCATACCACATTTGTAGAGGTTTTACTTGCTTTAAAAAACCTCCCACACCTCCCCCTGAACCTGAAACATAAAATGAATGCAATTGTTGTTGTTAACTTGTTTATTGCAGCTTATAATGGTTACAAATAAAGCAATAGCATCACAAATTTCACAAATAAAGCATTTTTTTCACTGCATTCTAGTTGTGGTTTGTCCAAACTCATCAATGTATCTTAAGGCGTAAATTGTAAGCGTTAATATTTTGTTAAAATTCGCGTTAAATTTTTGTTAAATCAGCTCATTTTTTAACCAATAGGCCGAAATCGGCAAAATCCCTTATAAATCAAAAGAATAGACCGAGATAGGGTTGAGTGTTGTTCCAGTTTGGAACAAGAGTCCACTATTAAAGAACGTGGACTCCAACGTCAAAGGGCGAAAAACCGTCTATCAGGGCGATGGCCCACTACGTGAACCATCACCCTAATCAAGTTTTTTGGGGTCGAGGTGCCGTAAAGCACTAAATCGGAACCCTAAAGGGAGCCCCCGATTTAGAGCNTGACGGGGAAAGCCGGCGAACGTGGCGAGAAAGGAAGGGAAGAAAGCGAAAGGAGCGGGCGCTAGGGCGCTGGCAAGTGTAGCGGTCACNCTGCGCGTAACCACCACACCCGCCGCGCTTAATGCGCCGCTACAGGGGCGCGTCAGGTTGGCACNNTTTCGGGGAAATGTGCGCGGAACCCCCTATTTGGTTTAATTTTTCNAAANANCATTCCAAATNAGNTANCCCNCTCAGGAANACAATNAACCCTGAANAAANGGCTTCCAANAAANATTGNAAAAAGGAAGGAGNTCCTTGNNGGCGGAAAAGAAACCCNGCNTGTNGGAANTNTGGGTCNANTNNNGGGGGNGGGNAAANTTCCCCCAGGGCTNCCCCNNNNNGGNNAAAANTNTTGCNAAANNCNTGNCNTTNNCAATTNNNNTCNNCNAACCCGGGNGGGGAANNTTCCCCCGGGNCCCCCCNNNNGGGNAAAAANTTNTNNNAANNNNNTNCNTTNNCANTTNNNNNNNCCCCCNNANNNCCCCCCCCCAA 33 | 34 | 35 | CS06MM 36 | I1SalI primer M08 motif linker 37 | GTCGACGGAGCAGGTTCTCCTCCTCTTGAAAGACTCACCCTCGGTTCT 38 | 39 | M30 motif linker M22 motif partial T1BamHI primer 40 | TACCCAATCGTCGGTTCTGGAAGAAAGAAGAGAAGACAGAGGAGGACCTGTGAGGATCC 41 | 42 | 43 | Restriction sites: SalI (GTCGAC) & BamHI (GGATCC) 44 | I1SalI: GTCGACGGAGCAGGTTCT 45 | T1BamHI: GGTTCTATGGCATCAATGCAGAAGCTGATCTCAGAGGAGGACCTGTGAGGATCC 46 | Linker: GGTTCT 47 | 48 | 49 | -------------------------------------------------------------------------------- /resources/venn_nmr/readme.txt: -------------------------------------------------------------------------------- 1 | all of this data was produced by Jay Vyas and reused by Matt Fenwick 2 | 3 | the data is derived from the original data, which comes from the BMRB (protein 16790) 4 | 5 | 6 | peaks: 100 7 | shifts: 100 -------------------------------------------------------------------------------- /resources/venn_nmr/sequence.txt: -------------------------------------------------------------------------------- 1 | GLN 2 | GLY 3 | MET 4 | GLU 5 | VAL 6 | SER 7 | ALA 8 | ASN 9 | GLU 10 | LEU 11 | GLU 12 | ALA 13 | ALA 14 | SER 15 | SER 16 | ARG 17 | MET 18 | GLU 19 | MET 20 | LEU 21 | GLN 22 | ARG 23 | GLU 24 | TYR 25 | SER 26 | THR 27 | LEU 28 | ARG 29 | SER 30 | VAL 31 | GLN 32 | TYR 33 | ARG 34 | SER 35 | GLU 36 | GLU 37 | GLY 38 | VAL 39 | ILE 40 | VAL 41 | PHE 42 | ILE 43 | LEU 44 | ALA 45 | ASN 46 | ASP 47 | ARG 48 | GLU 49 | LEU 50 | LYS 51 | PHE 52 | ARG 53 | PRO 54 | ASP 55 | ASP 56 | LEU 57 | GLN 58 | ALA 59 | THR 60 | TYR 61 | GLY 62 | ALA 63 | THR 64 | PRO 65 | GLU 66 | GLN 67 | LEU 68 | ARG 69 | GLU 70 | ILE 71 | GLU 72 | ILE 73 | SER 74 | PRO 75 | SER 76 | GLY 77 | LEU 78 | GLY 79 | VAL 80 | TYR 81 | PHE 82 | GLU 83 | THR 84 | LEU 85 | GLU 86 | GLU 87 | ASP 88 | VAL 89 | SER 90 | LEU 91 | ILE 92 | GLY 93 | LEU 94 | LEU 95 | GLU 96 | GLY 97 | ARG 98 | ARG 99 | GLY 100 | SER 101 | ALA 102 | LYS 103 | TRP 104 | MET 105 | ALA 106 | GLU 107 | HIS 108 | PRO 109 | LEU 110 | ALA 111 | SER 112 | -------------------------------------------------------------------------------- /ru: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/ru -------------------------------------------------------------------------------- /src/BioClojure/.commons.clj.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/src/BioClojure/.commons.clj.swp -------------------------------------------------------------------------------- /src/BioClojure/.seqUtils.clj.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/src/BioClojure/.seqUtils.clj.swp -------------------------------------------------------------------------------- /src/BioClojure/.vimrc: -------------------------------------------------------------------------------- 1 | " Settings for VimClojure 2 | let g:clj_highlight_builtins=1 " Highlight Clojure's builtins 3 | let g:clj_paren_rainbow=1 " Rainbow parentheses'! 4 | -------------------------------------------------------------------------------- /src/BioClojure/clomol.clj: -------------------------------------------------------------------------------- 1 | (ns BioClojure.clomol 2 | (:use [clojure.contrib.string :only (replace-by)]) 3 | (:use clojure.contrib.generic.functor) 4 | (:use [BioClojure.vennnmr :only (venn-nmr)]) 5 | (import org.biojava.bio.structure.StructureTools) 6 | (import java.lang.Math)) 7 | 8 | ;; String filename = "/path/to/PDBFile.pdb" ; 9 | ;; PDBFileReader pdbreader = new PDBFileReader(); 10 | ;; pdbreader.setParseSecStruc(true); 11 | ;; pdbreader.setAlignSeqRes(true); 12 | ;; pdbreader.setParseCAOnly(false); 13 | ;; pdbreader.setAutoFetch(true); 14 | ;; Structure struc = pdbreader.getStructure(filename); 15 | (defn getStructureF 16 | "Get a structure, local" 17 | [filename] 18 | (.getStructure (new org.biojava.bio.structure.io.PDBFileReader) filename)) 19 | 20 | (defn launchGui 21 | "Matt - maybe move this to vennnmr.clj or app.clj ? 22 | Here is a starting point - it will launch biojava jmol gui. 23 | INPUT: a biojava Structure object (org.biojava.bio.structure.Structure) 24 | OUTPUT: ???" 25 | [s] 26 | (.setStructure (new org.biojava.bio.structure.gui.BiojavaJmol) s)) 27 | 28 | (defn getStructure 29 | "Get a structure From the pdb 30 | INPUT: a pdb id 31 | OUPUT: is a org.biojava.bio.structure.Structure object." 32 | [pdbid] 33 | (.getStructure (new org.biojava.bio.structure.align.util.AtomCache "/tmp" true) pdbid)) 34 | 35 | (defn colorAA 36 | "Creates a string that colors an amino acid" 37 | [index] 38 | (str "select ", index, "; color green")) 39 | 40 | ;; could/should this could be rewritten as: 41 | ;; (doto (new org.biojava.bio.structure.gui.BiojavaJmol)] 42 | ;; (.setStructure (getStructure "1WRP")) 43 | ;; (.evalString "select *; spacefill 200; wireframe off; backbone 0.4; color chain")) 44 | (defn ex1 45 | "Launch a viewer that views trp represor. And then colors it blue, with spacefill. " 46 | [] 47 | (let [panel (new org.biojava.bio.structure.gui.BiojavaJmol)] 48 | (.setStructure panel (getStructure "1WRP")) 49 | (.evalString panel "select *; spacefill 200; wireframe off; backbone 0.4; color chain") 50 | (.evalString panel "select atomno=1; color RED"))) ;;<--- color this one atom red. 51 | 52 | (defn atomColorPct 53 | "Returns a map of atom #s to floats" 54 | [acount] 55 | (zipmap (range 1 acount) 56 | (repeatedly rand))) 57 | 58 | (defn atomColorValue 59 | "Uses the atomColorPct method to scale rbg colors. 60 | returns a map of atoms to colors" 61 | [acount] 62 | (let [atomColors (atomColorPct acount) 63 | mykeys (range 1 acount) 64 | myvalues (map (fn [x] [(Math/floor (* 255 (atomColors x))) 111 111]) mykeys)] 65 | ;; this probably needs refactoring .... -- Matt 66 | ;; ... this code is just generating keys, and then generating a value from each of those keys, 67 | ;; and then putting those key/value pairs into a map 68 | (zipmap mykeys myvalues))) 69 | 70 | 71 | (defn ex2 72 | "launch a viewer that views trp represor. And then colors it blue, with spacefill. " 73 | [] 74 | (let [ panel (new org.biojava.bio.structure.gui.BiojavaJmol) 75 | atomToFloat (atomColorPct 4)] ;; changed to make it compile -- 4 is any arbitrary number, 'atomColorPct' is an arbitrary function 76 | (.setStructure panel (getStructure "1WRP")) 77 | (.evalString panel "select *; spacefill 200; wireframe off; backbone 0.4; color chain") 78 | ;; this method creates a map of indices to select statements .... how to select the key and put value in the right half ? 79 | (doseq [[k v] (atomColorValue (StructureTools/getNrAtoms (getStructure "1WRP")))] 80 | (.evalString panel (str "select atomno=" k " ; color " v " ;" ) )) )) ; @Matt -- read about 'doseq' 81 | 82 | (defn getColor 83 | "" 84 | [std-shift-map atomid] 85 | [atomid (std-shift-map atomid)]) 86 | 87 | (defn ex3 88 | "launch a viewer that views 16790, then colors it by shift deviation from norms" 89 | [std-shift-map] 90 | (let [panel (new org.biojava.bio.structure.gui.BiojavaJmol)] 91 | (.setStructure panel (getStructure "2X8N")) 92 | (.evalString panel "select *; spacefill 200; wireframe off; backbone 0.4; color chain") 93 | ;; get the number of atoms 94 | ;; create the integers from 1 to that number -- these are the keys 95 | ;; pull the values out of the vennnmr data structure -- the values are the std shifts 96 | ;; color all of these atoms in the structure 97 | (doseq [[k v] std-shift-map] 98 | (.evalString panel (str "select atomno=", k, " ; color ", v, " ;"))))) ; @Matt -- read about 'doseq' 99 | 100 | (defn new-gui-example 101 | "launch a viewer that views 16790, then colors it by shift deviation from norms" 102 | [atoms] 103 | (let [panel (new org.biojava.bio.structure.gui.BiojavaJmol)] 104 | (.setStructure panel (getStructureF "resources/venn_nmr/structure.pdb")) 105 | (.evalString panel "select *; spacefill 200; wireframe off; backbone 0.4; color chain") 106 | (doseq [x atoms] 107 | (.evalString panel (str "select resno=" 108 | (:resid x) 109 | " and atomname=\"" 110 | (:aname x) 111 | "\" ; color " 112 | (:color x) 113 | " ;"))))) 114 | 115 | (defn color-maker 116 | "input: map of atomid to normalized shift" 117 | [atoms-to-shifts] 118 | (fmap (fn [x] [(Math/floor (* 128 x)) 111 111]) atoms-to-shifts)) 119 | 120 | (defn color-maker2 121 | "input: ???" 122 | [num] 123 | (let [value (Math/floor (* 128 num))] 124 | [value 111 111])) 125 | 126 | (defn translate-shift 127 | "compare shift to avg-shift, returning an arbitrary number of no avg-shift" 128 | [shift avg-shift] 129 | (if (symbol? avg-shift) ;; if there was no shift in the bmrb stats to compare to 130 | 1.99 ;; then return an arbitrary number 131 | (/ shift avg-shift))) ;; but if there was, compare (by division) 132 | 133 | (defn my-vals 134 | "like vals, but returns '() instead of nil if no vals in map" 135 | [my-map] 136 | (if (= (count my-map) 0) 137 | '() 138 | (vals my-map))) 139 | 140 | (defn stats-to-atomid-map 141 | "thing to transform stats data from venn-nmr to what we need here" 142 | [stats-map] 143 | ;; for each value (residue map) 144 | ;; for each atom (:atoms) 145 | ;; [atomid norm-shift] 146 | (into {} (map (fn [atom-map] 147 | [(atom-map :id) (translate-shift (atom-map :shift) (atom-map :avg))]) 148 | (flatten (map my-vals (map :atoms (vals stats-map))))))) 149 | 150 | (defn stats-to-new-map 151 | "thing to transform stats data from venn-nmr to what we need here" 152 | [stats-map] 153 | (apply concat ;; using apply because concat is broken (concat accepts multiple parameters instead of an iterable) 154 | (for [[resid res] stats-map] 155 | (for [[aname atom-map] (res :atoms)] 156 | {:resid resid 157 | :aname aname 158 | :color (color-maker2 (translate-shift (atom-map :shift) (atom-map :avg)))})))) 159 | 160 | (defn example-4 161 | "??colors?? atoms according to normalization against std shifts??" 162 | [] 163 | (ex3 (color-maker (stats-to-atomid-map (venn-nmr "resources/venn_nmr/sequence.txt" "resources/venn_nmr/assigned-shifts.txt" "resources/venn_nmr/bmrbstats.txt"))))) 164 | 165 | (defn example-5 166 | "" 167 | [] 168 | (new-gui-example (stats-to-new-map (venn-nmr "resources/venn_nmr/sequence.txt" "resources/venn_nmr/assigned-shifts.txt" "resources/venn_nmr/bmrbstats.txt")))) 169 | 170 | (def stats-stuff (stats-to-new-map (venn-nmr "resources/venn_nmr/sequence.txt" 171 | "resources/venn_nmr/assigned-shifts.txt" 172 | "resources/venn_nmr/bmrbstats.txt"))) 173 | 174 | ;; 175 | ;;(def nums-eg (stats-to-atomid-map (venn-nmr "resources/venn_nmr/sequence.txt" 176 | ;; "resources/venn_nmr/assigned-shifts.txt" 177 | ;; "resources/venn_nmr/bmrbstats.txt"))) 178 | 179 | ;;(def color-eg (color-maker nums-eg)) 180 | 181 | ;;(def venn-struc (venn-nmr "resources/venn_nmr/sequence.txt" "resources/venn_nmr/assigned-shifts.txt" "resources/venn_nmr/bmrbstats.txt")) 182 | -------------------------------------------------------------------------------- /src/BioClojure/commons.clj: -------------------------------------------------------------------------------- 1 | (ns BioClojure.commons 2 | (:import (org.apache.commons.lang StringUtils) 3 | (java.io File))) 4 | 5 | ;; Capitalize Function 6 | (defn makeCap "This makes capitals" [string] 7 | (StringUtils/capitalize string)) 8 | 9 | ;; input s1, b1 b2 b3 10 | (defn hasSubstring "has" [main b] 11 | (map #(.indexOf main %) b)) 12 | 13 | ;;returns the "type" of a file - i.e. wether its a file or dir 14 | (defn kind [filename] 15 | ;;create a new file by calling the File(filename) constructor 16 | (let [f (File. filename)] 17 | (cond 18 | (.isFile f) "file" 19 | (.isDirectory f) "directory" 20 | (.exists f) "other" 21 | :else "non-existent"))) 22 | 23 | ;;aaa--- 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/BioClojure/funcUtils.clj: -------------------------------------------------------------------------------- 1 | (ns BioClojure.funcUtils 2 | (:use clojure.contrib.math)) 3 | 4 | (defn lift ;; this function is very similar to partially applying 'map' 5 | [f] 6 | (fn [l] 7 | (map f l))) 8 | 9 | (defn plustwo ;; `plustwo` consumes a single number 10 | [x] 11 | (+ x 2)) 12 | 13 | 14 | (def lifted_function (lift plustwo)) ;; the lifted version consumes a list of numbers 15 | 16 | 17 | (def example 18 | (lifted_function (list 1 2 3 4 5 6))) ;; here it is in action 19 | 20 | (def example2 21 | ((lift (fn [x] (expt x 2))) ;; 'lift' an anonymous function to create a function over a list 22 | (range 1 11))) ;; the list that is passed to the lifted function 23 | -------------------------------------------------------------------------------- /src/BioClojure/nmrSampleSchedule.clj: -------------------------------------------------------------------------------- 1 | (ns BioClojure.nmrSampleSchedule) 2 | 3 | ;;@matt : Can we move this to nmr_samplesched.clj for consistency ? 4 | ;;bash> git mv sampleSchedule.clj nmr_sampleSchedule.clj 5 | 6 | ;; Lee: Structs are deprecated, use a record (see 'defrecord') if you 7 | ;; actually need an object, or a map if you don't need an object 8 | 9 | (defstruct schedule :points :num-dimensions) 10 | 11 | ; Matt: resource for using records: http://groups.google.com/group/clojure/browse_thread/thread/94ed69c0cd6951b3 12 | ; records create java classes; structs may already be deprecated or may soon be 13 | ; records need to be :import (ed) 14 | ; why are structs deprecated? 15 | ; clojuredocs for defrecord: http://clojuredocs.org/clojure_core/clojure.core/defrecord#example_454 16 | 17 | 18 | (defn make-schedule 19 | [point-map num-dimensions] 20 | (let [points (keys point-map) 21 | is-dims-correct? (fn [pt] 22 | (= num-dimensions 23 | (count (pt :coordinates)) ; is the number of coordinates correct? 24 | (count (pt :quadrature))))] ; is the number of quad things correct? 25 | (if (every? is-dims-correct? points) 26 | (struct schedule point-map num-dimensions) 27 | "oops -- there was a problem"))) 28 | 29 | 30 | (defn uniformly-sampled-grid 31 | [xlow xhigh ylow yhigh] 32 | (for [x (range xlow xhigh) 33 | y (range ylow yhigh)] 34 | {:coordinates (list x y) :quadrature (list \R \R)})) ;; I need this in a map .... 35 | 36 | 37 | (def example 38 | (make-schedule 39 | (into {} 40 | (map (fn [x] [x 1]) 41 | (uniformly-sampled-grid 1 10 1 10))) ; convert list to map (with default values of 1) 42 | 2)) 43 | 44 | (defn format-point 45 | [pt] 46 | (reduce 47 | (fn [base next] (str base " " next)) 48 | "" 49 | (concat 50 | (pt :coordinates) 51 | (pt :quadrature)))) 52 | 53 | 54 | (defn format-schedule 55 | [sched] 56 | (let [point-lines (map format-point (keys (sched :points)))] 57 | (reduce (fn [b n] (str b "\n" n)) point-lines))) 58 | -------------------------------------------------------------------------------- /src/BioClojure/nmrshifts.clj: -------------------------------------------------------------------------------- 1 | (ns BioClojure.nmrshifts 2 | (:use clojure.contrib.math) 3 | (:use clojure.set) 4 | (:use clojure.contrib.generic.functor)) 5 | 6 | (def approx-c-shifts 7 | {:CA 58 8 | :THR-CB 68 9 | :CB 32 10 | :SER-CB 63 11 | :GLY-CA 44 12 | :ALA-CB 18 13 | :TYR-CB 39 14 | :ILE-CD 13 15 | :CG 25}) 16 | 17 | (defn get-shift-differences 18 | "get differences of input shift, average shift for various Carbon nucleus 19 | types as a sorted list of pairs" 20 | [shift] 21 | ;; computer difference between shift and average shift for each nucleus type 22 | (let [diffs (for [[atom avgshift] approx-c-shifts] 23 | [atom (abs (- shift avgshift))])] 24 | ;; return a sorted list (by shift difference) 25 | (sort-by second diffs))) 26 | 27 | 28 | 29 | (def avg-aa-shifts ; ignoring helix/sheet/coil for now -- would be great to push this data into a DB 30 | {:ALA {:H 8.20 :HA 4.26 :HB 1.35 :C 177.69 :CA 53.13 :CB 19.12 :N 123.32} 31 | :ARG {} 32 | :ASN {:H 8.36 :HA 4.67 :HB2 2.81 :HB3 2.75 :HD21 7.35 :HD22 7.13 :C 175.20 33 | :CA 53.52 :CB 38.71 :CG 176.56 :N 118.94 :ND2 112.73} 34 | :ASP {:H 8.31 :HA 4.60 :HB2 2.73 :HB3 2.67 :HD2 5.78 :C 176.38 :CA 54.68 35 | :CB 40.92 :CG 178.13 :N 120.67 :OD1 179.66} 36 | :CYS {:H 8.39 :HA 4.70 :HB2 3.28 :HB3 3.18 :HG 10.67 :C 174.79 :CA 58.19 37 | :CB 32.80 :N 120.84} 38 | :GLN {} 39 | :GLU {} 40 | :GLY {:H 8.33 :HA2 3.97 :HA3 3.89 :C 173.88 :CA 45.37 :N 109.89} 41 | :HIS {} 42 | :ILE {} 43 | :LEU {} 44 | :LYS {} 45 | :MET {} 46 | :PHE {} 47 | :PRO {} 48 | :SER {} 49 | :THR {} 50 | :TRP {} 51 | :TYR {} 52 | :VAL {:H 8.29 :HA 4.18 :HB 1.97 :HG1 0.82 :HG2 0.80 :C 175.60 :CA 62.48 53 | :CB 32.77 :CG1 21.52 :CG2 21.33 :N 121.36}}) 54 | 55 | 56 | 57 | (defn compare-atom 58 | "Return difference if both ss- and aa-shift defined. 59 | Otherwise return which of the two is not defined. 60 | Result is meaningless if both are not defined." 61 | [ss-shift aa-shift] 62 | (cond 63 | (= nil ss-shift) 'not-in-ss 64 | (= nil aa-shift) 'not-in-aa 65 | :else (- ss-shift aa-shift))) 66 | 67 | 68 | (defn compare-ss-to-aa 69 | "for each atom in spin system: 70 | compare to amino acid's atom (of same name) 71 | return: map -- key is atom, value is comparison result" 72 | [ss aa-atoms] 73 | (let [all-atoms (union (set (keys aa-atoms)) 74 | (set (keys ss)))] 75 | (into {} (for [atom all-atoms] 76 | [atom (compare-atom (ss atom) (aa-atoms atom))])))) 77 | 78 | 79 | ;; (compare-ss-to-aas {:H 3.32 :CA 55}) 80 | (defn compare-ss-to-aas 81 | "for each amino acid: 82 | compare spin system to amino acid 83 | return: map -- key is amino acid, value is comparison" 84 | [ss] 85 | (into {} (for [[aa atoms] avg-aa-shifts] 86 | [aa (compare-ss-to-aa ss atoms)]))) 87 | 88 | (defn best-match-of-comparison 89 | "comparison: map 90 | keys: atom names 91 | values: numbers 92 | returns: a non-negative number" 93 | [comparison] 94 | (->> comparison 95 | vals ;; extract values (of key-value pairs) 96 | (map abs) ;; get absolute values 97 | sort ;; Sort by smallest 98 | first)) ;; First is the best match 99 | 100 | 101 | (defn worst-match-of-comparison 102 | "comparison: map 103 | keys: atom names 104 | values: numbers 105 | returns: a non-negative number" 106 | [comparison] 107 | (->> comparison 108 | vals ;; extract values (of key-value pairs) 109 | (map abs) ;; get absolute values 110 | sort ;; Sort by smallest 111 | last)) ;; last is the worst match 112 | 113 | 114 | (defn remove-non-numbers 115 | "remove elements from a sequence of pairs, where the second value is non-numeric (i.e. non-floatable)" 116 | [seq] 117 | (filter #(try (float (second %)) ; what is try? is it a macro or a function? 118 | (catch Exception _ nil)) 119 | seq)) 120 | 121 | 122 | (defn rank-by-best-match ; what about ranking by best __normalized__ match? 123 | [comparisons] 124 | (->> comparisons 125 | (fmap remove-non-numbers) ;; remove non-numeric results from each comparison 126 | (filter #(> (count (second %)) 0)) ;; completely remove any empty comparison (i.e. comparison with no numeric results) 127 | (sort-by #(best-match-of-comparison (second %))))) ;; sort comparisons by best (i.e. smallest absolute value) result 128 | 129 | 130 | (defn rank-by-worst-match 131 | "under construction" 132 | [comparisons] 133 | (->> comparisons 134 | (fmap remove-non-numbers) 135 | (filter #(> (count (second %)) 0)) 136 | (sort-by #(worst-match-of-comparison (second %))))) 137 | 138 | 139 | (def example-comps (compare-ss-to-aas {:H 3.32 :CA 55})) 140 | (def example-comp (example-comps :GLY)) 141 | (def best-match-final (rank-by-best-match example-comps)) 142 | (def fmap-example (fmap str {1 2 3 4})) 143 | 144 | -------------------------------------------------------------------------------- /src/BioClojure/seqUtils.clj: -------------------------------------------------------------------------------- 1 | (ns BioClojure.seqUtils 2 | (:use [clojure.pprint]) 3 | (:import (org.apache.commons.lang StringUtils))) 4 | 5 | 6 | (defn transform-entry 7 | "Transform a meta string into a map of metadata about a DNA entry." 8 | [entry] 9 | (let [meta-props (seq (-> (subs entry 1) ;; take off the leading ">" 10 | (.split " "))) 11 | name (first meta-props) 12 | props (drop 1 meta-props)] 13 | (assoc (into {} (map #(vec (.split % "=")) props)) "name" name))) 14 | 15 | (defn parse-fasta 16 | "parse a FASTA-formatted string, transforming it into a map with :meta and 17 | :dna keys." 18 | [fasta-string] 19 | (let [text (.trim fasta-string) 20 | entries (-> text (.replaceAll "\r" "") (.split "\n\n") seq)] 21 | (map #(let [[m dna] (.split % "\n")] 22 | {:meta (transform-entry m) :dna dna}) 23 | entries))) 24 | 25 | (defn read-fasta-file 26 | "Parse a file in fasta format" 27 | [filename] 28 | (parse-fasta (slurp filename))) 29 | 30 | (defn parse-motif 31 | "Parse a string in motif format" 32 | [motif-string] 33 | (.split (.trim motif-string) "\n")) 34 | 35 | (defn read-motif-file 36 | "read a file and parse it as a motif file" 37 | [filename] 38 | (parse-motif (slurp filename))) 39 | 40 | 41 | ;;Create a random nucleotide, from a c g t. Used to generate motifs randomly. 42 | ;;DO NOT Call this method by itself, it will go for infinity. 43 | (defn rand-nuc "Returns a random nucleotide" [] 44 | (repeatedly #(rand-nth ["a" "c" "g" "t"]))) 45 | 46 | ;;Create a random nucleotide, from a c g t. Used to generate motifs randomly. 47 | ;;DO NOT Call this method by itself, it will go for infinity. 48 | (defn rand-aa "Returns a random amino" [] 49 | (repeatedly #(rand-nth ["R" "H" "K" "D" "E" "S" "T" "N" "Q" "C" "U" 50 | "G" "P" "A" "V" "I" "L" "M" "F" "Y" "W"]))) 51 | 52 | ;;Creates a DNA motif of random length 53 | ;;user=> (rand-motif-str 4) 54 | ;;("a" "c" "c" "c") 55 | (defn rand-motif-str "Returns a random motif" [l] 56 | (take l (rand-nuc))) 57 | 58 | ;;Example usage 59 | ;;user=> (load-file "src/BioClojure/dnaUtils.clj") 60 | ;;user=> (use `BioClojure.dnaUtils) 61 | ;;user=> (rand-aa-str 3) 62 | (defn rand-aa-str "Returns a random protein" [l] 63 | (take l (rand-aa))) 64 | 65 | 66 | ;;Define the 1-3 letter mapping. 67 | (def one-to-three 68 | {"R" "ARG" 69 | "H" "HIS" 70 | "K" "LYS" 71 | "D" "ASP" 72 | "E" "GLU" 73 | "S" "SER" 74 | "T" "THR" 75 | "N" "ASN" 76 | "Q" "GLN" 77 | "C" "CYS" 78 | "U" "SEC" ;; interesting amino acid 79 | "G" "GLY" 80 | "P" "PRO" 81 | "A" "ALA" 82 | "V" "VAL" 83 | "I" "ILE" 84 | "L" "LEU" 85 | "M" "MET" 86 | "F" "PHE" 87 | "Y" "TYR" 88 | "W" "TRP"}) 89 | 90 | ;; This demonstrates two important distinctions in clojure (1) Strings 91 | ;; are "Sequences" : When we send "ABCDEFGH" as an argument to a "map" 92 | ;; function, each character is individually sent to the map's function 93 | ;; (in this case, "convert"). (2) In order to find a key (which is a 94 | ;; string in this case) in the Map, the char must be converted into a 95 | ;; string (3) Clojure is dynamically, strongly typed -- source: 96 | ;; http://www.citerus.se/post/220609-from-java-to-clojure 97 | (defn aa-to-3-letter 98 | "Converts a string into a list of 3-letter amino acid names. Needs 99 | refactoring: assumes capital letters; if letter not found, mapping function 100 | returns nil; accepts string instead of list" 101 | [string] 102 | (let [convert (fn [c] (one-to-three (str c)))] 103 | (map convert string))) 104 | 105 | 106 | (defn read-and-print 107 | "Read a FASTA file and print it." 108 | [filename] 109 | (pprint (read-fasta-file filename))) 110 | 111 | ;; From the project directory: 112 | ;; lein repl 113 | ;; (use 'BioClojure.core) 114 | ;; (read-and-print "data/sample.fa") 115 | 116 | ;; 1 Identify motifs (M1 - Mx) present in DNA and their order 117 | ;; Confirm initiator motif and terminator motif and positions 118 | ;; Confirm proper insertion into two restriction sites. 119 | ;; Flag any incorrect assemblies and sequences with N positions 120 | ;; Report total number of minimotifs in clone 121 | ;; Generate a graph of overall structure, show linker regions that 122 | ;; glue motifs together and alignm 123 | ;; of motifs to sequences with labels. 124 | ;; 7. Report any 1 nucleotide mutations in DNA 125 | 126 | -------------------------------------------------------------------------------- /src/BioClojure/venn_nmr.mwb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jayunit100/BioClojure/5d0bb271939345362be5ede2bd19b2fb1d235b22/src/BioClojure/venn_nmr.mwb -------------------------------------------------------------------------------- /src/BioClojure/vennnmr.clj: -------------------------------------------------------------------------------- 1 | (ns BioClojure.vennnmr 2 | (:use [clojure.contrib.str-utils2 :only (split-lines trim)]) 3 | (:use clojure.contrib.generic.functor)) 4 | 5 | ;; @Matt: suggested refactorings: 6 | ;; refactor and post data model -- make sure all code uses it 7 | ;; clarify, post general procedure for merging these data (sequence, shifts, shift-stats) 8 | ;; clojure-idiomatize code 9 | 10 | 11 | (defn parse-bmrb-stats 12 | "output: list of maps 13 | each map: keys are /Res, Name, Atom, Count, Min. Max., Avg., StdDev/" 14 | [string] 15 | (let [lines (split-lines string) 16 | headings (.split (first lines) " +") 17 | atomlines (rest lines)] 18 | (for [atomline atomlines] 19 | (zipmap headings (.split atomline " +"))))) 20 | 21 | (defn transform-stats 22 | "input: list of maps based on bmrb shift statistics file 23 | output: map of keys -- amino acid type names, values maps of keys -- atom names, values maps of -- stats about that atom in that amino acid (avg shift, std dev, etc.)" 24 | [shift-stats] 25 | (let [f (fn [base linemap] 26 | (assoc-in base 27 | [(linemap "Res") (linemap "Name")] 28 | {:avg (Float/parseFloat (linemap "Avg.")) :stddev (Float/parseFloat (linemap "StdDev"))}))] ;; refactor the return value .... 29 | (reduce f {} shift-stats))) 30 | 31 | (defn parse-sequence 32 | "input: cyana-formatted sequence string -- residues separted by newlines 33 | output: map -- key is index, value is amino acid type 34 | length is same as number of lines in input string" 35 | [string] 36 | (zipmap (map #(str (+ % 1)) (range)) ; need indices to be 1-indexed 37 | ;; should refactor to remove 'str' .... requires other changes, too 38 | (split-lines (.trim string)))) 39 | 40 | (defn parse-shifts 41 | "output: list of maps 42 | each map: keys are /id, shift, error, atom, resid/" 43 | [string] 44 | (let [headers [:id :shift :error :atom :resid]] 45 | (map #(zipmap headers (.split (trim %) " +")) 46 | (split-lines string)))) 47 | 48 | (defn seq-to-protein 49 | "input: map of index to aatype 50 | output: map of index to residue" 51 | [seqmap] 52 | (let [func (fn [aatype] {:aatype aatype :atoms {}})] 53 | (fmap func seqmap))) 54 | 55 | (defn place-shift 56 | "input: a protein (map) and a cyana line map 57 | output: a protein with an added atom" 58 | [prot shift-map] 59 | (let [resid (shift-map :resid) 60 | atomname (shift-map :atom) 61 | shift (shift-map :shift) 62 | atomid (shift-map :id)] 63 | (assoc-in prot [resid :atoms atomname] {:shift (Float/parseFloat shift) :id (Integer/parseInt atomid)}))) 64 | 65 | (defn merge-shifts 66 | "input: protein, list of maps of header to value" 67 | [prot shift-list] 68 | (reduce place-shift prot shift-list)) 69 | 70 | (defn get-stats 71 | "input: ??? 72 | output: " 73 | [stats atomname] 74 | (let [atomstats (stats atomname)] 75 | (if atomstats 76 | (atomstats :avg) 77 | 'no-stats-for-atom))) 78 | 79 | (defn place-stats 80 | "input: 1) atoms, keys are atom names, values are maps 81 | 2) average shifts map (specific to that residue) -- keys: atom names, values: maps of info about that atom 82 | output: augmented atoms" 83 | [atoms stats] 84 | ;; for each atom 85 | ;; find the standard data in stats 86 | ;; put that into the atom's map 87 | (into {} (for [[atomname atommap] atoms] 88 | [atomname (assoc-in atommap [:avg] (get-stats stats atomname))]))) ;; but what does this do if (stats atomname) is nil???? 89 | 90 | (defn merge-bmrb 91 | "input: bmrb stats, protein with chemical shifts of assigned atoms 92 | output: protein with bmrb stats for each atom that initially had an assignment" 93 | [prot avg-shifts] 94 | ;; for each residue in the protein 95 | ;; find the matching "standard residue" in the average stats 96 | ;; use the aatype of the residue to look up the stats 97 | (let [shift-adder 98 | (fn [res] ;;avg-shifts)] 99 | (assoc-in res [:atoms] (place-stats (res :atoms) (avg-shifts (res :aatype))) ))] 100 | (fmap shift-adder prot))) 101 | 102 | (defn venn-nmr-help 103 | [seqstr shiftstr bmrbstr] 104 | (let [seq (parse-sequence seqstr) ;; parse the sequence string (comments need refactoring) 105 | shifts (parse-shifts shiftstr) ;; parse the assigned shifts string 106 | avg-shifts (transform-stats (parse-bmrb-stats bmrbstr)) ;; parse the bmrb stats string, transform to semantic model 107 | prot (seq-to-protein seq) ;; create a protein object from the sequence 108 | prot-shifts (merge-shifts prot shifts)] ;; put the assigned chemical shifts into the protein 109 | (merge-bmrb prot-shifts avg-shifts))) ;; put the bmrb standard shifts into the protein (based on matching aatype/atomtype) 110 | 111 | (defn venn-nmr 112 | [seqfile shiftfile bmrbfile] 113 | (venn-nmr-help (slurp seqfile) 114 | (slurp shiftfile) 115 | (slurp bmrbfile))) 116 | 117 | 118 | ;;(def mseq (slurp "resources/venn_nmr/sequence.txt")) 119 | ;;(def mshift (slurp "resources/venn_nmr/assigned-shifts.txt")) 120 | ;;(def mstat (slurp "resources/venn_nmr/bmrbstats.txt")) 121 | ;;(def goodstats (transform-stats (parse-bmrb-stats (slurp "resources/venn_nmr/bmrbstats.txt")))) 122 | ;;(venn-nmr-help mseq mshift mstat) 123 | ;;(venn-nmr "resources/venn_nmr/sequence.txt" "resources/venn_nmr/assigned-shifts.txt" "resources/venn_nmr/bmrbstats.txt") 124 | 125 | -------------------------------------------------------------------------------- /src/demo/web.clj: -------------------------------------------------------------------------------- 1 | (ns demo.web 2 | (:use [ring.adapter.jetty] 3 | [BioClojure.seqUtils] 4 | [BioClojure.nmrSampleSchedule])) 5 | 6 | (defn demo [] 7 | (let [random_motif (apply str (rand-motif-str (rand-int 30))) 8 | random_aa (rand-aa-str (rand-int 40)) 9 | translated_aa (aa-to-3-letter random_aa)] 10 | ["rand dna = " random_motif "; a rand protein = " random_aa " which is translated to " translated_aa])) 11 | 12 | (defn demoPretty [] 13 | (interpose "
An NMR sampling schedule:" 24 | (format-schedule example) 25 | ""])}) 26 | 27 | (defn -main [] 28 | (let [port (Integer/parseInt (System/getenv "PORT"))] 29 | (run-jetty app {:port port}))) 30 | -------------------------------------------------------------------------------- /test/BioClojure/test/nmrshifts.clj: -------------------------------------------------------------------------------- 1 | (ns BioClojure.test.nmrshifts 2 | (:use [BioClojure.nmrshifts]) 3 | (:use [clojure.test])) 4 | 5 | 6 | ; @Matt: are you following the clojure/'testing in clojure' conventions? 7 | ; are you using the test API properly/effectively? 8 | ; Refactor to make the tests more meaningful. 9 | (deftest test-compare-atom 10 | "1. does it return a positive when ss-shift is greater than aa-shift 11 | 2. does it return a negative when aa-shift greater 12 | 3. does it return 0 when they're equal 13 | 4. does it return 'not-in-ss when ss-shift is nil 14 | 5. does it return 'not-in-aa when aa-shift is nil 15 | 6. undefined when both are nil" 16 | [] 17 | (and ; using test API???? 18 | (> (compare-atom 8.3 4.2) 0) 19 | (< (compare-atom 345 3443) 0) 20 | (= (compare-atom 3.3 3.3) 0) ; does floating-point comparison work like in Java? yikes 21 | (= (compare-atom nil 107.79) 'not-in-ss) 22 | (= (compare-atom 89.88 nil) 'not-in-aa))) -------------------------------------------------------------------------------- /test/BioClojure/test/vennnmr.clj: -------------------------------------------------------------------------------- 1 | (ns BioClojure.test.vennnmr 2 | (:use [BioClojure.vennnmr]) 3 | (:use [clojure.test])) 4 | 5 | 6 | (def mseq (slurp "resources/venn_nmr/sequence.txt")) 7 | (def mshift (slurp "resources/venn_nmr/assigned-shifts.prot")) 8 | (def mstat (slurp "resources/venn_nmr/bmrbstats.txt")) 9 | 10 | 11 | (deftest test-parse-bmrb-stats 12 | (is (parse-sequence mseq))) ;; does this test actually do anything? 13 | 14 | 15 | (deftest test-parse-assigned-shifts 16 | (is (parse-shifts mshift))) 17 | 18 | 19 | (deftest test-parse-bmrb-stats 20 | (is (parse-bmrb-stats mstat))) 21 | 22 | 23 | (deftest test-venn-nmr 24 | (is (venn-nmr-help mseq mshift mstat))) ;; is this an effective test? 25 | 26 | 27 | ;;;; what follows is for informal testing 28 | (def shifts (parse-shifts " 7 57.135 0.000 CA 1 29 | 1 4.155 0.000 HA 1 30 | 8 29.815 0.000 CB 1 31 | 2 1.908 0.000 HB2 1 32 | 3 2.003 0.000 HB3 1 33 | 9 36.326 0.000 CG 1 34 | 4 2.222 0.000 HG2 1 35 | 5 2.222 0.000 HG3 1 36 | 6 176.410 0.000 C 1 37 | 19 118.889 0.000 N 2 38 | 10 8.376 0.000 H 2 39 | 17 53.005 0.000 CA 2 40 | 11 4.752 0.000 HA 2 41 | 18 38.025 0.000 CB 2 42 | 12 2.675 0.000 HB2 2 43 | 13 2.932 0.000 HB3 2 44 | 20 110.708 0.000 ND2 2 45 | 14 6.792 0.000 HD21 2 46 | 15 7.423 0.000 HD22 2 47 | 16 175.445 0.000 C 2 48 | 123 116.209 0.000 N 12 49 | 116 8.466 0.000 H 12 50 | 121 56.000 0.000 CA 12 51 | 117 4.179 0.000 HA 12 52 | 122 40.455 0.000 CB 12 53 | 118 2.630 0.000 HB2 12 54 | 119 2.469 0.000 HB3 12 55 | 120 175.224 0.000 C 12")) 56 | 57 | (def myseq (parse-sequence "MET 58 | ASN 59 | CYS 60 | VAL 61 | CYS 62 | GLY 63 | SER 64 | GLY 65 | LYS 66 | THR 67 | TYR 68 | ASP 69 | ASP 70 | CYS 71 | CYS 72 | GLY 73 | PRO 74 | LEU")) 75 | 76 | (def stats (parse-bmrb-stats "Res Name Atom Count Min. Max. Avg. StdDev 77 | ALA H H 30843 3.53 11.48 8.20 0.60 78 | ALA HA H 23429 0.87 6.51 4.26 0.44 79 | ALA HB H 22202 -0.88 3.12 1.35 0.26 80 | ALA C C 19475 164.48 187.20 177.72 2.14 81 | ALA CA C 26260 44.22 65.52 53.13 1.98 82 | ALA CB C 24766 0.00 38.70 19.01 1.84 83 | ALA N N 28437 77.10 142.81 123.24 3.54 84 | ARG H H 21153 3.57 12.69 8.24 0.61 85 | ARG HA H 16560 1.34 6.52 4.30 0.46 86 | ARG HB2 H 14978 -0.86 3.44 1.79 0.27 87 | ARG HB3 H 14071 -0.86 3.32 1.76 0.28 88 | ARG HG2 H 13472 -0.72 3.51 1.57 0.27 89 | ARG HG3 H 12287 -0.74 3.51 1.54 0.29 90 | ARG HD2 H 13185 0.96 4.69 3.12 0.24 91 | ARG HD3 H 11833 0.73 4.56 3.10 0.26 92 | ARG HE H 4149 2.99 11.88 7.39 0.64 93 | ARG HH11 H 379 5.88 9.82 6.91 0.46 94 | ARG HH12 H 274 6.01 8.76 6.81 0.32 95 | ARG HH21 H 342 5.90 11.35 6.82 0.48 96 | ARG HH22 H 268 5.97 10.18 6.76 0.36 97 | ARG C C 12724 167.44 184.51 176.40 2.03 98 | ARG CA C 17600 43.27 67.98 56.77 2.31 99 | ARG CB C 16224 20.95 42.50 30.70 1.83 100 | ARG CG C 10535 18.22 40.94 27.21 1.20 101 | ARG CD C 10667 35.05 50.88 43.16 0.88 102 | ARG CZ C 219 156.20 177.70 159.98 2.99 103 | ARG N N 18883 102.78 137.60 120.80 3.68 104 | ARG NE N 2261 67.00 99.81 84.64 1.70 105 | ARG NH1 N 64 67.60 87.07 73.62 4.35 106 | ARG NH2 N 55 70.10 85.28 73.26 3.32 107 | ASP H H 24462 4.06 12.68 8.31 0.58 108 | ASP HA H 18689 2.33 6.33 4.59 0.32 109 | ASP HB2 H 17394 -0.39 4.58 2.72 0.26 110 | ASP HB3 H 16624 -0.23 4.58 2.66 0.28 111 | ASP HD2 H 4 4.65 6.03 5.25 0.58 112 | ASP C C 15510 166.80 182.70 176.39 1.75 113 | ASP CA C 21054 41.88 67.17 54.69 2.03 114 | ASP CB C 19786 27.48 51.09 40.88 1.62 115 | ASP CG C 290 170.72 186.50 179.16 1.81 116 | ASP N N 22760 101.90 143.52 120.64 3.87 117 | ASP OD1 O 20 177.59 180.97 179.66 0.91")) 118 | 119 | (def trans-stats (transform-stats stats)) 120 | 121 | (def myprot (seq-to-protein myseq)) 122 | (def merged (merge-shifts myprot shifts)) --------------------------------------------------------------------------------