精华内容
下载资源
问答
  • 学习章节 ... 文章目录学习章节1. Bioconductor的一些补充小用法2. Working with Genomic Ranges2.1 imp...

    学习章节

    https://bioconductor.github.io/BiocWorkshops/r-and-bioconductor-for-everyone-an-introduction.html#introduction-to-bioconductor

    1. Bioconductor的一些补充小用法

    使用valid()查看包安装的版本情况

    > BiocManager::valid()
    
    * sessionInfo()
    
    R version 3.5.3 (2019-03-11)
    Platform: x86_64-w64-mingw32/x64 (64-bit)
    Running under: Windows >= 8 x64 (build 9200)
    
    Matrix products: default
    
    locale:
    [1] LC_COLLATE=Chinese (Simplified)_China.936  LC_CTYPE=Chinese (Simplified)_China.936   
    [3] LC_MONETARY=Chinese (Simplified)_China.936 LC_NUMERIC=C                              
    [5] LC_TIME=Chinese (Simplified)_China.936    
    
    attached base packages:
    [1] stats     graphics  grDevices utils     datasets  methods   base     
    
    loaded via a namespace (and not attached):
    [1] BiocManager_1.30.4 compiler_3.5.3     tools_3.5.3        yaml_2.2.0        
    
    Bioconductor version '3.8'
    
      * 45 packages out-of-date
      * 0 packages too new
    
    create a valid installation with
    
      BiocManager::install(c(
        "AnnotationFilter", "backports", "biomaRt", "Biostrings", "broom", "checkmate", "devtools",
        "digest", "dplyr", "DT", "ensembldb", "fs", "GenomicAlignments", "GenomicFeatures",
        "ggplot2", "ggrepel", "gridGraphics", "httpuv", "igraph", "knitr", "pillar", "processx",
        "progress", "ProtGenerics", "rcmdcheck", "RcppArmadillo", "remotes", "reprex", "rGREAT",
        "rlang", "robustbase", "rtracklayer", "rvest", "segmented", "shiny", "shinyFiles", "sys",
        "testthat", "tinytex", "usethis", "vegan", "WGCNA", "xfun", "xtable", "zip"
      ), update = TRUE, ask = FALSE)
    
    more details: BiocManager::valid()$too_new, BiocManager::valid()$out_of_date
    
    Warning message:
    45 packages out-of-date; 0 packages too new 
    
    

    avaliable() 用于搜索相关的包

    ## 例如这里输入TxDb.Hsapiens,它会自动匹配相关的包
    BiocManager::available("TxDb.Hsapiens")
    #> [1] "TxDb.Hsapiens.BioMart.igis"                 
    #> [2] "TxDb.Hsapiens.UCSC.hg18.knownGene"          
    #> [3] "TxDb.Hsapiens.UCSC.hg19.knownGene"          
    #> [4] "TxDb.Hsapiens.UCSC.hg19.lincRNAsTranscripts"
    #> [5] "TxDb.Hsapiens.UCSC.hg38.knownGene"
    

    通过网站https://support.bioconductor.org/ 来查询解决和包相关的问题

    2. Working with Genomic Ranges

    • Importing data
    • Working with genomic ranges
    • Genomic annotations
    • Overlaps

    rtracklayer包提供函数import() 帮助用户读取基因组格式的文件(例如:BED,GTF,VCF,FASTA) 并封装成Bioconductor下的对象。GenomicRanges包提供了多种函数,来在基因组坐标系下操纵各种数据。

    2.1 importing data 导入bed文件

    library(rtracklayer)
    ## 使用file.choose() 来选择文件
    fname <- file.choose()   # CpGislands.Hsapiens.hg38.UCSC.bed
    fname
    file.exists(fname)
    ## 使用import()函数导入bed文件。导入后,将以GenomicRanges的对象描述这份CpG岛数据。
    cpg <- import(fname)
    cpg
    

    注意 BED格式的文件,它们的坐标体系是0-based的,并且intervals是半开区间(start在范围内,end在范围后一个坐标里)
    而Bioconductor得坐标是1-based,并且是闭区间(start和end坐标都包含在范围内),因此使用import()函数导入数据得时候,它会自动将bed文件坐标转换为Bioconductor文件对象的坐标。

    2.2 Working with genomic ranges

    ## 使用函数 keepStandardChromosomes 保留标准染色体,标准染色体指的是chr1-22和x,y染色体
    ## 很多时候我们获取的数据里 可能染色体不止chr1-22与x,y ; 
    ## 可能还包含其它染色体,例如:chr22_KI270738v1_random这样的染色体。
    ## 通过keepStandardChromosomes 就可以去除这些其它的染色体,只保留标准染色体
    cpg <- keepStandardChromosomes(cpg, pruning.mode = "coarse")
    cpg
    

    GenomicRanges对象包含两个部分

    • 必需的:seqnames(染色体号),start(起始位点),end(终止位点),strand (正链或负链)
    • 非必需的:另外的元素,例如本例中的name。

    必需的元素内容,可以使用函数start(), end(), width()获取。非必需的元素,使用$符号获取内容。

    head( start(cpg) )
    #> [1] 155188537   2226774  36306230  47708823  53737730 144179072
    head( cpg$name )
    
    ## 使用subset()函数获取染色体1号和2号上的cpg岛
    subset(cpg, seqnames %in% c("chr1", "chr2"))
    

    2.3 Genomic annotations

    ## 导入注释数据
    library("TxDb.Hsapiens.UCSC.hg38.knownGene")
    ## 查看注释数据中的所有转录本
    tx <- transcripts(TxDb.Hsapiens.UCSC.hg38.knownGene)
    tx
    ## 为了演示方便,目前只保留标准染色体
    tx <- keepStandardChromosomes(tx, pruning.mode="coarse")
    tx
    

    2.4 Overlaps

    可以使用findOverlaps(),nearest(),precede()follow()函数,来完成overlaps

    ## count the number of CpG islands that overlap each transcript
    olaps <- countOverlaps(tx, cpg)
    length(olaps)     # 1 count per transcript
    #> [1] 182435
    table(olaps)
    ## 将计算的overlaps加入GR对象 
    tx$cpgOverlaps <- countOverlaps(tx, cpg)
    tx
    ## subsetting the GRanges objects for transcripts satisfying particular conditions, in a coordinated fashion ## where the software does all the book-keeping to makes sure the correct ranges are selected.
    subset(tx, cpgOverlaps > 10)
    
    
    展开全文
  • String.split 用法 它是java.lang包中的String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅供大家参考: 1、如果用“.”作为分隔的话,必须是如下写法:String.split(“\.”),这样...

    Java中数组的遍历

    (I)标准for循环遍历数组

    例如代码片段:
    int [] nums = new int [] {0,1,2,3,4,5,6,7,8,9};
    for(int i=0;i<11;i++){
          System.out.println(num[i]);
    }

    (II)for-each循环遍历数组

    语法:
    for(<迭代变量声明>:<数组>){
       语句;
    }
    例如代码片段:
    for(int n : nums){
       System.out.println(n);
    }
    
    
    for(type element: array)
    {
        System.out.println(element);
    }

    For-Each循环的缺点:丢掉了索引信息。

      当遍历集合或数组时,如果需要访问集合或数组的下标,那么最好使用旧式的方式来实现循环或遍历,而不要使用增强的for循环,因为它丢失了下标信息。

    下面代码

    首先对比了两种for循环;之后实现了用增强for循环遍历二维数组;最后采用三种方式遍历了一个List集合。

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    public class ForeachTest
    {
        public static void main(String[] args)
        {
            int[] arr = {1, 2, 3, 4, 5};
    
            System.out.println("----------旧方式遍历------------");
            //旧式方式        
            for(int i=0; i<arr.length; i++)
            {
                System.out.println(arr[i]);
            }
    
            System.out.println("---------新方式遍历-------------");
    
            //新式写法,增强的for循环
            for(int element:arr)
            {
                System.out.println(element);
            }
    
            System.out.println("---------遍历二维数组-------------");
    
            //遍历二维数组
    
            int[][] arr2 = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} ;
    
            for(int[] row : arr2)
            {
                for(int element : row)
                {
                    System.out.println(element);
                }
            }
    
            //以三种方式遍历集合List
    
            List<String> list = new ArrayList<String>();
    
            list.add("a");
            list.add("b");
            list.add("c");
    
            System.out.println("----------方式1-----------");
            //第一种方式,普通for循环
            for(int i = 0; i < list.size(); i++)
            {
                System.out.println(list.get(i));
    
            }
    
            System.out.println("----------方式2-----------");
            //第二种方式,使用迭代器
            for(Iterator<String> iter = list.iterator(); iter.hasNext();)
            {
                System.out.println(iter.next());
            }
            System.out.println("----------方式3-----------");
            //第三种方式,使用增强型的for循环
            for(String str: list)
            {
                System.out.println(str);
    
            }
        }
    
    }

    参考:
    http://javabc.baike.com/article-410951.html
    http://www.cnblogs.com/mengdd/archive/2013/01/21/2870019.html

    String.split 用法

    它是java.lang包中的String.split()方法,返回是一个数组
    我在应用中用到一些,给大家总结一下,仅供大家参考:
    1、如果用“.”作为分隔的话,必须是如下写法:String.split(“\.”),这样才能正确的分隔开,不能用String.split(“.”);
    2、如果用“|”作为分隔的话,必须是如下写法:String.split(“\|”),这样才能正确的分隔开,不能用String.split(“|”);
    “.”和“|”都是转义字符,必须得加”\”;
    3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split(“and|or”);
    使用String.split方法分隔字符串时,分隔符如果用到一些特殊字符,可能会得不到我们预期的结果。
    我们看jdk doc中说明
    public String[] split(String regex)
    Splits this string around matches of the given regular expression.
    参数regex是一个 regular-expression的匹配模式而不是一个简单的String,他对一些特殊的字符可能会出现你预想不到的结果,比如测试下面的代码:
    用竖线 | 分隔字符串,你将得不到预期的结果
    String[] aa = “aaa|bbb|ccc”.split(“|”);
    //String[] aa = “aaa|bbb|ccc”.split(“\|”); 这样才能得到正确的结果
    for (int i = 0 ; i

    JAVA中int、String的类型转换

    int -> String
    int i=12345;
    String s=”“;
    第一种方法:s=i+”“;
    第二种方法:s=String.valueOf(i);
    这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?
    String -> int
    s=”12345”;
    int i;
    第一种方法:i=Integer.parseInt(s);
    第二种方法:i=Integer.valueOf(s).intValue();
    这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?
    以下是答案:
    第一种方法:s=i+”“; //会产生两个String对象
    第二种方法:s=String.valueOf(i); //直接使用String类的静态方法,只产生一个对象
    第一种方法:i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常

    第二种方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象

    1如何将字串 String 转换成整数 int?

    A. 有两个方法:

    1). int i = Integer.parseInt([String]); 或
    i = Integer.parseInt([String],[int radix]);

    2). int i = Integer.valueOf(my_str).intValue();

    注: 字串转成 Double, Float, Long 的方法大同小异.
    2 如何将整数 int 转换成字串 String ?
    A. 有叁种方法:

    1.) String s = String.valueOf(i);

    2.) String s = Integer.toString(i);

    3.) String s = “” + i;

    注: Double, Float, Long 转成字串的方法大同小异.

    JAVA数据类型转换

    这是一个例子,说的是JAVA中数据数型的转换.供大家学习

    package shenmixiaozhu;
    import java.sql.Date;
    public class TypeChange {
    public TypeChange() {
    }
    //change the string type to the int type
    public static int stringToInt(String intstr)
    {
    Integer integer;
    integer = Integer.valueOf(intstr);
    return integer.intValue();
    }
    //change int type to the string type
    public static String intToString(int value)
    {
    Integer integer = new Integer(value);
    return integer.toString();
    }
    //change the string type to the float type
    public static float stringToFloat(String floatstr)
    {
    Float floatee;
    floatee = Float.valueOf(floatstr);
    return floatee.floatValue();
    }
    //change the float type to the string type
    public static String floatToString(float value)
    {
    Float floatee = new Float(value);
    return floatee.toString();
    }
    //change the string type to the sqlDate type
    public static java.sql.Date stringToDate(String dateStr)
    {
    return java.sql.Date.valueOf(dateStr);
    }
    //change the sqlDate type to the string type
    public static String dateToString(java.sql.Date datee)
    {
    return datee.toString();
    }

    public static void main(String[] args)
    {
    java.sql.Date day ;
    day = TypeChange.stringToDate(“2003-11-3”);
    String strday = TypeChange.dateToString(day);
    System.out.println(strday);
    }
    }
    JAVA中常用数据类型转换函数
    虽然都能在JAVA API中找到,整理一下做个备份。

    参考
    http://blog.sina.com.cn/s/blog_4f9d6b1001000bfo.html

    展开全文
  • svn用法

    2014-10-17 01:23:44
    So you are working on this humongous project and its that time when everyone in the team has to start working on different modules or functionalities. The way to proceed is to create module bran

    So you are working on this humongous project and its that time when everyone in the team

    has to start working on different modules or functionalities. The way to proceed is to create

    module branches and start working on it.

    Sooner than you may think, you would be required to merge all those branches into the trunk

    once you have your module complete and tested.

    Enough of background, lets go ahead and merge those branches..

    Your svn trunk directory:

    http://svnprojects.com/myapp/trunk

    Your svn branch directory:

    http://svnprojects.com/myapp/branches/mybranch

    So we start with the trunk

    svn co http://svnprojects.com/myapp/trunk

    To create a branch from trunk we use svn cp

    svn cp http://svnprojects.com/myapp/trunk http://svnprojects.com/myapp/branches/mybranch

    Simultaneously we work on the branch as well

    svn co http://svnprojects.com/myapp/branches/mybranch

    Now when we need to merge the branch into the trunk,we first check the revision

    at which the branch got created.We do that as following:

    svn log --stop-on-copy

    Keep a note of the revision number where the branch got created.Lets call it rev AAAA

    Now switch the working directory of the branch to trunk using

    svn switch http://svnprojects.com/myapp/trunk

    Post switch, update your directory

    svn up

    Keep a note of revision it gets updated to. Lets call it rev BBBB

    Now the important task of merging the branch.

    svn merge -rAAAA:BBBB http://svnprojects.com/myapp/branches/mybranch

    Resolve the conflicts and commit ..

    svn ci -m 'Merged branch mybranch into trunk'

    Voila! We are done! Happy Merging!!!

    展开全文
  • git用法

    2013-03-22 09:38:06
    在git提交环节,存在三大部分:working tree, index file, commit 这三大部分中: working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。 index file:是索引文件,...
    在git提交环节,存在三大部分:working tree, index file, commit

    这三大部分中:

    working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。
    index file:是索引文件,它是连接working tree和commit的桥梁,每当我们使用git-add命令来登记后,index file的内容就改变了,此时index file就和working tree同步了。
    commit:是最后的阶段,只有commit了,我们的代码才真正进入了git仓库。我们使用git-commit就是将index file里的内容提交到commit中。
    总结一下:
    git diff:是查看working tree与index file的差别的。
    git diff --cached:是查看index file与commit的差别的。
    git diff HEAD:是查看working tree和commit的差别的。(你一定没有忘记,HEAD代表的是最近的一次commit的信息)

    为了更加清晰的阐释这个关系,来给出一个实例。

    [yaya@yaya-desktop]$ cat main.c
    #include<stdio.h>
    int main(int argc,char *argv[])
    {
    printf(“hello.\n”);
    printf(“he was a student.\n”);
    return 0;
    }


    然后git init, git add . , git commit;
    之后你将源代码修改为:

    [yaya@yaya-desktop]$ cat main.c
    #include<stdio.h>
    int main(int argc,char *argv[])
    {
    printf(“hello.\n”);
    printf(“he was a student.\n”);
    printf(“he was born in finland.\n”);
    return 0;
    }


    此时你git add .,但不用执行git commit命令。然后你再将源代码改为:
    1. [yaya@yaya-desktop]$ cat main.c
    2. #include<stdio.h>
    3. int main(int argc,char *argv[])
    4. {
    5. printf(“hello.\n”);
    6. printf(“he was a student.\n”);
    7. printf(“he was born in finland.\n”);
    8. printf(“he is very clever!\n”);
    9. return 0;
    10. }
    复制代码

    这个时候,你执行如下三个命令,仔细查看,我相信你会发现它们三个的区别的!
    $ git diff
    $ git diff –cached
    $ git diff HEAD
    讲到这里,基本上对git diff命令有了比较深入的了解了,现在你再使用git status看看输出结果,样子大概是这样:

    [yaya@yaya-desktop]$ git status
    # On branch master
    Changes to be committed:
      (use “git reset HEAD <file>…” to unstage)
    #
       modified:   main.c
    #
    Changed but not updated:
      (use “git add <file>…” to update what will be committed)
    #
       modified:   main.c
    #很明显可以知道:
    Changes to be committed表示已经存在于index file里,但尚未提交。
    Changed but not updated表示在working tree已经做修改,但还没有使用git add登记到index file里。
    展开全文
  • git diff 用法

    2019-09-24 18:15:56
    本文阐述 git diff 的不同用法。 git 中有三个主要区域 Working Directory 工作区。当前用户正在工作的区域 Staging Area(也被叫做 cache,index)。使用 git add 后存放的临时位置 HEAD 指向一个 commit 位置。...
  • git diff的用法

    2015-06-14 18:12:18
    git diff的用法 在git提交环节,存在三大部分:working tree, index file, commit这三大部分中:working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。index file:是...
  • 这个才是好用的,以前的用法太不方便查看了。 1,设置 菜单:Top Level Elements => working sets  顶层显示工作集 2,Package Presentation => Hierarchical  树型显示 3,Configure Working ...
  • Vim 2 高级用法

    2019-06-03 09:47:38
    Vim 系列教程目录: Vim 1 基本使用 Vim 2 高级用法 Vim 3 vimrc Vim 4 常用插件 Vim 5 其他编辑器的 Vim 插件 ...CWD(Current Working Directory), 当前工作目录, 这是 Vim 中一个挺重要, 但是...
  • 用法:reversed(sequ)參數:sequ:順序要顛倒。返回值:returns an iterator that accesses the given sequence in the reverse order.代碼1# Python code to demonstrate working of# reversed(...
  • git diff用法

    2014-09-29 08:30:56
    在git提交环节,存在三大部分:working tree, index file, commit 这三大部分中: working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。 index file:是索引文件,它...
  • svn switch的用法

    千次阅读 2016-07-12 13:25:42
    由于服务器地址变更,SVN的操作会受到影响。之前的working copy,请在根...svn switch的用法如下:   switch (sw): Update the working copy to a different URL. usage: 1. switch URL[@PEGREV] [PATH]  2. swit
  • 在数字技术的新时代,机器学习,人工智能和网络安全正在崛起。 Python是实现许多此类优秀语言的一种语言。Python提供hash()将数据...代码1:演示hash()的工作# Python 3 code to demonstrate# working of hash()# in...
  • 动名词既具有动词的性质,又具有名词的性质,因此叫动名词。(归根结底动名词的词性是名词。)① 动名词的动词性质...I finished the project in a month by working overtime.我靠加班在一个月内做完了这个项目。② ...
  • git stash 用法

    2021-02-03 10:23:38
    有时候我们代码写到一半突然要切到别的分支上去改...Saved working directory and index state WIP on production: 9c0b32d html 更新 查看你的slash 列表 git stash list stash@{0}: WIP on production: 9c0b32d h.
  • git 常见用法

    2021-01-27 11:38:33
    pwd:print working directory打印当前工作区域目录 git add xxx.file:将文件暂存到暂存区域,可多次操作 git commit -m’本次提交的文字说明’ :将文件提交到仓库 2.查看状态和改动 git status:查看工作区的状态 ...
  • 英语用法杂记

    2019-12-31 20:33:00
    1、动词不定式和动名词做主语的区别... 动名词:强调多次的、抽象的动作如:working in these conditions is not a pleasure.在这种条件下工作一点也不愉快.  通常用It做形式主语来使句子更加平衡:  It is v...
  • git reset用法

    2019-11-16 11:49:05
    1 --soft --mixed(default)–hard 1.1 --soft –soft参数告诉Git重置HEAD...这意味着index,working copy都不会做任何变化,所有的在original HEAD和你重置到的那个commit之间的所有变更集都放在stage(index)区域中...
  • git高级用法

    2018-10-16 20:50:00
    1、git未保存的代码怎么切换分支?...1、Merge failed : Some unreacked working tree files would be overwitten by Merge.Please move or remove them before you can Merge. View them 原因...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 391
精华内容 156
关键字:

working用法