Skip to content

Repository files navigation

heading

SimCopy

SimCopy is an R package simulating the evolution of copy number profiles along a tree. It relies on the PhyloSim package for performing the simulations by encoding the genomic regions as sites in sequences and using modified processes acting on them. Please refer to the package manual for further details.

SimCopy was brought to you by the Goldman group from EMBL-EBI.

Catalogued on GSR

Download an install

The released packages are available from the release directory.

Building from source

The package can be built from the source by issuing make pkg on a *nix system. The building process need the standard unix tools, Perl and R with the R.oo, phylosim packages installed.

Examples


# The following tiny examples illustrate the
# effects of individual processes: # Load simcopy:
library(simcopy)
tree<-rcoal(2) # We will use this tiny tree in the examples below.
rate<-0.08 # Common rate for the small examples.
## Simulating deletions and dealing with the results:
cat("\nSimulating deletions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=40,
deletion=list(rate=rate, mean=2)
)
# Run simulation:
res<-Simulate(sc, tree)
# Deal with the simulation results:
print(res$aln) # print out the simulated alignment
print(res$cnh) # print out the simulated copy number history
print(res$fasta)# print out the fasta alignment
summary(res$phylosim) # get the details of the PhyloSim object used for simulations
summary(res$processes[[1]]) # get the details of the deletion process
plot(res$processes[[1]]) # plot the distribution of deletion lengths
## Simulate duplications and print out the resulting alignment:
cat("\nSimulating duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inverted duplications and print out the resulting alignment:
cat("\nSimulating inverted duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inv.duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inversions and print out the resulting alignment:
cat("\nSimulating inversions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inversion=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate translocations and print out the resulting alignment:
cat("\nSimulating translocations:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
translocation=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## In the following simulation we will use all the processes above ## and we will attempt to recover the topology using simple hierarchical
## clustering of the copy number profiles.
tree<-rcoal(6)
rate<-0.05
sc <- SimCopy(
root.size=50,
deletion=list(rate=rate, mean=2),
duplication=list(rate=rate, mean=2),
inv.duplication=list(rate=rate, mean=2),
inversion=list(rate=rate, mean=2),
translocation=list(rate=rate, mean=2)
)
res<-Simulate(sc, tree, anc=FALSE) # discard internal nodes
# Print out the simulate genomic region alignment through
# the underlying PhyloSim object:
plot(res$phylosim)
# Calculate distances between copy number profiles:
d<-dist(res$cnh)
# Cluster the copy number profiles:
hc<-hclust(d)
# Relabel the tips of the true tree and plot it out:
tree$tip.label<-1:length(tree$tip.label)
plot(tree)
# Plot out the results of hierarchical clustering:
plot(hc)

About

An R package simulating the evolution of copy number profiles along a tree

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - sbotond/simcopy: An R package simulating the evolution of copy number profiles along a tree · GitHub
Skip to content

Repository files navigation

heading

SimCopy

SimCopy is an R package simulating the evolution of copy number profiles along a tree. It relies on the PhyloSim package for performing the simulations by encoding the genomic regions as sites in sequences and using modified processes acting on them. Please refer to the package manual for further details.

SimCopy was brought to you by the Goldman group from EMBL-EBI.

Catalogued on GSR

Download an install

The released packages are available from the release directory.

Building from source

The package can be built from the source by issuing make pkg on a *nix system. The building process need the standard unix tools, Perl and R with the R.oo, phylosim packages installed.

Examples


# The following tiny examples illustrate the
# effects of individual processes: # Load simcopy:
library(simcopy)
tree<-rcoal(2) # We will use this tiny tree in the examples below.
rate<-0.08 # Common rate for the small examples.
## Simulating deletions and dealing with the results:
cat("\nSimulating deletions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=40,
deletion=list(rate=rate, mean=2)
)
# Run simulation:
res<-Simulate(sc, tree)
# Deal with the simulation results:
print(res$aln) # print out the simulated alignment
print(res$cnh) # print out the simulated copy number history
print(res$fasta)# print out the fasta alignment
summary(res$phylosim) # get the details of the PhyloSim object used for simulations
summary(res$processes[[1]]) # get the details of the deletion process
plot(res$processes[[1]]) # plot the distribution of deletion lengths
## Simulate duplications and print out the resulting alignment:
cat("\nSimulating duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inverted duplications and print out the resulting alignment:
cat("\nSimulating inverted duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inv.duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inversions and print out the resulting alignment:
cat("\nSimulating inversions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inversion=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate translocations and print out the resulting alignment:
cat("\nSimulating translocations:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
translocation=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## In the following simulation we will use all the processes above ## and we will attempt to recover the topology using simple hierarchical
## clustering of the copy number profiles.
tree<-rcoal(6)
rate<-0.05
sc <- SimCopy(
root.size=50,
deletion=list(rate=rate, mean=2),
duplication=list(rate=rate, mean=2),
inv.duplication=list(rate=rate, mean=2),
inversion=list(rate=rate, mean=2),
translocation=list(rate=rate, mean=2)
)
res<-Simulate(sc, tree, anc=FALSE) # discard internal nodes
# Print out the simulate genomic region alignment through
# the underlying PhyloSim object:
plot(res$phylosim)
# Calculate distances between copy number profiles:
d<-dist(res$cnh)
# Cluster the copy number profiles:
hc<-hclust(d)
# Relabel the tips of the true tree and plot it out:
tree$tip.label<-1:length(tree$tip.label)
plot(tree)
# Plot out the results of hierarchical clustering:
plot(hc)

About

An R package simulating the evolution of copy number profiles along a tree

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - sbotond/simcopy: An R package simulating the evolution of copy number profiles along a tree · GitHub
Skip to content

Repository files navigation

heading

SimCopy

SimCopy is an R package simulating the evolution of copy number profiles along a tree. It relies on the PhyloSim package for performing the simulations by encoding the genomic regions as sites in sequences and using modified processes acting on them. Please refer to the package manual for further details.

SimCopy was brought to you by the Goldman group from EMBL-EBI.

Catalogued on GSR

Download an install

The released packages are available from the release directory.

Building from source

The package can be built from the source by issuing make pkg on a *nix system. The building process need the standard unix tools, Perl and R with the R.oo, phylosim packages installed.

Examples


# The following tiny examples illustrate the
# effects of individual processes: # Load simcopy:
library(simcopy)
tree<-rcoal(2) # We will use this tiny tree in the examples below.
rate<-0.08 # Common rate for the small examples.
## Simulating deletions and dealing with the results:
cat("\nSimulating deletions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=40,
deletion=list(rate=rate, mean=2)
)
# Run simulation:
res<-Simulate(sc, tree)
# Deal with the simulation results:
print(res$aln) # print out the simulated alignment
print(res$cnh) # print out the simulated copy number history
print(res$fasta)# print out the fasta alignment
summary(res$phylosim) # get the details of the PhyloSim object used for simulations
summary(res$processes[[1]]) # get the details of the deletion process
plot(res$processes[[1]]) # plot the distribution of deletion lengths
## Simulate duplications and print out the resulting alignment:
cat("\nSimulating duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inverted duplications and print out the resulting alignment:
cat("\nSimulating inverted duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inv.duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inversions and print out the resulting alignment:
cat("\nSimulating inversions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inversion=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate translocations and print out the resulting alignment:
cat("\nSimulating translocations:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
translocation=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## In the following simulation we will use all the processes above ## and we will attempt to recover the topology using simple hierarchical
## clustering of the copy number profiles.
tree<-rcoal(6)
rate<-0.05
sc <- SimCopy(
root.size=50,
deletion=list(rate=rate, mean=2),
duplication=list(rate=rate, mean=2),
inv.duplication=list(rate=rate, mean=2),
inversion=list(rate=rate, mean=2),
translocation=list(rate=rate, mean=2)
)
res<-Simulate(sc, tree, anc=FALSE) # discard internal nodes
# Print out the simulate genomic region alignment through
# the underlying PhyloSim object:
plot(res$phylosim)
# Calculate distances between copy number profiles:
d<-dist(res$cnh)
# Cluster the copy number profiles:
hc<-hclust(d)
# Relabel the tips of the true tree and plot it out:
tree$tip.label<-1:length(tree$tip.label)
plot(tree)
# Plot out the results of hierarchical clustering:
plot(hc)

About

An R package simulating the evolution of copy number profiles along a tree

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - sbotond/simcopy: An R package simulating the evolution of copy number profiles along a tree · GitHub
Skip to content

Repository files navigation

heading

SimCopy

SimCopy is an R package simulating the evolution of copy number profiles along a tree. It relies on the PhyloSim package for performing the simulations by encoding the genomic regions as sites in sequences and using modified processes acting on them. Please refer to the package manual for further details.

SimCopy was brought to you by the Goldman group from EMBL-EBI.

Catalogued on GSR

Download an install

The released packages are available from the release directory.

Building from source

The package can be built from the source by issuing make pkg on a *nix system. The building process need the standard unix tools, Perl and R with the R.oo, phylosim packages installed.

Examples


# The following tiny examples illustrate the
# effects of individual processes: # Load simcopy:
library(simcopy)
tree<-rcoal(2) # We will use this tiny tree in the examples below.
rate<-0.08 # Common rate for the small examples.
## Simulating deletions and dealing with the results:
cat("\nSimulating deletions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=40,
deletion=list(rate=rate, mean=2)
)
# Run simulation:
res<-Simulate(sc, tree)
# Deal with the simulation results:
print(res$aln) # print out the simulated alignment
print(res$cnh) # print out the simulated copy number history
print(res$fasta)# print out the fasta alignment
summary(res$phylosim) # get the details of the PhyloSim object used for simulations
summary(res$processes[[1]]) # get the details of the deletion process
plot(res$processes[[1]]) # plot the distribution of deletion lengths
## Simulate duplications and print out the resulting alignment:
cat("\nSimulating duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inverted duplications and print out the resulting alignment:
cat("\nSimulating inverted duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inv.duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inversions and print out the resulting alignment:
cat("\nSimulating inversions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inversion=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate translocations and print out the resulting alignment:
cat("\nSimulating translocations:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
translocation=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## In the following simulation we will use all the processes above ## and we will attempt to recover the topology using simple hierarchical
## clustering of the copy number profiles.
tree<-rcoal(6)
rate<-0.05
sc <- SimCopy(
root.size=50,
deletion=list(rate=rate, mean=2),
duplication=list(rate=rate, mean=2),
inv.duplication=list(rate=rate, mean=2),
inversion=list(rate=rate, mean=2),
translocation=list(rate=rate, mean=2)
)
res<-Simulate(sc, tree, anc=FALSE) # discard internal nodes
# Print out the simulate genomic region alignment through
# the underlying PhyloSim object:
plot(res$phylosim)
# Calculate distances between copy number profiles:
d<-dist(res$cnh)
# Cluster the copy number profiles:
hc<-hclust(d)
# Relabel the tips of the true tree and plot it out:
tree$tip.label<-1:length(tree$tip.label)
plot(tree)
# Plot out the results of hierarchical clustering:
plot(hc)

About

An R package simulating the evolution of copy number profiles along a tree

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - sbotond/simcopy: An R package simulating the evolution of copy number profiles along a tree · GitHub
Skip to content

Repository files navigation

heading

SimCopy

SimCopy is an R package simulating the evolution of copy number profiles along a tree. It relies on the PhyloSim package for performing the simulations by encoding the genomic regions as sites in sequences and using modified processes acting on them. Please refer to the package manual for further details.

SimCopy was brought to you by the Goldman group from EMBL-EBI.

Catalogued on GSR

Download an install

The released packages are available from the release directory.

Building from source

The package can be built from the source by issuing make pkg on a *nix system. The building process need the standard unix tools, Perl and R with the R.oo, phylosim packages installed.

Examples


# The following tiny examples illustrate the
# effects of individual processes: # Load simcopy:
library(simcopy)
tree<-rcoal(2) # We will use this tiny tree in the examples below.
rate<-0.08 # Common rate for the small examples.
## Simulating deletions and dealing with the results:
cat("\nSimulating deletions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=40,
deletion=list(rate=rate, mean=2)
)
# Run simulation:
res<-Simulate(sc, tree)
# Deal with the simulation results:
print(res$aln) # print out the simulated alignment
print(res$cnh) # print out the simulated copy number history
print(res$fasta)# print out the fasta alignment
summary(res$phylosim) # get the details of the PhyloSim object used for simulations
summary(res$processes[[1]]) # get the details of the deletion process
plot(res$processes[[1]]) # plot the distribution of deletion lengths
## Simulate duplications and print out the resulting alignment:
cat("\nSimulating duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inverted duplications and print out the resulting alignment:
cat("\nSimulating inverted duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inv.duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inversions and print out the resulting alignment:
cat("\nSimulating inversions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inversion=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate translocations and print out the resulting alignment:
cat("\nSimulating translocations:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
translocation=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## In the following simulation we will use all the processes above ## and we will attempt to recover the topology using simple hierarchical
## clustering of the copy number profiles.
tree<-rcoal(6)
rate<-0.05
sc <- SimCopy(
root.size=50,
deletion=list(rate=rate, mean=2),
duplication=list(rate=rate, mean=2),
inv.duplication=list(rate=rate, mean=2),
inversion=list(rate=rate, mean=2),
translocation=list(rate=rate, mean=2)
)
res<-Simulate(sc, tree, anc=FALSE) # discard internal nodes
# Print out the simulate genomic region alignment through
# the underlying PhyloSim object:
plot(res$phylosim)
# Calculate distances between copy number profiles:
d<-dist(res$cnh)
# Cluster the copy number profiles:
hc<-hclust(d)
# Relabel the tips of the true tree and plot it out:
tree$tip.label<-1:length(tree$tip.label)
plot(tree)
# Plot out the results of hierarchical clustering:
plot(hc)

About

An R package simulating the evolution of copy number profiles along a tree

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - sbotond/simcopy: An R package simulating the evolution of copy number profiles along a tree · GitHub
Skip to content

Repository files navigation

heading

SimCopy

SimCopy is an R package simulating the evolution of copy number profiles along a tree. It relies on the PhyloSim package for performing the simulations by encoding the genomic regions as sites in sequences and using modified processes acting on them. Please refer to the package manual for further details.

SimCopy was brought to you by the Goldman group from EMBL-EBI.

Catalogued on GSR

Download an install

The released packages are available from the release directory.

Building from source

The package can be built from the source by issuing make pkg on a *nix system. The building process need the standard unix tools, Perl and R with the R.oo, phylosim packages installed.

Examples


# The following tiny examples illustrate the
# effects of individual processes: # Load simcopy:
library(simcopy)
tree<-rcoal(2) # We will use this tiny tree in the examples below.
rate<-0.08 # Common rate for the small examples.
## Simulating deletions and dealing with the results:
cat("\nSimulating deletions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=40,
deletion=list(rate=rate, mean=2)
)
# Run simulation:
res<-Simulate(sc, tree)
# Deal with the simulation results:
print(res$aln) # print out the simulated alignment
print(res$cnh) # print out the simulated copy number history
print(res$fasta)# print out the fasta alignment
summary(res$phylosim) # get the details of the PhyloSim object used for simulations
summary(res$processes[[1]]) # get the details of the deletion process
plot(res$processes[[1]]) # plot the distribution of deletion lengths
## Simulate duplications and print out the resulting alignment:
cat("\nSimulating duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inverted duplications and print out the resulting alignment:
cat("\nSimulating inverted duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inv.duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inversions and print out the resulting alignment:
cat("\nSimulating inversions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inversion=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate translocations and print out the resulting alignment:
cat("\nSimulating translocations:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
translocation=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## In the following simulation we will use all the processes above ## and we will attempt to recover the topology using simple hierarchical
## clustering of the copy number profiles.
tree<-rcoal(6)
rate<-0.05
sc <- SimCopy(
root.size=50,
deletion=list(rate=rate, mean=2),
duplication=list(rate=rate, mean=2),
inv.duplication=list(rate=rate, mean=2),
inversion=list(rate=rate, mean=2),
translocation=list(rate=rate, mean=2)
)
res<-Simulate(sc, tree, anc=FALSE) # discard internal nodes
# Print out the simulate genomic region alignment through
# the underlying PhyloSim object:
plot(res$phylosim)
# Calculate distances between copy number profiles:
d<-dist(res$cnh)
# Cluster the copy number profiles:
hc<-hclust(d)
# Relabel the tips of the true tree and plot it out:
tree$tip.label<-1:length(tree$tip.label)
plot(tree)
# Plot out the results of hierarchical clustering:
plot(hc)

About

An R package simulating the evolution of copy number profiles along a tree

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - sbotond/simcopy: An R package simulating the evolution of copy number profiles along a tree · GitHub
Skip to content

Repository files navigation

heading

SimCopy

SimCopy is an R package simulating the evolution of copy number profiles along a tree. It relies on the PhyloSim package for performing the simulations by encoding the genomic regions as sites in sequences and using modified processes acting on them. Please refer to the package manual for further details.

SimCopy was brought to you by the Goldman group from EMBL-EBI.

Catalogued on GSR

Download an install

The released packages are available from the release directory.

Building from source

The package can be built from the source by issuing make pkg on a *nix system. The building process need the standard unix tools, Perl and R with the R.oo, phylosim packages installed.

Examples


# The following tiny examples illustrate the
# effects of individual processes: # Load simcopy:
library(simcopy)
tree<-rcoal(2) # We will use this tiny tree in the examples below.
rate<-0.08 # Common rate for the small examples.
## Simulating deletions and dealing with the results:
cat("\nSimulating deletions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=40,
deletion=list(rate=rate, mean=2)
)
# Run simulation:
res<-Simulate(sc, tree)
# Deal with the simulation results:
print(res$aln) # print out the simulated alignment
print(res$cnh) # print out the simulated copy number history
print(res$fasta)# print out the fasta alignment
summary(res$phylosim) # get the details of the PhyloSim object used for simulations
summary(res$processes[[1]]) # get the details of the deletion process
plot(res$processes[[1]]) # plot the distribution of deletion lengths
## Simulate duplications and print out the resulting alignment:
cat("\nSimulating duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inverted duplications and print out the resulting alignment:
cat("\nSimulating inverted duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inv.duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inversions and print out the resulting alignment:
cat("\nSimulating inversions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inversion=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate translocations and print out the resulting alignment:
cat("\nSimulating translocations:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
translocation=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## In the following simulation we will use all the processes above ## and we will attempt to recover the topology using simple hierarchical
## clustering of the copy number profiles.
tree<-rcoal(6)
rate<-0.05
sc <- SimCopy(
root.size=50,
deletion=list(rate=rate, mean=2),
duplication=list(rate=rate, mean=2),
inv.duplication=list(rate=rate, mean=2),
inversion=list(rate=rate, mean=2),
translocation=list(rate=rate, mean=2)
)
res<-Simulate(sc, tree, anc=FALSE) # discard internal nodes
# Print out the simulate genomic region alignment through
# the underlying PhyloSim object:
plot(res$phylosim)
# Calculate distances between copy number profiles:
d<-dist(res$cnh)
# Cluster the copy number profiles:
hc<-hclust(d)
# Relabel the tips of the true tree and plot it out:
tree$tip.label<-1:length(tree$tip.label)
plot(tree)
# Plot out the results of hierarchical clustering:
plot(hc)

About

An R package simulating the evolution of copy number profiles along a tree

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - sbotond/simcopy: An R package simulating the evolution of copy number profiles along a tree · GitHub
Skip to content

Repository files navigation

heading

SimCopy

SimCopy is an R package simulating the evolution of copy number profiles along a tree. It relies on the PhyloSim package for performing the simulations by encoding the genomic regions as sites in sequences and using modified processes acting on them. Please refer to the package manual for further details.

SimCopy was brought to you by the Goldman group from EMBL-EBI.

Catalogued on GSR

Download an install

The released packages are available from the release directory.

Building from source

The package can be built from the source by issuing make pkg on a *nix system. The building process need the standard unix tools, Perl and R with the R.oo, phylosim packages installed.

Examples


# The following tiny examples illustrate the
# effects of individual processes: # Load simcopy:
library(simcopy)
tree<-rcoal(2) # We will use this tiny tree in the examples below.
rate<-0.08 # Common rate for the small examples.
## Simulating deletions and dealing with the results:
cat("\nSimulating deletions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=40,
deletion=list(rate=rate, mean=2)
)
# Run simulation:
res<-Simulate(sc, tree)
# Deal with the simulation results:
print(res$aln) # print out the simulated alignment
print(res$cnh) # print out the simulated copy number history
print(res$fasta)# print out the fasta alignment
summary(res$phylosim) # get the details of the PhyloSim object used for simulations
summary(res$processes[[1]]) # get the details of the deletion process
plot(res$processes[[1]]) # plot the distribution of deletion lengths
## Simulate duplications and print out the resulting alignment:
cat("\nSimulating duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inverted duplications and print out the resulting alignment:
cat("\nSimulating inverted duplications:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inv.duplication=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate inversions and print out the resulting alignment:
cat("\nSimulating inversions:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
inversion=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## Simulate translocations and print out the resulting alignment:
cat("\nSimulating translocations:\n")
# Construct a SimCopy object:
sc <- SimCopy(
root.size=20,
translocation=list(rate=rate, mean=2)
)
print( Simulate(sc, tree)$aln )
## In the following simulation we will use all the processes above ## and we will attempt to recover the topology using simple hierarchical
## clustering of the copy number profiles.
tree<-rcoal(6)
rate<-0.05
sc <- SimCopy(
root.size=50,
deletion=list(rate=rate, mean=2),
duplication=list(rate=rate, mean=2),
inv.duplication=list(rate=rate, mean=2),
inversion=list(rate=rate, mean=2),
translocation=list(rate=rate, mean=2)
)
res<-Simulate(sc, tree, anc=FALSE) # discard internal nodes
# Print out the simulate genomic region alignment through
# the underlying PhyloSim object:
plot(res$phylosim)
# Calculate distances between copy number profiles:
d<-dist(res$cnh)
# Cluster the copy number profiles:
hc<-hclust(d)
# Relabel the tips of the true tree and plot it out:
tree$tip.label<-1:length(tree$tip.label)
plot(tree)
# Plot out the results of hierarchical clustering:
plot(hc)

About

An R package simulating the evolution of copy number profiles along a tree

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages