{"action":"created","issue":{"url":"https://api.github.com/repos/brianhie/scanorama/issues/4","repository_url":"https://api.github.com/repos/brianhie/scanorama","labels_url":"https://api.github.com/repos/brianhie/scanorama/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/brianhie/scanorama/issues/4/comments","events_url":"https://api.github.com/repos/brianhie/scanorama/issues/4/events","html_url":"https://github.com/brianhie/scanorama/issues/4","id":353383271,"node_id":"MDU6SXNzdWUzNTMzODMyNzE=","number":4,"title":"Integration vs Preprocessing","user":{"login":"ilyakorsunsky","id":2343994,"node_id":"MDQ6VXNlcjIzNDM5OTQ=","avatar_url":"https://avatars1.githubusercontent.com/u/2343994?v=4","gravatar_id":"","url":"https://api.github.com/users/ilyakorsunsky","html_url":"https://github.com/ilyakorsunsky","followers_url":"https://api.github.com/users/ilyakorsunsky/followers","following_url":"https://api.github.com/users/ilyakorsunsky/following{/other_user}","gists_url":"https://api.github.com/users/ilyakorsunsky/gists{/gist_id}","starred_url":"https://api.github.com/users/ilyakorsunsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ilyakorsunsky/subscriptions","organizations_url":"https://api.github.com/users/ilyakorsunsky/orgs","repos_url":"https://api.github.com/users/ilyakorsunsky/repos","events_url":"https://api.github.com/users/ilyakorsunsky/events{/privacy}","received_events_url":"https://api.github.com/users/ilyakorsunsky/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-08-23T13:33:24Z","updated_at":"2018-08-23T15:38:40Z","closed_at":null,"author_association":"NONE","body":"Very excited to try this method on my data! I have a design question that is not clear to me. Which methods can be replaced by any pre-processing pipeline and which are core methods for integration? For instance, if I process raw data through PCA in Seurat or Scanpy, can I run the assemble method on the PC matrices and expect similar results? It would be helpful to have this distinction reflected in the code base."},"comment":{"url":"https://api.github.com/repos/brianhie/scanorama/issues/comments/415463119","html_url":"https://github.com/brianhie/scanorama/issues/4#issuecomment-415463119","issue_url":"https://api.github.com/repos/brianhie/scanorama/issues/4","id":415463119,"node_id":"MDEyOklzc3VlQ29tbWVudDQxNTQ2MzExOQ==","user":{"login":"brianhie","id":6365340,"node_id":"MDQ6VXNlcjYzNjUzNDA=","avatar_url":"https://avatars2.githubusercontent.com/u/6365340?v=4","gravatar_id":"","url":"https://api.github.com/users/brianhie","html_url":"https://github.com/brianhie","followers_url":"https://api.github.com/users/brianhie/followers","following_url":"https://api.github.com/users/brianhie/following{/other_user}","gists_url":"https://api.github.com/users/brianhie/gists{/gist_id}","starred_url":"https://api.github.com/users/brianhie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brianhie/subscriptions","organizations_url":"https://api.github.com/users/brianhie/orgs","repos_url":"https://api.github.com/users/brianhie/repos","events_url":"https://api.github.com/users/brianhie/events{/privacy}","received_events_url":"https://api.github.com/users/brianhie/received_events","type":"User","site_admin":false},"created_at":"2018-08-23T15:38:40Z","updated_at":"2018-08-23T15:38:40Z","author_association":"OWNER","body":"Great question, as long as your preprocessing steps approximately preserve the relative distances between points, you can run the `assemble()` method on those data sets. Preprocessing with PCA, in your example, will be fine.\r\n\r\nSo assuming you have data preprocessed (hopefully in a way that reduces the dimension of the data) through Seurat or Scanpy and stored in a `datasets` variable (a list of numpy matrices), you can run the integration with the command:\r\n```\r\ndatasets_integrated = assemble(datasets)\r\n```\r\n`datasets_integrated` will also be a list of numpy matrices, but where the values have also been transformed to bring together matched cells.\r\n\r\nThere are also [optional parameters](https://github.com/brianhie/scanorama/blob/master/bin/scanorama.py#L385) for the `assemble()` method that are configurable as well.\r\n\r\nI guess you can think of the `correct()` method as doing integration _and batch correction_ of the full gene expression values, while the `assemble()` method just does integration."}}
{"actor":{"display_login":"brianhie"}}