| @@ -0,0 +1,43 @@ | ||
| source('/Users/hannah/Dropbox/Westneat Lab/Eartheater Project/Code/genfunctions.R') | ||
| source('/Users/hannah/Dropbox/Westneat Lab/Eartheater Project/Code/Read shapes.R') | ||
|
|
||
| # Aligning vectors -------------------------------------------------------- | ||
|
|
||
| mouth.S <- graphAlignPeaksGG('./Measurements/S_mouthgape.csv', col=2, main='Strike', xlab="") | ||
| mouth.E <- graphAlignPeaksGG('./Measurements/E_mouthgape.csv', col=5, main='Ejection') | ||
| mouth.W <- graphAlignPeaksGG('./Measurements/W_mouthgape.csv', col=4, main='Winnowing', xlab="") | ||
| branch.S <- graphAlignPeaksGG('./Measurements/S_branch.csv', col=2, main='Strike') | ||
| branch.W <- graphAlignPeaksGG('./Measurements/W_branch.csv', col=5, main='Winnowing') | ||
| branch.E <- graphAlignPeaksGG('./Measurements/E_branch.csv', col=4, main='Ejection') | ||
|
|
||
| multiplot(branch.S, branch.W, branch.E) | ||
| multiplot(mouth.S, mouth.W, mouth.E) | ||
|
|
||
| strike.mouth <- read.csv('./Measurements/S_mouthgape.csv')[,-1] | ||
| strike.branch <- read.csv('./Measurements/S_branch.csv')[,-1] | ||
| strike.premax <- read.csv('./Measurements/S_premax.csv')[,-1] | ||
| mouth.test <- strike.mouth[2,] | ||
| mouth.test <- mouth.test[is.na(mouth.test)==FALSE] | ||
| branch.test <- strike.branch[2,] | ||
| branch.test <- branch.test[is.na(branch.test)==FALSE] | ||
| premax.test <- strike.premax[2,] | ||
| premax.test <- premax.test[is.na(premax.test)==FALSE] | ||
|
|
||
| frame.index <- seq(1, length(mouth.test), 1) | ||
| frame.index <- (frame.index-1)*1/100 | ||
|
|
||
|
|
||
| splinefit <- smooth.spline(frame.index, mouth.test) # smooth vector | ||
| mouth.test <- predict(splinefit, data=frame.index)$y | ||
|
|
||
|
|
||
| splinefit2 <- smooth.spline(frame.index, branch.test) # smooth vector | ||
| branch.test <- predict(splinefit2, data=frame.index)$y | ||
|
|
||
| df.test <- data.frame(mouth.test=mouth.test, branch.test=branch.test, premax=premax.test, frame.index=frame.index) | ||
|
|
||
| p <- ggplot(data=df.test, aes(x=frame.index, y=mouth.test)) + | ||
| geom_line(data=df.test, aes(x=frame.index, y=mouth.test), lwd=1, col='blue') | ||
| p <- p + geom_line(data=df.test, aes(c=frame.index, y=branch.test), lwd=1, lty=2, col='red') | ||
| p <- p + geom_line(data=df.test, aes(c=frame.index, y=premax), lwd=1, lty=3, col='purple', alpha=1) | ||
| p |
| @@ -1,28 +1,37 @@ | ||
| function[closest] = eye_size(imagename, threshold) | ||
| image = imread(imagename); | ||
| greyimage = image(:,:,1); | ||
| imdim = size(greyimage); | ||
|
|
||
| % set threshold; if above then turn white | ||
| % threshold = 30; | ||
| for i = 1:imdim(1) | ||
| for j = 1:imdim(2) | ||
| if greyimage(i, j) > threshold | ||
| greyimage(i, j) = 0; | ||
| else | ||
| greyimage(i, j) = 1; | ||
| end | ||
| end | ||
| end | ||
|
|
||
| greyimage = logical(greyimage); | ||
| % BW2 = bwmorph(greyimage,'remove'); | ||
| alternate = bwmorph(greyimage, 'majority', Inf); | ||
| alternate = bwmorph(alternate, 'clean', Inf); | ||
| alternate = bwmorph(alternate, 'fill', Inf); | ||
| alternate = bwareafilt(alternate, [1500 7000]); | ||
|
|
||
|
|
||
| stats = regionprops('table', alternate, 'Centroid','Extent', 'Area', 'PixelList'); | ||
| extenty = cat(1, stats.Extent); | ||
| areas = cat(1, stats.Area); | ||
| value = 0.74; | ||
|
|
||
| diffo = abs(value-extenty); | ||
| [idx idx] = min(diffo); | ||
| closest = areas(idx); | ||
| % imshow(alternate); hold on; plot(stats.Centroid(idx,1), stats.Centroid(idx,2), 'b*'); hold off | ||
| imshow(image); hold on; plot(stats.Centroid(idx,1), stats.Centroid(idx,2), 'c*'); hold off | ||
|
|
||
| end |
| @@ -0,0 +1,128 @@ | ||
| %% MESSIN ABOOT | ||
|
|
||
| k = 3; | ||
| m = 5; | ||
| datedir = dir('*-16'); | ||
| trialdir = dir([datedir(k).name, '/Intervals/*Intervals']); | ||
| jpgdir = dir([datedir(k).name, '/Intervals/', trialdir(m).name, '/*.jpg']); | ||
| pixel.areas = []; | ||
|
|
||
|
|
||
| for i = 24:length(jpgdir) | ||
| imagename = sprintf('%s%s%s%s%s', datedir(k).name, '/Intervals/', trialdir(m).name, '/', jpgdir(i).name); | ||
| pixel.areas(i) = eye_size(imagename, 40); hold on; | ||
| pause | ||
| end | ||
|
|
||
|
|
||
|
|
||
|
|
||
| %% trying to threshold good ;-; | ||
|
|
||
| k = 3; | ||
| m = 2; | ||
| datedir = dir('*-16'); | ||
| trialdir = dir([datedir(k).name, '/Intervals/*Intervals']); | ||
| jpgdir = dir([datedir(k).name, '/Intervals/', trialdir(m).name, '/*.jpg']); | ||
| pixel.areas = []; | ||
| imagename = sprintf('%s%s%s%s%s', datedir(k).name, '/Intervals/', trialdir(m).name, '/', jpgdir(1).name); | ||
|
|
||
| image = imread(imagename); | ||
| greyimage = rgb2gray(image); | ||
| imdim = size(greyimage); | ||
|
|
||
| % set threshold; if above then turn white | ||
| threshold = 50; | ||
| for i = 1:imdim(1) | ||
| for j = 1:imdim(2) | ||
| if greyimage(i, j) > threshold | ||
| greyimage(i, j) = 0; | ||
| else | ||
| greyimage(i, j) = 1; | ||
| end | ||
| end | ||
| end | ||
|
|
||
| greyimage = logical(greyimage); | ||
| % BW2 = bwmorph(greyimage,'remove'); | ||
| alternate = bwmorph(greyimage, 'majority', Inf); | ||
| alternate = bwmorph(alternate, 'clean', Inf); | ||
| alternate = bwmorph(alternate, 'fill', Inf); | ||
| alternate = bwareafilt(alternate, [1000 7000]); | ||
|
|
||
|
|
||
| stats = regionprops('table', alternate, 'Centroid','Extent', 'Area', 'PixelList'); | ||
| imshow(image); hold on; plot(stats.Centroid(:,1), stats.Centroid(:,2), 'c*'); hold off | ||
| imshow(alternate); | ||
| variances = []; | ||
| means = []; | ||
| for i = 1:height(stats) | ||
| centroid = stats.Centroid(i,:); | ||
| pixels = stats.PixelList{i}; | ||
| centroid_dist = []; | ||
| for j = 1:length(pixels) | ||
| centroid_dist(j) = get_distance(centroid, pixels(j,:)); | ||
| end | ||
| figure; hist(centroid_dist); | ||
| variances(i) = var(centroid_dist); | ||
| means(i) = mean(centroid_dist); | ||
| % pause | ||
| end | ||
|
|
||
|
|
||
|
|
||
| extenty = cat(1, stats.Extent); | ||
| areas = cat(1, stats.Area); | ||
| value = 0.75; | ||
|
|
||
| diffo = abs(value-extenty); | ||
| [idx idx] = min(diffo); | ||
| closest = areas(idx); | ||
|
|
||
| imshow(image); hold on; plot(stats.Centroid(idx,1), stats.Centroid(idx,2), 'c*'); hold off | ||
|
|
||
| %% color segmentation? | ||
| k = 3; | ||
| m = 2; | ||
| datedir = dir('*-16'); | ||
| trialdir = dir([datedir(k).name, '/Intervals/*Intervals']); | ||
| jpgdir = dir([datedir(k).name, '/Intervals/', trialdir(m).name, '/*.jpg']); | ||
| pixel.areas = []; | ||
| imagename = sprintf('%s%s%s%s%s', datedir(k).name, '/Intervals/', trialdir(m).name, '/', jpgdir(1).name); | ||
|
|
||
| image = imread(imagename); | ||
| greyimage = image(:,:,1); | ||
| imdim = size(greyimage); | ||
|
|
||
| for i = 1:3 | ||
| figure; imshow(image(:,:,i)); | ||
| end | ||
|
|
||
| cform = makecform('srgb2lab'); | ||
| lab_he = applycform(image,cform); | ||
| ab = double(lab_he(:,:,2:3)); | ||
| nrows = size(ab,1); | ||
| ncols = size(ab,2); | ||
| ab = reshape(ab,nrows*ncols,2); | ||
|
|
||
| nColors = 3; | ||
| % repeat the clustering 3 times to avoid local minima | ||
| [cluster_idx, cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean', ... | ||
| 'Replicates',3); | ||
| pixel_labels = reshape(cluster_idx,nrows,ncols); | ||
| imshow(pixel_labels,[]), title('image labeled by cluster index'); | ||
|
|
||
|
|
||
| %% taking reds | ||
| mkdir('testreds'); | ||
| dir1 = dir('02-26-16/Intervals/*Intervals'); | ||
|
|
||
| for i = 1:length(dir1) | ||
| dir2 = dir(['02-26-16/Intervals/', dir1(i).name, '/*.jpg']); | ||
| mkdir(['testreds/', dir1(i).name]); | ||
| for j = 1:length(dir2) | ||
| img = imread(dir2(j).name); | ||
| savename = sprintf('%s%s%s%s', 'testreds/', dir1(i).name, '/', dir2(j).name); | ||
| imwrite(img(:,:,1), savename); | ||
| end | ||
| end |
| @@ -0,0 +1,233 @@ | ||
| # import csv | ||
|
|
||
| # def LF2010(filename): | ||
| # rd = {} | ||
| # with open(filename, 'rU') as f: | ||
| # reader = csv.DictReader(f) | ||
| # # reader is now an iterator of row dictionaries with keys as the column names | ||
| # for row in reader: | ||
| # # whatever order you want! | ||
| # rd[ row['Taxon'] ] = [ | ||
| # row['Tissue sample'], row['Voucher'], | ||
| # row['Collection locality'], row['ND4'], row['Cytochrome b'], | ||
| # row['16S'], row['RAG2'], row['S7 NaN Intron 1'] | ||
| # ] | ||
| # return rd | ||
|
|
||
| import csv | ||
| LF2010 = open('/Users/hannah/Dropbox/Westneat Lab/Eartheater Project/Data/Phylogenetics/LF2010_GenBank.csv', 'rU') | ||
|
|
||
| csvread = csv.reader(LF2010) | ||
|
|
||
| species = [] | ||
| ND4 = [] | ||
| CytB = [] | ||
| _16S = [] | ||
| RAG2 = [] | ||
| S7_Intron1 = [] | ||
| for row in csvread: | ||
| species.append(row[0]) | ||
| ND4.append(row[4]) | ||
| CytB.append(row[5]) | ||
| _16S.append(row[6]) | ||
| RAG2.append(row[7]) | ||
| S7_Intron1.append(row[8]) | ||
|
|
||
| LF2010.close() | ||
|
|
||
| from dendropy.interop import genbank | ||
| ND4_dna = genbank.GenBankDna(ids=ND4, verify=False) | ||
| ND4_char_matrix = ND4_dna.generate_char_matrix(label_components=["organism", "accession"], label_component_separator="_") | ||
|
|
||
| CytB_dna = genbank.GenBankDna(ids=CytB, verify=False) | ||
| CytB_char_matrix = CytB_dna.generate_char_matrix(label_components=["organism", "accession"], label_component_separator="_") | ||
|
|
||
| _16S_dna = genbank.GenBankDna(ids=_16S, verify=False) | ||
| _16S_char_matrix = _16S_dna.generate_char_matrix(label_components=["organism", "accession"], label_component_separator="_") | ||
|
|
||
| RAG2_dna = genbank.GenBankDna(ids=RAG2, verify=False) | ||
| RAG2_char_matrix = RAG2_dna.generate_char_matrix(label_components=["organism", "accession"], label_component_separator="_") | ||
|
|
||
| S7_Intron1_dna = genbank.GenBankDna(ids=S7_Intron1, verify=False) | ||
| S7_Intron1_char_matrix = S7_Intron1_dna.generate_char_matrix(label_components=["organism", "accession"], label_component_separator="_") | ||
|
|
||
| ND4_char_matrix.write( | ||
| path='ND4_geophagini.nex', | ||
| schema='nexus', | ||
| suppress_taxa_blocks=None, | ||
| suppress_block_titles=None, | ||
| file_comments=[], | ||
| preamble_blocks=[], | ||
| supplemental_blocks=[], | ||
| allow_multiline_comments=True, | ||
| suppress_leaf_taxon_labels=True, | ||
| suppress_leaf_node_labels=True, | ||
| suppress_internal_taxon_labels=True, | ||
| suppress_internal_node_labels=True, | ||
| suppress_rooting=True, | ||
| suppress_edge_lengths=True, | ||
| unquoted_underscores=False, | ||
| preserve_spaces=False, | ||
| store_tree_weights=False, | ||
| translate_tree_taxa=None, | ||
| suppress_annotations=True, | ||
| annotations_as_nhx=False, | ||
| suppress_item_comments=False, | ||
| node_label_element_separator=' ', | ||
| node_label_compose_fn=None, | ||
| edge_label_compose_fn=None, | ||
| real_value_format_specifier='', | ||
| ignore_unrecognized_keyword_arguments=True, | ||
| ) | ||
|
|
||
| CytB_char_matrix.write( | ||
| path='CytB_geophagini.nex', | ||
| schema='nexus', | ||
| suppress_taxa_blocks=None, | ||
| suppress_block_titles=None, | ||
| file_comments=[], | ||
| preamble_blocks=[], | ||
| supplemental_blocks=[], | ||
| allow_multiline_comments=True, | ||
| suppress_leaf_taxon_labels=True, | ||
| suppress_leaf_node_labels=True, | ||
| suppress_internal_taxon_labels=True, | ||
| suppress_internal_node_labels=True, | ||
| suppress_rooting=True, | ||
| suppress_edge_lengths=True, | ||
| unquoted_underscores=False, | ||
| preserve_spaces=False, | ||
| store_tree_weights=False, | ||
| translate_tree_taxa=None, | ||
| suppress_annotations=True, | ||
| annotations_as_nhx=False, | ||
| suppress_item_comments=False, | ||
| node_label_element_separator=' ', | ||
| node_label_compose_fn=None, | ||
| edge_label_compose_fn=None, | ||
| real_value_format_specifier='', | ||
| ignore_unrecognized_keyword_arguments=True, | ||
| ) | ||
|
|
||
| _16S_char_matrix.write( | ||
| path='16S_geophagini.nex', | ||
| schema='nexus', | ||
| suppress_taxa_blocks=None, | ||
| suppress_block_titles=None, | ||
| file_comments=[], | ||
| preamble_blocks=[], | ||
| supplemental_blocks=[], | ||
| allow_multiline_comments=True, | ||
| suppress_leaf_taxon_labels=True, | ||
| suppress_leaf_node_labels=True, | ||
| suppress_internal_taxon_labels=True, | ||
| suppress_internal_node_labels=True, | ||
| suppress_rooting=True, | ||
| suppress_edge_lengths=True, | ||
| unquoted_underscores=False, | ||
| preserve_spaces=False, | ||
| store_tree_weights=False, | ||
| translate_tree_taxa=None, | ||
| suppress_annotations=True, | ||
| annotations_as_nhx=False, | ||
| suppress_item_comments=False, | ||
| node_label_element_separator=' ', | ||
| node_label_compose_fn=None, | ||
| edge_label_compose_fn=None, | ||
| real_value_format_specifier='', | ||
| ignore_unrecognized_keyword_arguments=True, | ||
| ) | ||
|
|
||
| RAG2_char_matrix.write( | ||
| path='RAG2_geophagini.nex', | ||
| schema='nexus', | ||
| suppress_taxa_blocks=None, | ||
| suppress_block_titles=None, | ||
| file_comments=[], | ||
| preamble_blocks=[], | ||
| supplemental_blocks=[], | ||
| allow_multiline_comments=True, | ||
| suppress_leaf_taxon_labels=True, | ||
| suppress_leaf_node_labels=True, | ||
| suppress_internal_taxon_labels=True, | ||
| suppress_internal_node_labels=True, | ||
| suppress_rooting=True, | ||
| suppress_edge_lengths=True, | ||
| unquoted_underscores=False, | ||
| preserve_spaces=False, | ||
| store_tree_weights=False, | ||
| translate_tree_taxa=None, | ||
| suppress_annotations=True, | ||
| annotations_as_nhx=False, | ||
| suppress_item_comments=False, | ||
| node_label_element_separator=' ', | ||
| node_label_compose_fn=None, | ||
| edge_label_compose_fn=None, | ||
| real_value_format_specifier='', | ||
| ignore_unrecognized_keyword_arguments=True, | ||
| ) | ||
|
|
||
| S7_Intron1_char_matrix.write( | ||
| path='S7_Intron1_geophagini.nex', | ||
| schema='nexus', | ||
| suppress_taxa_blocks=None, | ||
| suppress_block_titles=None, | ||
| file_comments=[], | ||
| preamble_blocks=[], | ||
| supplemental_blocks=[], | ||
| allow_multiline_comments=True, | ||
| suppress_leaf_taxon_labels=True, | ||
| suppress_leaf_node_labels=True, | ||
| suppress_internal_taxon_labels=True, | ||
| suppress_internal_node_labels=True, | ||
| suppress_rooting=True, | ||
| suppress_edge_lengths=True, | ||
| unquoted_underscores=False, | ||
| preserve_spaces=False, | ||
| store_tree_weights=False, | ||
| translate_tree_taxa=None, | ||
| suppress_annotations=True, | ||
| annotations_as_nhx=False, | ||
| suppress_item_comments=False, | ||
| node_label_element_separator=' ', | ||
| node_label_compose_fn=None, | ||
| edge_label_compose_fn=None, | ||
| real_value_format_specifier='', | ||
| ignore_unrecognized_keyword_arguments=True, | ||
| ) | ||
|
|
||
|
|
||
| # print(char_matrix.as_string("nexus")) | ||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
| # from Bio import SeqIO | ||
|
|
||
| # for seq_record in SeqIO.parse("ls_orchid.gbk", "genbank"): | ||
| # print(seq_record.id) | ||
| # print(repr(seq_record.seq)) | ||
| # print(len(seq_record)) |
| @@ -0,0 +1,3 @@ | ||
| function [dist] = get_distance(p1, p2) | ||
| dist = sqrt((p1(1)-p2(1))^2 + (p1(2)-p2(2))^2); | ||
| end |
| @@ -0,0 +1,2 @@ | ||
| source('http://bioconductor.org/biocLite.R') | ||
| biocLite('EBImage') |