{"id":24182968,"url":"https://github.com/ms609/exploreinapplicable","last_synced_at":"2026-03-09T14:34:13.373Z","repository":{"id":90542349,"uuid":"105557830","full_name":"ms609/ExploreInapplicable","owner":"ms609","description":"Tests to explore the use of the inapplicable algorithm of Brazeau, Guillerme \u0026 Smith (2019)","archived":false,"fork":false,"pushed_at":"2021-10-26T10:14:46.000Z","size":63295,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-13T08:47:09.939Z","etag":null,"topics":["parsimony","phylogenetics","systematic-biology"],"latest_commit_sha":null,"homepage":"https://ms609.github.io/ExploreInapplicable/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ms609.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-02T16:31:16.000Z","updated_at":"2021-10-26T10:14:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"e96cffee-be9b-4df9-a613-6f8513f1e35f","html_url":"https://github.com/ms609/ExploreInapplicable","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ms609%2FExploreInapplicable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ms609%2FExploreInapplicable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ms609%2FExploreInapplicable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ms609%2FExploreInapplicable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ms609","download_url":"https://codeload.github.com/ms609/ExploreInapplicable/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241577072,"owners_count":19984940,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["parsimony","phylogenetics","systematic-biology"],"created_at":"2025-01-13T08:45:52.008Z","updated_at":"2025-11-27T14:05:19.412Z","avatar_url":"https://github.com/ms609.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Exploring the Inapplicable Algorithm\n\n## Obtaining matrices\n\nMorphological matrices were selected from the literature with a view to obtaining a broad coverage\nof both taxa and taxonomic levels.\n\nMatrices with a trivial amount of inapplicable tokens (e.g. max 2 per transformation series)\nwere excluded, as were those with large numbers of taxa (\u003e80), as an efficient implementation\nof tree search algorithms that works with the inapplicable algorithm has not yet been constructed.\n\nComments and additional blocks were removed from the matrices to allow their easy parsing by\ndifferent software packages, and the matrices placed in the `matrices` directory.\n\nDetails of each matrix, including a full citation and interpretation details for each \ncharacter, are provided in `r_dataset_details.html`, generated by the associated `.Rmd`\nfile and [viewable here](https://cdn.rawgit.com/ms609/ExploreInapplicable/master/r_dataset_details.html).\n\n## Annotating character types\n\nOriginal character lists were obtained for each matrix.  For each matrix, a template annotation\nfile was generated using the Perl script `character_type_teplate.pl`.  This blank template\nmarked the characters that contained at least one inapplicable token.  Each of these characters\nwas then examined in the original character list and scored as neomorphic or transformational,\nwith the 'non-derived' character state flagged for neomorphic characters.\n\n## Rewriting matrices\n\nEach matrix was then copied to each of four subfolders, and modified for analysis:\n\n- Folder `ambiguous`:\n  *  all inapplicable tokens replaced with `?`\n\n- Folder `ambigAbsent`: \n  * inapplicable tokens in transformational series characters with `?`\n  * inapplicable tokens in neomorphic characters series replaced with non-derived token\n      for that character\n    \n    \n- Folder `extraState`: \n  * inapplicable tokens in transformational series characters with `9`\n  * inapplicable tokens in neomorphic characters series replaced with non-derived token\n      for that character\n    \n    \n- Folder `inapplicable`: \n  * inapplicable tokens in transformational series left as `-`\n  * inapplicable tokens in neomorphic characters series replaced with non-derived token\n      for that character\n    \nThe Perl script `analyse_matrices.pl` performs these modifications.\n\n## Identifying optimal trees\n\nThe Perl script `analyse_matrices.pl` also initiates parsimony analysis on most of the matrices.\n\nParsimony analysis is conducted in [TNT](http://www.lillo.org.ar/phylogeny/tnt/) using the \nscript specified in `tnt_search.run` - in summary, using sectorial search,\nthe parsimony ratchet and tree drifting, to find the optimal tree length 100 times.  All\nmost parsimonious trees are saved to a file in the respective folder, and these files are \nconverted from TNT's proprietary format to NEXUS format in a separate file ending `.nextrees`.\nA strict consensus tree depicting the results of each analysis for are presented for each\nmatrix in PDF format in the `consTrees` folder.\n\nParsimony analysis using the new algorithm is conducted in R using the script `r_search.R`.\n\n## Analysis of optimal trees\n\nOnce optimal trees have been collected under each method, the 'islands' of optimal trees were\ncompared using two methods, implemented in the script `r_plot.R`.\n\n### Method 1. Length of trees on each island.\n\nThe MPTs on each island were analysed by the other methods.  The scores that were optimal under\none method are often suboptimal under another.  The number of extra steps associated with each\ntree -- in a sense, how far the trees that are optimal under one method are from those\nthat are optimal under another -- is counted in `islandCounts` and plotted as a histogram\nin the `histograms` directory.\n\n### Method 2. Overlap of islands in tree space.\n\nDistances between each pair of trees were calculated using the Robinson-Foulds distance and the\nQuartet distances.  Principle components were generated from these distance matrices using the \n`ape` function `pcoa`, and this crude tree-space was plotted in two dimensions, with convex\nhulls drawn around the trees derived from each method.  These treespaces are saved in the\n`treeSpaces` directory.\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fms609%2Fexploreinapplicable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fms609%2Fexploreinapplicable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fms609%2Fexploreinapplicable/lists"}