Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AIBS version merge - bug fixes, clarification, feature adds, and refactor to object-oriented execution #8

Open
wants to merge 54 commits into
base: master
Choose a base branch
from

Conversation

PRNicovich
Copy link

Have implemented a number of changes to support our work with MERFISH and probe design. Changes summarized below.

Have tested these changes on various panel builds and against demo code + input examples. I have confirmed that the probes generated with this edited fork are same as those in base repo w/ provided input files.

Key edits and notes:

  • Removal of dependence on matlab-storm repo files.
  • Removal of code-initiated edits to user's MATLAB path.
  • Bug fixes to allow execution of code as published on original repo.
  • Bug fix to allow large binary objects to be saved and loaded to/from disk.
  • Collected all apparent parameters into named variables at top of library_design_example.m script.
  • Completed implementation for using Ensembl and RefSeq (Entrez) transcriptome files + gene names.
  • Sequentially-probed genes (aka smELT) in same or separate panel as barcoded (aka MERFISH) genes supported.
  • Support for un-sliced mouse or human transcriptome to pass through analysis.
  • Tested with publicly-available mouse transcriptome and non-coding RNA files.
  • When not thresholding on any gene abundance (threshold >= 0) then bulk sequencing is not needed (proxy file required, but can be made from transcriptome directly).
  • Renamed library_design_example.m to MERFISHProbeDesign.m and moved to .\probe_construction folder.
  • Refactored MERFISHProbeDesign to accept probeDesign object (from .\probe_construction\probeDesign.m) in addition to running as script with internal variable assignment.
  • Add output of all probes ([libraryName]_AllOligos.fasta) generated in calculations.
  • Add output of message log ([libraryName].log) with error logging.
  • Begin implementation of reading on-disk files when specified to skip repeated processing steps (preliminary).

ScanningLabAnalysis and others added 30 commits June 16, 2019 21:04
Multitude of error corrections throughout original code.
Added ./outputForLIMS/ folder for helper scripts to convert MATLAB
output to LIMS output.  However - Python library
'mFISHCodebookPermutation/ is current supported version of these
functins.
…robe concentration for TRDesigner input.wq
./MERFISH_Examples2/library_design_example.m now supplanted by
./probe_construction/MERFISHProbeDesign.m.
Copy required files from matlab-storm.m to remove dependency on that
library.  Copied files in ./fileIO/.
Edit README.md to include newly-named variables and default values.
this version works with LIMS references
changed "transferAbund" to "true" under "if useUniformWeights"
output the same probes each run
Transcriptome object now deleted after generating slicedTranscriptome,
immediately before building TRDesigner object.
The human_MTG sequential codebook revealed a bug that the allOligos were not collected correctly with the original version. I rewrote the logic to collect allOligos.
1. Check whether gene and ids match with each other in the reference, send a warning if not
2. allOligos file is written in a different way to avoid empty cells when there are mismatched gene+ids in the codebook
3. change the selection process of probes to stop picking duplicated probes for genes with multiple transcripts
executeProbeDesign.m accumulating edits from use.
If true, will use ordering from codebook.  If false, use ordering from
readouts.fasta file.
Will import settings from log file.
Pre-allocating TargetRegions object avoids duplication of array in
'flattening' step, bypasses memory error line.

Fixed issues with 'debugMode' in MERFISHProbeDesign, TRDesigner.
DebugMode on TRDEsigner.DesignTargetRegions actually does something now.
Modified TRDesigner.DesignTargetRegions to avoid out of memory errors.
pseudo-random order of readouts given a sequence of integer
representations of characters.
PRNicovich and others added 21 commits February 7, 2020 13:28
Tested. We can keep the ensemble and NCBI choice as long as we remove the NCBI _ to , modification.
Fixed the bug for smELT mode and added a table to list probe numbers generated for each gene.
regions, expanding acceptable isospecificity, or by a specified
parameter range.

Added targetRegionsFilteringDemo.m to demonstrate three methods to do
TargetRegions filtering.

Modified MERFISHProbeDesign, probeDesign, executeProbeDesign to support
the new parameters.
support targetRegions filtering, spaceOutProbes parameters.
regions are returned.

Cumulative sum of isospecificty values in
findExpandedIsospecificityTargetRegions was backwards.  Now corrected.
Rusty Nicovich and others added 3 commits May 5, 2020 14:35
… target regions would be minValue + 1, not minValue. Changed <= in if statements leading to break or continue to <.
Buffer output data into a struct and save in chunks for every 100 genes
Add progress information
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants